diff --git a/.dockerignore b/.dockerignore index b3f877500..321b0e935 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,5 +6,4 @@ !/packages/subgraph/ /packages/subgraph/generated/ /packages/subgraph/build/ -/packages/subgraph/subgraph.yaml -/packages/subgraph/.drone.yml \ No newline at end of file +/packages/subgraph/.drone.yml diff --git a/.drone.yml b/.drone.yml index 2d7ac1909..20b7f231f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -46,135 +46,7 @@ steps: fi --- -# deploy DataProtector smart contract to prod, dev or staging -kind: pipeline -type: docker -name: smart-contract deploy - -trigger: - event: - - promote - target: - # deploy and verify the DataProtector contract with the dev deployer - - smart-contract-deploy-dev - # deploy and verify the DataProtector contract with the dev deployer and commit the staging environment update - - smart-contract-deploy-staging - # deploy and verify the DataProtector contract with the prod deployer and commit the prod environment update - - smart-contract-deploy-prod - branch: - - develop - - main -steps: - - name: install deps - image: node:18.19 - pull: always - commands: - - cd packages/smart-contract - - node -v - - npm -v - - npm ci - - - name: check format - image: node:18.19 - commands: - - cd packages/smart-contract - - npm run check-format - - - name: check lint - image: node:18.19 - commands: - - cd packages/smart-contract - - npm run lint - - - name: compile smart contracts - image: node:18.19 - commands: - - cd packages/smart-contract - - npm run compile - - - name: test smart contracts - image: node:18.19 - commands: - - cd packages/smart-contract - - npm run test - - - name: smart-contract dev/staging deployment - image: node:18.19 - environment: - WALLET_PRIVATE_KEY: - from_secret: deployer-dev-privatekey - commands: - - cd packages/smart-contract - - npm run deploy -- --network bellecour - when: - target: - - smart-contract-deploy-staging - - smart-contract-deploy-dev - branch: - - develop - - - name: smart-contract prod deployment - image: node:18.19 - environment: - WALLET_PRIVATE_KEY: - from_secret: deployer-prod-privatekey - commands: - - cd packages/smart-contract - - npm run deploy -- --network bellecour - when: - target: - - smart-contract-deploy-prod - branch: - - main - - - name: update prod env - image: node:18.19 - environment: - ENV: prod - commands: - - cd environments - - KEY=dataprotectorContractAddress VALUE=$(cat ../packages/smart-contract/deployments/DataProtector/address) npm run update-env - - KEY=dataprotectorStartBlock VALUE=$(cat ../packages/smart-contract/deployments/DataProtector/block) npm run update-env - - git add environments.json - - git commit -m "$DRONE_DEPLOY_TO deployment $DRONE_BUILD_NUMBER $DRONE_COMMIT" --author="drone-product " - when: - target: - - smart-contract-deploy-prod - - - name: update staging env - image: node:18.19 - environment: - ENV: staging - commands: - - cd environments - - KEY=dataprotectorContractAddress VALUE=$(cat ../packages/smart-contract/deployments/DataProtector/address) npm run update-env - - KEY=dataprotectorStartBlock VALUE=$(cat ../packages/smart-contract/deployments/DataProtector/block) npm run update-env - - git add environments.json - - git commit -m "$DRONE_DEPLOY_TO deployment $DRONE_BUILD_NUMBER $DRONE_COMMIT" --author="drone-product " - when: - target: - - smart-contract-deploy-staging - - - name: git-push - image: appleboy/drone-git-push - settings: - remote: ssh://git@github.com/iExecBlockchainComputing/dataprotector-sdk.git - branch: update-env-${DRONE_BUILD_NUMBER} - ssh_key: - from_secret: ssh-key-team-product-github-push - when: - target: - - smart-contract-deploy-prod - - smart-contract-deploy-staging - - - name: verify contract - image: node:18.19 - commands: - - cd packages/smart-contract - - npm run verify -- --network bellecour $(cat deployments/DataProtector/address) $(cat deployments/DataProtector/args) - ---- # deploy sharing smart contract to prod, staging or dev kind: pipeline type: docker @@ -659,105 +531,6 @@ steps: password: from_secret: dockerhub-password ---- -kind: pipeline -type: docker -name: subgraph deploy - -trigger: - event: - - promote - target: - # deploy the dataprotector subgraph for the staging environment - - subgraph-deploy-staging - # deploy the dataprotector subgraph - - subgraph-deploy-tmp - # deploy the dataprotector subgraph for the prod environment - - subgraph-deploy-prod - branch: - - develop - - main - -steps: - - name: install deps - image: node:18.19 - pull: always - commands: - - cd packages/subgraph - - npm ci - - - name: deploy-v2-staging - image: node:18.19 - params: - - START_BLOCK - environment: - GRAPHNODE_URL: - from_secret: graphnode-url-staging - IPFS_URL: - from_secret: ipfs-url-staging - ENV: staging - commands: - - cd packages/subgraph - - export SUBGRAPH_NAME=bellecour/staging-dataprotector-v2 - - echo "deploying commit $DRONE_COMMIT on subgraph $SUBGRAPH_NAME" - - npm run codegen - - npm run build - - npx graph create --node $GRAPHNODE_URL $SUBGRAPH_NAME - - npx graph deploy --node $GRAPHNODE_URL $SUBGRAPH_NAME --ipfs $IPFS_URL --version-label $(npm pkg get version) - when: - target: - - subgraph-deploy-staging - branch: - - develop - - - name: deploy-v2-tmp - image: node:18.19 - params: - - START_BLOCK - environment: - GRAPHNODE_URL: - from_secret: graphnode-url - IPFS_URL: - from_secret: ipfs-url - ENV: prod - commands: - - cd packages/subgraph - - export SUBGRAPH_NAME=bellecour/tmp-dataprotector-v2 - - echo "deploying commit $DRONE_COMMIT on subgraph $SUBGRAPH_NAME" - - npm run codegen - - npm run build - - npx graph create --node $GRAPHNODE_URL $SUBGRAPH_NAME - - npx graph deploy --node $GRAPHNODE_URL $SUBGRAPH_NAME --ipfs $IPFS_URL --version-label $DRONE_COMMIT - when: - target: - - subgraph-deploy-tmp - branch: - - main - - - name: deploy-v2-prod - image: node:18.19 - params: - - START_BLOCK - environment: - GRAPHNODE_URL: - from_secret: graphnode-url - IPFS_URL: - from_secret: ipfs-url - ENV: prod - commands: - - cd packages/subgraph - - export SUBGRAPH_NAME=bellecour/dataprotector-v2 - - echo "deploying commit $DRONE_COMMIT on subgraph $SUBGRAPH_NAME" - - npm run codegen - - npm run build - - npx graph create --node $GRAPHNODE_URL $SUBGRAPH_NAME - - npx graph deploy --node $GRAPHNODE_URL $SUBGRAPH_NAME --ipfs $IPFS_URL --version-label $(npm pkg get version) - when: - target: - - subgraph-deploy-prod - branch: - - main - --- #pipeline to deploy app whitelist on iexec kind: pipeline @@ -1510,4 +1283,4 @@ steps: branch: - main target: - - dataprotector-deserializer-publish-latest + - dataprotector-deserializer-publish-latest \ No newline at end of file diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml new file mode 100644 index 000000000..782a3b934 --- /dev/null +++ b/.github/workflows/conventional-commits.yml @@ -0,0 +1,12 @@ +name: Conventional Commits + +on: [pull_request] + +jobs: + build: + name: Conventional Commits + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: webiny/action-conventional-commits@v1.3.0 diff --git a/.github/workflows/dapp-publish.yml b/.github/workflows/dapp-publish.yml new file mode 100644 index 000000000..e43907937 --- /dev/null +++ b/.github/workflows/dapp-publish.yml @@ -0,0 +1,22 @@ +name: Publish Docker Image + +on: + push: + tags: + - 'protected-data-delivery-dapp-v*' + +jobs: + build-test: + uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/docker-build.yml@fix/docker/types + with: + image-name: 'docker-regis.iex.ec/product/protected-data-delivery-dapp' + image-tag: ${{ github.ref }} # Use the tag of the commit + push: true + dockerfile: 'packages/protected-data-delivery-dapp/Dockerfile' + security-scan: false + hadolint: false + registry: 'docker-regis.iex.ec' + context: 'packages/protected-data-delivery-dapp' + secrets: + username: ${{ secrets.REGIS_USERNAME }} + password: ${{ secrets.REGIS_PASSWORD }} diff --git a/.github/workflows/dapp-test.yml b/.github/workflows/dapp-test.yml new file mode 100644 index 000000000..a71f1eaac --- /dev/null +++ b/.github/workflows/dapp-test.yml @@ -0,0 +1,18 @@ +name: Test Docker Image + +on: + pull_request: + branches: + - '*' # Trigger on any pull request + paths: + - 'packages/protected-data-delivery-dapp/**' # Trigger only when changes are made to the dapp + +jobs: + build-test: + uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/docker-build.yml@fix/docker/types + with: + image-name: 'protected-data-delivery-dapp' + image-tag: ${{ github.sha }} + push: false + dockerfile: 'packages/protected-data-delivery-dapp/Dockerfile' + context: 'packages/protected-data-delivery-dapp' diff --git a/.github/workflows/deploy-smart-contract.yml b/.github/workflows/deploy-smart-contract.yml new file mode 100644 index 000000000..b1af59aa3 --- /dev/null +++ b/.github/workflows/deploy-smart-contract.yml @@ -0,0 +1,96 @@ +name: Smart Contract Deploy + +on: + workflow_dispatch: # Manually trigger the workflow OR trigger with tags or releases ? + inputs: + target: + description: "Deployment target (smart-contract-deploy-dev, smart-contract-deploy-staging, smart-contract-deploy-prod)" + required: true + type: choice + options: + - smart-contract-deploy-dev + - smart-contract-deploy-staging + - smart-contract-deploy-prod + default: smart-contract-deploy-dev + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install dependencies + working-directory: packages/smart-contract + run: | + node -v + npm -v + npm ci + + - name: Check code format + working-directory: packages/smart-contract + run: npm run check-format + + - name: Run lint + working-directory: packages/smart-contract + run: npm run lint + + - name: Compile smart contracts + working-directory: packages/smart-contract + run: npm run compile + + - name: Run tests + working-directory: packages/smart-contract + run: npm run test + + - name: Deploy to dev/staging + if: ${{ (github.event.inputs.target == 'smart-contract-deploy-dev' || github.event.inputs.target == 'smart-contract-deploy-staging') && startsWith(github.ref, 'refs/heads/develop') }} + working-directory: packages/smart-contract + env: + WALLET_PRIVATE_KEY: ${{ secrets.DEPLOYER_DEV_PRIVATEKEY }} + run: npm run deploy -- --network bellecour + + - name: Deploy to prod + if: ${{ github.event.inputs.target == 'smart-contract-deploy-prod' && github.ref == 'refs/heads/main' }} + working-directory: packages/smart-contract + env: + WALLET_PRIVATE_KEY: ${{ secrets.DEPLOYER_PROD_PRIVATEKEY }} + run: npm run deploy -- --network bellecour + + - name: Update production environment + if: ${{ github.event.inputs.target == 'smart-contract-deploy-prod' }} + working-directory: environments + run: | + ADDRESS=$(jq -r '.contractAddress' ../packages/smart-contract/ignition/deployments/chain-134/journal.jsonl) + BLOCK=$(jq -r '.blockNumber' ../packages/smart-contract/ignition/deployments/chain-134/journal.jsonl) + KEY=dataprotectorContractAddress VALUE=$ADDRESS npm run update-env + KEY=dataprotectorStartBlock VALUE=$BLOCK npm run update-env + git add environments.json + git commit -m "Deployment ${{ github.event.inputs.target }} run ${{ github.run_number }} commit ${{ github.sha }}" --author="drone-product " + + - name: Update staging environment + if: ${{ github.event.inputs.target == 'smart-contract-deploy-staging' }} + working-directory: environments + run: | + ADDRESS=$(jq -r '.contractAddress' ../packages/smart-contract/ignition/deployments/chain-134/journal.json) + BLOCK=$(jq -r '.blockNumber' ../packages/smart-contract/ignition/deployments/chain-134/journal.json) + KEY=dataprotectorContractAddress VALUE=$ADDRESS npm run update-env + KEY=dataprotectorStartBlock VALUE=$BLOCK npm run update-env + git add environments.json + git commit -m "Deployment ${{ github.event.inputs.target }} run ${{ github.run_number }} commit ${{ github.sha }}" --author="drone-product " + + - name: Git push environment update + if: ${{ github.event.inputs.target == 'smart-contract-deploy-prod' || github.event.inputs.target == 'smart-contract-deploy-staging' }} + run: | + git push ssh://git@github.com/iExecBlockchainComputing/dataprotector-sdk.git update-env-${{ github.run_number }} + env: + # Configure the SSH key to secrets GitHub + SSH_KEY: ${{ secrets.SSH_KEY_TEAM_PRODUCT_GITHUB_PUSH }} + shell: bash + + - name: Verify contract + working-directory: packages/smart-contract + run: npm run verify -- --network bellecour $(cat deployments/DataProtector/address) $(cat deployments/DataProtector/args) diff --git a/.github/workflows/deploy-subgraph.yml b/.github/workflows/deploy-subgraph.yml new file mode 100644 index 000000000..949b24c6c --- /dev/null +++ b/.github/workflows/deploy-subgraph.yml @@ -0,0 +1,71 @@ +name: Deploy Subgraph + +on: + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - target: staging + subgraph_name: "bellecour/staging-dataprotector-v2" + branch: develop + env_name: staging + graphnode_url: ${{ secrets.GRAPHNODE_URL_STAGING }} + ipfs_url: ${{ secrets.IPFS_URL_STAGING }} + version_method: npm_version + - target: tmp + subgraph_name: "bellecour/tmp-dataprotector-v2" + branch: main + env_name: prod + graphnode_url: ${{ secrets.GRAPHNODE_URL }} + ipfs_url: ${{ secrets.IPFS_URL }} + version_method: commit + - target: prod + subgraph_name: "bellecour/dataprotector-v2" + branch: main + env_name: prod + graphnode_url: ${{ secrets.GRAPHNODE_URL }} + ipfs_url: ${{ secrets.IPFS_URL }} + version_method: npm_version + + # Run only if the current branch matches the matrix branch + if: github.ref == format('refs/heads/{0}', matrix.subgraph.branch) + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Install Dependencies + working-directory: packages/subgraph + run: npm ci + + - name: Run Codegen and Build + working-directory: packages/subgraph + run: | + npm run codegen + npm run build + + - name: Set Version Label + id: set_version + working-directory: packages/subgraph + run: | + if [ "${{ matrix.subgraph.version_method }}" = "commit" ]; then + echo "version=${GITHUB_SHA}" >> $GITHUB_OUTPUT + else + version=$(npm pkg get version | sed 's/"//g') + echo "version=${version}" >> $GITHUB_OUTPUT + fi + + - name: Create Subgraph + working-directory: packages/subgraph + run: | + npx graph create --node ${{ matrix.subgraph.graphnode_url }} ${{ matrix.subgraph.subgraph_name }} + + - name: Deploy Subgraph + working-directory: packages/subgraph + run: | + npx graph deploy --node ${{ matrix.subgraph.graphnode_url }} ${{ matrix.subgraph.subgraph_name }} --ipfs ${{ matrix.subgraph.ipfs_url }} --version-label ${{ steps.set_version.outputs.version }} diff --git a/.github/workflows/publish-npm-deserializer.yml b/.github/workflows/publish-npm-deserializer.yml index 132120f5b..07908e440 100644 --- a/.github/workflows/publish-npm-deserializer.yml +++ b/.github/workflows/publish-npm-deserializer.yml @@ -1,4 +1,4 @@ -name: Publish Package NPM +name: Publish Package NPM - dataprotector-deserializer on: workflow_dispatch: @@ -10,11 +10,50 @@ on: options: - latest - nightly + - beta default: nightly jobs: - noop: + set-publish-version: runs-on: ubuntu-latest steps: - - name: Placeholder step - run: echo "Placeholder for Publish Package NPM" \ No newline at end of file + - name: Checkout code + uses: actions/checkout@v4 + - name: Set up Node.js + uses: actions/setup-node@v4 + - name: Set publish version + id: set-publish-version + if: github.event.inputs.tag == 'nightly' + working-directory: packages/dataprotector-deserializer + run: | + if [ "${{ github.event.inputs.tag }}" == "nightly" ]; then + CURRENT_VERSION=$(npm pkg get version | tr -d '"') + NIGHTLY_VERSION="${CURRENT_VERSION}-nightly-${GITHUB_SHA::7}" + echo "VERSION=${NIGHTLY_VERSION}" >> $GITHUB_OUTPUT + else + echo "VERSION=$(npm pkg get version | tr -d '"')" >> $GITHUB_OUTPUT + fi + outputs: + VERSION: ${{ steps.set-publish-version.outputs.VERSION }} + + publish-npm: + uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/publish-npm.yml@publish-npm-v1.4.0 + needs: set-publish-version + with: + scope: '@iexec/deserializer' + registry: 'https://registry.npmjs.org' + node-version: '18' + tag: ${{ github.event.inputs.tag }} + environment: production + working-directory: packages/dataprotector-deserializer + version: ${{ needs.set-publish-version.outputs.VERSION }} + install-command: | + npm ci + cd ../sdk + npm ci + npm run codegen + npm run build + cd ../dataprotector-deserializer + npm run test:prepare + secrets: + npm-token: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/publish-npm-sdk.yml b/.github/workflows/publish-npm-sdk.yml index c6f6893a6..dde6d3d91 100644 --- a/.github/workflows/publish-npm-sdk.yml +++ b/.github/workflows/publish-npm-sdk.yml @@ -1,20 +1,54 @@ -name: Publish Package NPM +name: Publish Package NPM - dataprotector on: workflow_dispatch: inputs: - target: - description: 'Select deployment target' + tag: + description: 'NPM tag to publish (latest or nightly)' required: true - default: staging type: choice options: - - staging - - prod + - latest + - nightly + - beta + default: nightly jobs: - noop: + set-publish-version: runs-on: ubuntu-latest steps: - - name: Placeholder Step - run: echo "This is a placeholder for the Publish Package NPM workflow" \ No newline at end of file + - name: Checkout code + uses: actions/checkout@v4 + - name: Set up Node.js + uses: actions/setup-node@v4 + - name: Set publish version + id: set-publish-version + if: github.event.inputs.tag == 'nightly' + working-directory: packages/sdk + run: | + if [ "${{ github.event.inputs.tag }}" == "nightly" ]; then + CURRENT_VERSION=$(npm pkg get version | tr -d '"') + NIGHTLY_VERSION="${CURRENT_VERSION}-nightly-${GITHUB_SHA::7}" + echo "VERSION=${NIGHTLY_VERSION}" >> $GITHUB_OUTPUT + else + echo "VERSION=$(npm pkg get version | tr -d '"')" >> $GITHUB_OUTPUT + fi + outputs: + VERSION: ${{ steps.set-publish-version.outputs.VERSION }} + + publish-npm: + uses: iExecBlockchainComputing/github-actions-workflows/.github/workflows/publish-npm.yml@publish-npm-v1.4.0 + needs: set-publish-version + with: + scope: '@iexec/dataprotector-sdk' + registry: 'https://registry.npmjs.org' + node-version: '18' + environment: ${{ github.event.inputs.target }} + working-directory: packages/sdk + tag: ${{ github.event.inputs.tag }} + version: ${{ needs.set-publish-version.outputs.VERSION }} + install-command: | + npm ci + npm run codegen + secrets: + npm-token: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/root-checks.yaml b/.github/workflows/root-checks.yaml new file mode 100644 index 000000000..148d203d4 --- /dev/null +++ b/.github/workflows/root-checks.yaml @@ -0,0 +1,47 @@ +name: Root checks + +on: [pull_request] + +jobs: + changed-files: + name: Detect Changes + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.changed.outputs.all_changed_and_modified_files }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Detect changed files + id: changed + uses: tj-actions/changed-files@v45 + with: + matrix: 'true' + dir_names: 'true' + dir_names_max_depth: 3 + files: | + packages/sdk/** + packages/subgraph/** + packages/protected-data-delivery-dapp/deployment/** + + build-and-test: + name: Build & Test Modified Packages + needs: [changed-files] + runs-on: ubuntu-latest + strategy: + matrix: + package: ${{ fromJSON(needs.changed-files.outputs.matrix) }} + max-parallel: 4 + fail-fast: false + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install dependencies and run tests for ${{ matrix.package }} + working-directory: ${{ matrix.package }} + run: | + npm run refresh-abis + # TODO check that SDK and Subgraph projects build is OK. diff --git a/.github/workflows/sharing-smart-contract-ci.yml b/.github/workflows/sharing-smart-contract-ci.yml new file mode 100644 index 000000000..ce23cb553 --- /dev/null +++ b/.github/workflows/sharing-smart-contract-ci.yml @@ -0,0 +1,18 @@ +name: Sharing Smart Contract - CI + +on: + pull_request: + branches: + - '*' + paths: + - 'packages/sharing-smart-contract/**' + +concurrency: + group: ${{ github.ref }}-sharing-smart-contract-ci + cancel-in-progress: true + +jobs: + ci: + uses: ./.github/workflows/sharing-smart-contracts-reusable.yml + with: + node-version: 18 diff --git a/.github/workflows/sharing-smart-contract-deploy.yml b/.github/workflows/sharing-smart-contract-deploy.yml new file mode 100644 index 000000000..08b72be3d --- /dev/null +++ b/.github/workflows/sharing-smart-contract-deploy.yml @@ -0,0 +1,107 @@ +name: Sharing Smart Contract - Deployment + +on: + workflow_dispatch: # Manual trigger + inputs: + network: + description: 'Network' + required: true + type: choice + options: + - hardhat + - avalancheFujiTestnet + - arbitrumSepolia + - bellecour + default: 'hardhat' + environment: + description: 'Environment' + required: true + type: choice + options: + - testnets + - mainnets + default: 'testnets' + +jobs: + + # Validate deployment network and environment. + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # On Github, the environment `mainnets` is restricted to + # the main branch. Here we check that it's only used with + # mainnet networks. + - name: Validate mainnet deployment + run: | + if [[ "${{ inputs.environment }}" == "mainnets" && "${{ inputs.network }}" != "bellecour" ]]; then + echo "::error::mainnets environment can only be used with mainnet networks." + exit 1 + fi + echo "Deploying to network '${{ inputs.network }}' with environment '${{ inputs.environment }}'." + + # Build and test before deploying. + ci: + needs: validate + uses: ./.github/workflows/sharing-smart-contracts-reusable.yml + with: + node-version: 18 + + # Deploy and verify contract. + deploy: + needs: ci + runs-on: ubuntu-latest + permissions: + contents: write # Required to commit deployment files. + environment: ${{ inputs.environment }} + steps: + - name: Set environment variables + id: set-env + run: | + echo "PRIVATE_KEY=${{ secrets.PRIVATE_KEY }}" >> $GITHUB_ENV + + if [ "${{ inputs.network }}" == "arbitrumSepolia" ]; then + echo "POCO_ADDRESS=0x14B465079537655E1662F012e99EBa3863c8B9E0" >> $GITHUB_ENV + echo "DATASET_REGISTRY_ADDRESS=0x3441A0C9FE488c51fcABa2bAAA048720f4D4F72D" >> $GITHUB_ENV + echo "ETHERSCAN_API_KEY=${{ secrets.ETHERSCAN_API_KEY }}" >> $GITHUB_ENV + echo "DEPLOYMENT_ID=chain-421614" >> $GITHUB_ENV + fi + + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Install dependencies + working-directory: packages/sharing-smart-contract + run: npm ci + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: stable + cache: true + + - name: Deploy contracts + working-directory: packages/sharing-smart-contract + run: npm run deploy -- --network ${{ inputs.network }} + + - name: Save deployment artifacts + if: inputs.network != 'hardhat' + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: 'chore: save deployment artifacts for ${{ inputs.network }} (${{ inputs.environment }}, ${{ github.run_id }})' + file_pattern: 'packages/sharing-smart-contract/ignition/deployments/* packages/sharing-smart-contract/.openzeppelin/*' + commit_user_name: 'GitHub Actions Bot' + commit_user_email: 'github-actions[bot]@users.noreply.github.com' + commit_author: 'GitHub Actions Bot ' + + - name: Verify contracts + working-directory: packages/sharing-smart-contract + run: echo "TODO" # npm run verify:ignition -- $DEPLOYMENT_ID diff --git a/.github/workflows/sharing-smart-contracts-reusable.yml b/.github/workflows/sharing-smart-contracts-reusable.yml new file mode 100644 index 000000000..e549501f9 --- /dev/null +++ b/.github/workflows/sharing-smart-contracts-reusable.yml @@ -0,0 +1,110 @@ +name: Sharing Smart Contract - Reusable + +on: + workflow_call: + inputs: + node-version: + description: Node.js version to use + required: true + type: number + default: 18 + +jobs: + build-and-test: + runs-on: ubuntu-latest + permissions: + security-events: write # Required for SARIF upload. + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/setup-node@v4 + with: + node-version: ${{ inputs.node-version }} + + - name: Install Dependencies + working-directory: packages/sharing-smart-contract + run: npm ci + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: stable + cache: true + + - name: Compile + working-directory: packages/sharing-smart-contract + run: npm run compile + + - name: Check Format + working-directory: packages/sharing-smart-contract + run: npm run check-format + + - name: Lint + working-directory: packages/sharing-smart-contract + run: npm run lint + + - name: UML Diagrams + working-directory: packages/sharing-smart-contract + run: npm run uml + + - name: Static Analyzer + uses: crytic/slither-action@v0.4.0 + id: slither + with: + sarif: result.sarif + fail-on: none + target: 'packages/sharing-smart-contract/' + + - name: Start Anvil + run: | + anvil --host 0.0.0.0 --port 8545 --hardfork berlin --fork-url https://bellecour.iex.ec --chain-id 134 --gas-limit 6700000 --gas-price 0 & + + - name: Wait for Anvil to start + run: | + timeout=30 + interval=1 + echo "Waiting for Anvil to start..." + for ((i=0; i + - Staging: + ## [2.0.0-beta.15] (2025-04-04) ### Changed diff --git a/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json b/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json index 42065f51e..9f61f3582 100644 --- a/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json +++ b/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json @@ -2,7 +2,7 @@ { "inputs": [ { - "internalType": "contract IExecPocoDelegate", + "internalType": "address", "name": "_proxy", "type": "address" }, @@ -195,7 +195,7 @@ }, { "inputs": [], - "name": "FailedInnerCall", + "name": "FailedCall", "type": "error" }, { @@ -2007,11 +2007,6 @@ "internalType": "string", "name": "iexecResultStorageProvider_", "type": "string" - }, - { - "internalType": "string", - "name": "iexecResultStorageProxy_", - "type": "string" } ], "name": "updateEnv", diff --git a/packages/sdk/abis/sharing/interfaces/IExecPocoDelegate.sol/IExecPocoDelegate.json b/packages/sdk/abis/sharing/interfaces/IPoCo.sol/IPoCo.json similarity index 100% rename from packages/sdk/abis/sharing/interfaces/IExecPocoDelegate.sol/IExecPocoDelegate.json rename to packages/sdk/abis/sharing/interfaces/IPoCo.sol/IPoCo.json diff --git a/packages/sdk/abis/sharing/libs/IexecLibOrders_v5.sol/IexecLibOrders_v5.json b/packages/sdk/abis/sharing/libs/IexecLibOrders_v5.sol/IexecLibOrders_v5.json deleted file mode 100644 index 0637a088a..000000000 --- a/packages/sdk/abis/sharing/libs/IexecLibOrders_v5.sol/IexecLibOrders_v5.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/packages/sdk/abis/sharing/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json b/packages/sdk/abis/sharing/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json index d11f04ff8..ac6a760ab 100644 --- a/packages/sdk/abis/sharing/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json +++ b/packages/sdk/abis/sharing/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json @@ -4,11 +4,6 @@ "stateMutability": "nonpayable", "type": "constructor" }, - { - "inputs": [], - "name": "ERC1167FailedCreateClone", - "type": "error" - }, { "inputs": [ { @@ -112,6 +107,27 @@ "name": "ERC721NonexistentToken", "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": [], "name": "InvalidInitialization", diff --git a/packages/sdk/package-lock.json b/packages/sdk/package-lock.json index a590c9f42..fd9e0f261 100644 --- a/packages/sdk/package-lock.json +++ b/packages/sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iexec/dataprotector", - "version": "2.0.0-beta.14", + "version": "2.0.0-beta.16", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iexec/dataprotector", - "version": "2.0.0-beta.14", + "version": "2.0.0-beta.16", "license": "Apache-2.0", "dependencies": { "@ethersproject/bytes": "^5.7.0", @@ -30,6 +30,7 @@ "@swc/core": "^1.7.3", "@swc/jest": "^0.2.36", "@types/debug": "^4.1.7", + "@types/express": "^5.0.2", "@types/jest": "^29.5.12", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "^6.7.5", @@ -42,6 +43,7 @@ "eslint-plugin-jest": "^27.4.2", "eslint-plugin-sonarjs": "^0.21.0", "eslint-plugin-unicorn": "^51.0.1", + "express": "^5.1.0", "jest": "^29.7.0", "prettier": "^2.8.4", "rimraf": "^5.0.5", @@ -2411,6 +2413,27 @@ "@types/node": "*" } }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/debug": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.11.tgz", @@ -2428,6 +2451,31 @@ "@types/node": "*" } }, + "node_modules/@types/express": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.2.tgz", + "integrity": "sha512-BtjL3ZwbCQriyb0DGw+Rt12qAXPiBTPs815lsUvtt1Grk0vLRMZNMUZ741d5rjk+UQOxfDiBZ3dxpX00vSkK3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -2437,6 +2485,13 @@ "@types/node": "*" } }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -2483,6 +2538,13 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", @@ -2509,12 +2571,49 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", "dev": true }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.2.tgz", @@ -2762,6 +2861,20 @@ "node": ">=10" } }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -3170,6 +3283,40 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "license": "MIT" }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/borsh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", @@ -3283,6 +3430,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", @@ -3297,6 +3454,37 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3650,12 +3838,76 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, "node_modules/core-js-compat": { "version": "3.36.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", @@ -3825,6 +4077,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -3878,12 +4140,34 @@ "node": ">=6.0.0" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-fetch": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", @@ -3918,6 +4202,16 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -4017,6 +4311,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", @@ -4066,6 +4393,13 @@ "node": ">=6" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -4639,6 +4973,16 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/ethers": { "version": "6.13.5", "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.5.tgz", @@ -4720,6 +5064,49 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -4839,6 +5226,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", @@ -4938,6 +5343,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/fs-extra": { "version": "11.3.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", @@ -5038,15 +5463,25 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "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", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5066,6 +5501,20 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -5189,12 +5638,13 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5274,10 +5724,11 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5312,10 +5763,11 @@ "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -5335,6 +5787,23 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -5573,6 +6042,16 @@ "node": ">= 0.4" } }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/ipfs-unixfs": { "version": "11.1.4", "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-11.1.4.tgz", @@ -5807,6 +6286,13 @@ "node": ">=8" } }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -6998,6 +7484,39 @@ "tmpl": "1.0.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", @@ -7037,6 +7556,29 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -7161,6 +7703,16 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -7243,10 +7795,14 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7338,6 +7894,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7605,6 +8174,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -7662,6 +8241,16 @@ "node": "14 || >=16.14" } }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -7883,6 +8472,20 @@ "multiformats": "^13.0.0" } }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -7908,6 +8511,22 @@ } ] }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/query-string": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.1.1.tgz", @@ -7945,6 +8564,45 @@ } ] }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -8376,6 +9034,23 @@ "resolved": "https://registry.npmjs.org/rlc-faucet-contract/-/rlc-faucet-contract-1.0.10.tgz", "integrity": "sha512-pGQyIMcLIUQraCTNIcA4B9FY1g2vJHB8qWg3qbwjA1YUj1490LStKDlA4YlPwPgO/a0NWg0UHD7R9ki3DMGACQ==" }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/run-async": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", @@ -8477,6 +9152,45 @@ "node": ">=10" } }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/set-function-length": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", @@ -8511,6 +9225,13 @@ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -8533,14 +9254,76 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8663,6 +9446,16 @@ "node": ">=8" } }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/stdin-discarder": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", @@ -8974,6 +9767,16 @@ "node": ">=8.0" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", @@ -9135,6 +9938,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typechain": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", @@ -9368,6 +10186,16 @@ "node": ">= 10.0.0" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -9445,6 +10273,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 8364e0689..7c67c8dca 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@iexec/dataprotector", - "version": "2.0.0-beta.15", + "version": "2.0.0-beta.16", "description": "This product enables users to confidentially store data–such as mail address, documents, personal information ...", "type": "module", "types": "dist/src/index.d.ts", @@ -73,6 +73,7 @@ "@swc/core": "^1.7.3", "@swc/jest": "^0.2.36", "@types/debug": "^4.1.7", + "@types/express": "^5.0.2", "@types/jest": "^29.5.12", "@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/parser": "^6.7.5", @@ -85,6 +86,7 @@ "eslint-plugin-jest": "^27.4.2", "eslint-plugin-sonarjs": "^0.21.0", "eslint-plugin-unicorn": "^51.0.1", + "express": "^5.1.0", "jest": "^29.7.0", "prettier": "^2.8.4", "rimraf": "^5.0.5", diff --git a/packages/sdk/src/config/config.ts b/packages/sdk/src/config/config.ts index 02d6e50e6..e34c1b518 100644 --- a/packages/sdk/src/config/config.ts +++ b/packages/sdk/src/config/config.ts @@ -1,28 +1,40 @@ -export const DEFAULT_IPFS_GATEWAY = 'https://ipfs-gateway.v8-bellecour.iex.ec'; - -export const DEFAULT_IEXEC_IPFS_NODE = - 'https://ipfs-upload.v8-bellecour.iex.ec'; - +export type ChainId = number; + +export interface ChainConfig { + name: string; + dataprotectorContractAddress: string; + sharingContractAddress: string; + subgraphUrl: string; + ipfsGateway: string; + ipfsNode: string; + smsDebugURL: string; + workerpoolAddress: string; +} + +export const CHAIN_CONFIG: Record = { + // Bellecour + 134: { + name: 'bellecour', + dataprotectorContractAddress: '0x3a4ab33f3d605e75b6d00a32a0fa55c3628f6a59', + sharingContractAddress: '0x1390c3c6a545198809f1c7c5dd2600ef74d60925', + subgraphUrl: + 'https://thegraph.iex.ec/subgraphs/name/bellecour/dataprotector-v2', + ipfsGateway: 'https://ipfs-gateway.v8-bellecour.iex.ec', + ipfsNode: 'https://ipfs-upload.v8-bellecour.iex.ec', + smsDebugURL: 'https://sms-debug.iex.ec', + workerpoolAddress: 'prod-v8-bellecour.main.pools.iexec.eth', + }, +}; + +export const DEFAULT_CHAIN_ID = 134; +export const DEFAULT_ARWEAVE_UPLOAD_API = 'https://arweave-api.iex.ec'; +export const DEFAULT_ARWEAVE_GATEWAY = 'https://arweave.net'; +export const ARWEAVE_FREE_UPLOAD_MAX_SIZE = 100 * 1024; // 100kb export const DEFAULT_DATA_NAME = ''; - -// Original DataProtector smart-contract -export const DEFAULT_CONTRACT_ADDRESS = - '0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59'.toLowerCase(); - -export const DEFAULT_SHARING_CONTRACT_ADDRESS = - '0x1390c3c6a545198809F1C7c5Dd2600ef74D60925'.toLowerCase(); - -export const DEFAULT_SUBGRAPH_URL = - 'https://thegraph-product.iex.ec/subgraphs/name/bellecour/dataprotector-v2'; - -export const DEFAULT_DEBUG_SMS_URL = 'https://sms-debug.iex.ec'; - -export const WORKERPOOL_ADDRESS = 'prod-v8-bellecour.main.pools.iexec.eth'; - export const SCONE_TAG = ['tee', 'scone']; - export const DEFAULT_MAX_PRICE = 0; - +export const MAX_DESIRED_DATA_ORDER_PRICE = 0; +export const MAX_DESIRED_APP_ORDER_PRICE = 0; +export const MAX_DESIRED_WORKERPOOL_ORDER_PRICE = 0; export const KEY_PURPOSE_SELECTOR = 'keyHasPurpose(bytes32,uint256)'; - export const GROUP_MEMBER_PURPOSE = 4; diff --git a/packages/sdk/src/lib/IExecDataProtectorModule.ts b/packages/sdk/src/lib/IExecDataProtectorModule.ts index 1cef3ec0e..df7716c86 100644 --- a/packages/sdk/src/lib/IExecDataProtectorModule.ts +++ b/packages/sdk/src/lib/IExecDataProtectorModule.ts @@ -1,80 +1,158 @@ import { AbstractProvider, AbstractSigner, Eip1193Provider } from 'ethers'; import { GraphQLClient } from 'graphql-request'; import { IExec } from 'iexec'; -import { - DEFAULT_CONTRACT_ADDRESS, - DEFAULT_DEBUG_SMS_URL, - DEFAULT_IEXEC_IPFS_NODE, - DEFAULT_IPFS_GATEWAY, - DEFAULT_SHARING_CONTRACT_ADDRESS, - DEFAULT_SUBGRAPH_URL, -} from '../config/config.js'; +import { CHAIN_CONFIG, DEFAULT_ARWEAVE_UPLOAD_API } from '../config/config.js'; +import { getChainIdFromProvider } from '../utils/getChainId.js'; import { AddressOrENS, DataProtectorConfigOptions, Web3SignerProvider, } from './types/index.js'; +type EthersCompatibleProvider = + | AbstractProvider + | AbstractSigner + | Eip1193Provider + | Web3SignerProvider + | string; + +interface IExecDataProtectorResolvedConfig { + dataprotectorContractAddress: AddressOrENS; + sharingContractAddress: AddressOrENS; + graphQLClient: GraphQLClient; + ipfsNode: string; + ipfsGateway: string; + defaultWorkerpool: string; + iexec: IExec; + iexecDebug: IExec; +} + abstract class IExecDataProtectorModule { - protected dataprotectorContractAddress: AddressOrENS; + protected dataprotectorContractAddress!: AddressOrENS; + + protected sharingContractAddress!: AddressOrENS; + + protected graphQLClient!: GraphQLClient; - protected sharingContractAddress: AddressOrENS; + protected ipfsNode!: string; - protected graphQLClient: GraphQLClient; + protected ipfsGateway!: string; - protected ipfsNode: string; + protected arweaveUploadApi: string = DEFAULT_ARWEAVE_UPLOAD_API; - protected ipfsGateway: string; + protected defaultWorkerpool!: string; - protected iexec: IExec; + protected iexec!: IExec; - protected iexecDebug: IExec; + protected iexecDebug!: IExec; + + private initPromise: Promise | null = null; + + private ethProvider: EthersCompatibleProvider; + + private options: DataProtectorConfigOptions; constructor( - ethProvider?: - | AbstractProvider - | AbstractSigner - | Eip1193Provider - | Web3SignerProvider - | string, + ethProvider?: EthersCompatibleProvider, options?: DataProtectorConfigOptions ) { - const ipfsGateway = options?.ipfsGateway || DEFAULT_IPFS_GATEWAY; + this.ethProvider = ethProvider || 'bellecour'; + this.options = options || {}; + } + + protected async init(): Promise { + if (!this.initPromise) { + this.initPromise = this.resolveConfig().then((config) => { + this.dataprotectorContractAddress = config.dataprotectorContractAddress; + this.sharingContractAddress = config.sharingContractAddress; + this.graphQLClient = config.graphQLClient; + this.ipfsNode = config.ipfsNode; + this.ipfsGateway = config.ipfsGateway; + this.defaultWorkerpool = config.defaultWorkerpool; + this.iexec = config.iexec; + this.iexecDebug = config.iexecDebug; + }); + } + return this.initPromise; + } + + private async resolveConfig(): Promise { + const chainId = await getChainIdFromProvider(this.ethProvider); + const chainDefaultConfig = CHAIN_CONFIG[chainId]; + + const subgraphUrl = + this.options?.subgraphUrl || chainDefaultConfig?.subgraphUrl; + const dataprotectorContractAddress = + this.options?.dataprotectorContractAddress || + chainDefaultConfig?.dataprotectorContractAddress; + const sharingContractAddress = + this.options?.sharingContractAddress || + chainDefaultConfig?.sharingContractAddress; + const ipfsGateway = + this.options?.ipfsGateway || chainDefaultConfig?.ipfsGateway; + const defaultWorkerpool = chainDefaultConfig?.workerpoolAddress; + const ipfsNode = this.options?.ipfsNode || chainDefaultConfig?.ipfsNode; + const smsURL = + this.options?.iexecOptions?.smsDebugURL || + chainDefaultConfig?.smsDebugURL; + + const missing = []; + if (!subgraphUrl) missing.push('subgraphUrl'); + if (!dataprotectorContractAddress) + missing.push('dataprotectorContractAddress'); + if (!sharingContractAddress) missing.push('sharingContractAddress'); + if (!ipfsGateway) missing.push('ipfsGateway'); + if (!defaultWorkerpool) missing.push('defaultWorkerpool'); + if (!ipfsNode) missing.push('ipfsNode'); + if (!smsURL) missing.push('smsDebugURL'); + + if (missing.length > 0) { + throw new Error( + `Missing required configuration for chainId ${chainId}: ${missing.join( + ', ' + )}` + ); + } + + let iexec: IExec, iexecDebug: IExec, graphQLClient: GraphQLClient; try { - this.iexec = new IExec( - { ethProvider: ethProvider || 'bellecour' }, + iexec = new IExec( + { ethProvider: this.ethProvider }, { ipfsGatewayURL: ipfsGateway, - ...options?.iexecOptions, + ...this.options?.iexecOptions, } ); - this.iexecDebug = new IExec( - { ethProvider: ethProvider || 'bellecour' }, + + iexecDebug = new IExec( + { ethProvider: this.ethProvider }, { ipfsGatewayURL: ipfsGateway, - ...options?.iexecOptions, - smsURL: options?.iexecOptions?.smsDebugURL || DEFAULT_DEBUG_SMS_URL, + ...this.options?.iexecOptions, + smsURL, } ); - } catch (e) { - throw new Error(`Unsupported ethProvider, ${e.message}`); + } catch (e: any) { + throw new Error(`Unsupported ethProvider: ${e.message}`); } + try { - this.graphQLClient = new GraphQLClient( - options?.subgraphUrl || DEFAULT_SUBGRAPH_URL - ); - } catch (error) { + graphQLClient = new GraphQLClient(subgraphUrl); + } catch (error: any) { throw new Error(`Failed to create GraphQLClient: ${error.message}`); } - this.dataprotectorContractAddress = - options?.dataprotectorContractAddress?.toLowerCase() || - DEFAULT_CONTRACT_ADDRESS; - this.sharingContractAddress = - options?.sharingContractAddress?.toLowerCase() || - DEFAULT_SHARING_CONTRACT_ADDRESS; - this.ipfsNode = options?.ipfsNode || DEFAULT_IEXEC_IPFS_NODE; - this.ipfsGateway = ipfsGateway; + + return { + dataprotectorContractAddress: dataprotectorContractAddress.toLowerCase(), + sharingContractAddress: sharingContractAddress.toLowerCase(), + defaultWorkerpool, + graphQLClient, + ipfsNode, + ipfsGateway, + iexec, + iexecDebug, + }; } } diff --git a/packages/sdk/src/lib/dataProtectorCore/IExecDataProtectorCore.ts b/packages/sdk/src/lib/dataProtectorCore/IExecDataProtectorCore.ts index c1bfde660..d65a1285a 100644 --- a/packages/sdk/src/lib/dataProtectorCore/IExecDataProtectorCore.ts +++ b/packages/sdk/src/lib/dataProtectorCore/IExecDataProtectorCore.ts @@ -32,33 +32,39 @@ class IExecDataProtectorCore extends IExecDataProtectorModule { async protectData( args: ProtectDataParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return protectData({ ...args, dataprotectorContractAddress: this.dataprotectorContractAddress, ipfsNode: this.ipfsNode, ipfsGateway: this.ipfsGateway, + arweaveUploadApi: this.arweaveUploadApi, iexec: this.iexec, iexecDebug: this.iexecDebug, }); } async grantAccess(args: GrantAccessParams): Promise { + await this.init(); await isValidProvider(this.iexec); return grantAccess({ ...args, iexec: this.iexec }); } async revokeOneAccess(args: GrantedAccess): Promise { + await this.init(); await isValidProvider(this.iexec); return revokeOneAccess({ ...args, iexec: this.iexec }); } async revokeAllAccess(args: RevokeAllAccessParams): Promise { + await this.init(); await isValidProvider(this.iexec); return revokeAllAccess({ ...args, iexec: this.iexec }); } async transferOwnership(args: TransferParams): Promise { + await this.init(); await isValidProvider(this.iexec); return transferOwnership({ ...args, iexec: this.iexec }); } @@ -66,15 +72,20 @@ class IExecDataProtectorCore extends IExecDataProtectorModule { async processProtectedData( args: ProcessProtectedDataParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return processProtectedData({ ...args, iexec: this.iexec, + defaultWorkerpool: this.defaultWorkerpool, }); } // ----- READ METHODS ----- - getProtectedData(args?: GetProtectedDataParams): Promise { + async getProtectedData( + args?: GetProtectedDataParams + ): Promise { + await this.init(); return getProtectedData({ ...args, iexec: this.iexec, @@ -82,15 +93,17 @@ class IExecDataProtectorCore extends IExecDataProtectorModule { }); } - getGrantedAccess( + async getGrantedAccess( args: GetGrantedAccessParams ): Promise { + await this.init(); return getGrantedAccess({ ...args, iexec: this.iexec }); } async getResultFromCompletedTask( args: GetResultFromCompletedTaskParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return getResultFromCompletedTask({ ...args, diff --git a/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts b/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts index 2ad64dc52..236d99c77 100644 --- a/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts +++ b/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts @@ -1,8 +1,9 @@ import { ethers } from 'ethers'; import { - DEFAULT_MAX_PRICE, + MAX_DESIRED_APP_ORDER_PRICE, + MAX_DESIRED_DATA_ORDER_PRICE, + MAX_DESIRED_WORKERPOOL_ORDER_PRICE, SCONE_TAG, - WORKERPOOL_ADDRESS, } from '../../config/config.js'; import { WorkflowError, @@ -11,7 +12,7 @@ import { } from '../../utils/errors.js'; import { checkUserVoucher, - findWorkerpoolOrders, + filterWorkerpoolOrders, } from '../../utils/processProtectedData.models.js'; import { pushRequesterSecret } from '../../utils/pushRequesterSecret.js'; import { @@ -27,6 +28,7 @@ import { } from '../../utils/validators.js'; import { isERC734 } from '../../utils/whitelist.js'; import { + DefaultWorkerpoolConsumer, MatchOptions, OnStatusUpdateFn, ProcessProtectedDataParams, @@ -42,10 +44,13 @@ export type ProcessProtectedData = typeof processProtectedData; export const processProtectedData = async ({ iexec = throwIfMissing(), + defaultWorkerpool, protectedData, app, userWhitelist, - maxPrice = DEFAULT_MAX_PRICE, + dataMaxPrice = MAX_DESIRED_DATA_ORDER_PRICE, + appMaxPrice = MAX_DESIRED_APP_ORDER_PRICE, + workerpoolMaxPrice = MAX_DESIRED_WORKERPOOL_ORDER_PRICE, path, args, inputFiles, @@ -55,6 +60,7 @@ export const processProtectedData = async ({ voucherOwner, onStatusUpdate = () => {}, }: IExecConsumer & + DefaultWorkerpoolConsumer & ProcessProtectedDataParams): Promise => { const vProtectedData = addressOrEnsSchema() .required() @@ -67,9 +73,15 @@ export const processProtectedData = async ({ const vUserWhitelist = addressSchema() .label('userWhitelist') .validateSync(userWhitelist); - const vMaxPrice = positiveNumberSchema() - .label('maxPrice') - .validateSync(maxPrice); + const vDataMaxPrice = positiveNumberSchema() + .label('dataMaxPrice') + .validateSync(dataMaxPrice); + const vAppMaxPrice = positiveNumberSchema() + .label('appMaxPrice') + .validateSync(appMaxPrice); + const vWorkerpoolMaxPrice = positiveNumberSchema() + .label('workerpoolMaxPrice') + .validateSync(workerpoolMaxPrice); const vPath = stringSchema().label('path').validateSync(path); const vInputFiles = urlArraySchema() .label('inputFiles') @@ -77,7 +89,7 @@ export const processProtectedData = async ({ const vArgs = stringSchema().label('args').validateSync(args); const vSecrets = secretsSchema().label('secrets').validateSync(secrets); const vWorkerpool = addressOrEnsSchema() - .default(WORKERPOOL_ADDRESS) // Default workerpool if none is specified + .default(defaultWorkerpool) // Default workerpool if none is specified .label('workerpool') .validateSync(workerpool); const vUseVoucher = booleanSchema() @@ -136,76 +148,111 @@ export const processProtectedData = async ({ } vOnStatusUpdate({ - title: 'FETCH_PROTECTED_DATA_ORDERBOOK', + title: 'FETCH_ORDERS', isDone: false, }); - const datasetOrderbook = await iexec.orderbook.fetchDatasetOrderbook( - vProtectedData, - { - app: vApp, - workerpool: vWorkerpool, - requester, - } - ); - const datasetorder = datasetOrderbook.orders[0]?.order; //The first order is the cheapest one - if (!datasetorder) { - throw new Error(`No dataset orders found`); - } - vOnStatusUpdate({ - title: 'FETCH_PROTECTED_DATA_ORDERBOOK', - isDone: true, - }); + const [ + datasetorderForApp, + datasetorderForWhitelist, + apporder, + workerpoolorder, + ] = await Promise.all([ + // Fetch dataset order + iexec.orderbook + .fetchDatasetOrderbook(vProtectedData, { + app: vApp, + requester: requester, + }) + .then((datasetOrderbook) => { + const desiredPriceDataOrderbook = datasetOrderbook.orders.filter( + (order) => order.order.datasetprice <= vDataMaxPrice + ); + return desiredPriceDataOrderbook[0]?.order; // may be undefined + }), + // Fetch dataset order for whitelist + iexec.orderbook + .fetchDatasetOrderbook(vProtectedData, { + app: vUserWhitelist, + requester: requester, + }) + .then((datasetOrderbook) => { + const desiredPriceDataOrderbook = datasetOrderbook.orders.filter( + (order) => order.order.datasetprice <= vDataMaxPrice + ); + return desiredPriceDataOrderbook[0]?.order; // may be undefined + }), + // Fetch app order + iexec.orderbook + .fetchAppOrderbook(vApp, { + minTag: ['tee', 'scone'], + maxTag: ['tee', 'scone'], + workerpool: vWorkerpool, + }) + .then((appOrderbook) => { + const desiredPriceAppOrderbook = appOrderbook.orders.filter( + (order) => order.order.appprice <= vAppMaxPrice + ); + const desiredPriceAppOrder = desiredPriceAppOrderbook[0]?.order; + if (!desiredPriceAppOrder) { + throw new Error('No App order found for the desired price'); + } + return desiredPriceAppOrder; + }), + // Fetch workerpool order for App or AppWhitelist + Promise.all([ + // for app + iexec.orderbook.fetchWorkerpoolOrderbook({ + workerpool: vWorkerpool, + app: vApp, + dataset: vProtectedData, + requester: requester, // public orders + user specific orders + isRequesterStrict: useVoucher, // If voucher, we only want user specific orders + minTag: ['tee', 'scone'], + maxTag: ['tee', 'scone'], + category: 0, + }), + // for app whitelist + iexec.orderbook.fetchWorkerpoolOrderbook({ + workerpool: vWorkerpool === ethers.ZeroAddress ? 'any' : vWorkerpool, + app: vUserWhitelist, + dataset: vProtectedData, + requester: requester, // public orders + user specific orders + isRequesterStrict: useVoucher, // If voucher, we only want user specific orders + minTag: ['tee', 'scone'], + maxTag: ['tee', 'scone'], + category: 0, + }), + ]).then( + ([workerpoolOrderbookForApp, workerpoolOrderbookForAppWhitelist]) => { + const desiredPriceWorkerpoolOrder = filterWorkerpoolOrders({ + workerpoolOrders: [ + ...workerpoolOrderbookForApp.orders, + ...workerpoolOrderbookForAppWhitelist.orders, + ], + workerpoolMaxPrice: vWorkerpoolMaxPrice, + useVoucher: vUseVoucher, + userVoucher, + }); + if (!desiredPriceWorkerpoolOrder) { + throw new Error('No Workerpool order found for the desired price'); + } + return desiredPriceWorkerpoolOrder; + } + ), + ]); - vOnStatusUpdate({ - title: 'FETCH_APP_ORDERBOOK', - isDone: false, - }); - const appOrderbook = await iexec.orderbook.fetchAppOrderbook(vApp, { - dataset: protectedData, - requester, - minTag: SCONE_TAG, - maxTag: SCONE_TAG, - workerpool: vWorkerpool, - }); - const apporder = appOrderbook.orders[0]?.order; //The first order is the cheapest one - if (!apporder) { - throw new Error(`No app orders found`); + if (!workerpoolorder) { + throw new Error('No Workerpool order found for the desired price'); } - vOnStatusUpdate({ - title: 'FETCH_APP_ORDERBOOK', - isDone: true, - }); - vOnStatusUpdate({ - title: 'FETCH_WORKERPOOL_ORDERBOOK', - isDone: false, - }); - const workerpoolOrderbook = await iexec.orderbook.fetchWorkerpoolOrderbook({ - workerpool: vWorkerpool === ethers.ZeroAddress ? 'any' : vWorkerpool, // if address zero was chosen use any workerpool - app: vApp, - dataset: vProtectedData, - requester: requester, - isRequesterStrict: - vVoucherOwner && vVoucherOwner.toLowerCase() !== requester.toLowerCase() - ? false - : useVoucher, - minTag: SCONE_TAG, - maxTag: SCONE_TAG, - category: 0, - }); - const workerpoolOrder = findWorkerpoolOrders({ - workerpoolOrders: [...workerpoolOrderbook.orders], - useVoucher: vUseVoucher, - userVoucher, - }); - if (!workerpoolOrder) { - throw new Error('No Workerpool order found.'); + const datasetorder = datasetorderForApp || datasetorderForWhitelist; + if (!datasetorder) { + throw new Error('No Dataset order found for the desired price'); } vOnStatusUpdate({ - title: 'FETCH_WORKERPOOL_ORDERBOOK', + title: 'FETCH_ORDERS', isDone: true, }); - vOnStatusUpdate({ title: 'PUSH_REQUESTER_SECRET', isDone: false, @@ -222,13 +269,13 @@ export const processProtectedData = async ({ }); const requestorderToSign = await iexec.order.createRequestorder({ app: vApp, - category: workerpoolOrder.category, + category: workerpoolorder.category, dataset: vProtectedData, appmaxprice: apporder.appprice, datasetmaxprice: datasetorder.datasetprice, - workerpoolmaxprice: workerpoolOrder.workerpoolprice, + workerpoolmaxprice: workerpoolorder.workerpoolprice, tag: SCONE_TAG, - workerpool: workerpoolOrder.workerpool, + workerpool: workerpoolorder.workerpool, params: { iexec_input_files: vInputFiles, iexec_secrets: secretsId, @@ -239,7 +286,7 @@ export const processProtectedData = async ({ const orders = { requestorder, - workerpoolorder: workerpoolOrder, + workerpoolorder: workerpoolorder, apporder: apporder, datasetorder: datasetorder, }; @@ -248,20 +295,6 @@ export const processProtectedData = async ({ ...(vVoucherOwner ? { voucherAddress: userVoucher?.address } : {}), }; - const estimatedMatchOrderPrice = await iexec.order.estimateMatchOrders( - orders, - matchOptions - ); - if ( - estimatedMatchOrderPrice.total - .sub(estimatedMatchOrderPrice.sponsored) - .ltn(vMaxPrice) - ) { - throw new Error( - `No orders found within the specified price limit ${vMaxPrice} nRLC.` - ); - } - const { dealid, txHash } = await iexec.order.matchOrders( orders, matchOptions diff --git a/packages/sdk/src/lib/dataProtectorCore/protectData.ts b/packages/sdk/src/lib/dataProtectorCore/protectData.ts index 1117181c9..390e816ba 100644 --- a/packages/sdk/src/lib/dataProtectorCore/protectData.ts +++ b/packages/sdk/src/lib/dataProtectorCore/protectData.ts @@ -1,6 +1,10 @@ import { multiaddr as Multiaddr } from '@multiformats/multiaddr'; -import { DEFAULT_DATA_NAME } from '../../config/config.js'; -import { add } from '../../services/ipfs.js'; +import { + DEFAULT_ARWEAVE_GATEWAY, + DEFAULT_DATA_NAME, +} from '../../config/config.js'; +import * as arweave from '../../services/arweave.js'; +import * as ipfs from '../../services/ipfs.js'; import { createZipFromObject, ensureDataObjectIsValid, @@ -28,6 +32,7 @@ import { ProtectedDataWithSecretProps, } from '../types/index.js'; import { + ArweaveUploadConsumer, DataProtectorContractConsumer, IExecConsumer, IExecDebugConsumer, @@ -43,8 +48,10 @@ export const protectData = async ({ iexecDebug = throwIfMissing(), dataprotectorContractAddress, name = DEFAULT_DATA_NAME, + uploadMode = 'ipfs', ipfsNode, ipfsGateway, + arweaveUploadApi, allowDebug = false, data, onStatusUpdate = () => {}, @@ -52,8 +59,13 @@ export const protectData = async ({ IExecDebugConsumer & DataProtectorContractConsumer & IpfsNodeAndGateway & + ArweaveUploadConsumer & ProtectDataParams): Promise => { const vName = stringSchema().label('name').validateSync(name); + const vUploadMode = stringSchema() + .oneOf(['ipfs', 'arweave']) + .label('uploadMode') + .validateSync(uploadMode); const vIpfsNodeUrl = urlSchema().label('ipfsNode').validateSync(ipfsNode); const vIpfsGateway = urlSchema() .label('ipfsGateway') @@ -149,28 +161,55 @@ export const protectData = async ({ title: 'UPLOAD_ENCRYPTED_FILE', isDone: false, }); - const cid = await add(encryptedFile, { - ipfsNode: vIpfsNodeUrl, - ipfsGateway: vIpfsGateway, - }).catch((e: Error) => { - throw new WorkflowError({ - message: 'Failed to upload encrypted data', - errorCause: e, + + let multiaddr: string; + let multiaddrBytes: Uint8Array; + + if (vUploadMode === 'arweave') { + const arweaveId = await arweave + .add(encryptedFile, { arweaveUploadApi }) + .catch((e: Error) => { + throw new WorkflowError({ + message: 'Failed to upload encrypted data', + errorCause: e, + }); + }); + multiaddr = `${DEFAULT_ARWEAVE_GATEWAY}/${arweaveId}`; + multiaddrBytes = new TextEncoder().encode(multiaddr); + vOnStatusUpdate({ + title: 'UPLOAD_ENCRYPTED_FILE', + isDone: true, + payload: { + arweaveId, + }, }); - }); - const multiaddr = `/p2p/${cid}`; - vOnStatusUpdate({ - title: 'UPLOAD_ENCRYPTED_FILE', - isDone: true, - payload: { - cid, - }, - }); + } else { + // ipfs fallback + const cid = await ipfs + .add(encryptedFile, { + ipfsNode: vIpfsNodeUrl, + ipfsGateway: vIpfsGateway, + }) + .catch((e: Error) => { + throw new WorkflowError({ + message: 'Failed to upload encrypted data', + errorCause: e, + }); + }); + multiaddr = `/p2p/${cid}`; + multiaddrBytes = Multiaddr(multiaddr).bytes; + vOnStatusUpdate({ + title: 'UPLOAD_ENCRYPTED_FILE', + isDone: true, + payload: { + cid, + }, + }); + } const { provider, signer, txOptions } = await iexec.config.resolveContractsClient(); - const multiaddrBytes = Multiaddr(multiaddr).bytes; const ownerAddress = await signer.getAddress(); vOnStatusUpdate({ diff --git a/packages/sdk/src/lib/dataProtectorSharing/IExecDataProtectorSharing.ts b/packages/sdk/src/lib/dataProtectorSharing/IExecDataProtectorSharing.ts index 689df926c..b4fe5e76e 100644 --- a/packages/sdk/src/lib/dataProtectorSharing/IExecDataProtectorSharing.ts +++ b/packages/sdk/src/lib/dataProtectorSharing/IExecDataProtectorSharing.ts @@ -69,6 +69,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { // -------------------- Collection -------------------- async createCollection(): Promise { + await this.init(); await isValidProvider(this.iexec); return createCollection({ iexec: this.iexec, @@ -79,6 +80,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async removeCollection( args: RemoveCollectionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return removeCollection({ ...args, @@ -90,6 +92,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async addToCollection( args: AddToCollectionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return addToCollection({ ...args, @@ -101,6 +104,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async removeProtectedDataFromCollection( args: RemoveFromCollectionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return removeProtectedDataFromCollection({ ...args, @@ -114,6 +118,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async setProtectedDataToRenting( args: SetProtectedDataToRentingParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return setProtectedDataToRenting({ ...args, @@ -126,6 +131,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async setProtectedDataRentingParams( args: SetProtectedDataRentingParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return setProtectedDataToRenting({ ...args, @@ -137,6 +143,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async rentProtectedData( args: RentProtectedDataParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return rentProtectedData({ ...args, @@ -148,6 +155,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async removeProtectedDataFromRenting( args: RemoveProtectedDataFromRentingParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return removeProtectedDataFromRenting({ ...args, @@ -161,6 +169,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async setProtectedDataForSale( args: SetProtectedDataForSaleParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return setProtectedDataForSale({ ...args, @@ -172,6 +181,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async buyProtectedData( args: BuyProtectedDataParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return buyProtectedData({ ...args, @@ -183,6 +193,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async removeProtectedDataForSale( args: RemoveProtectedDataForSaleParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return removeProtectedDataForSale({ ...args, @@ -196,6 +207,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async setSubscriptionParams( args: SetSubscriptionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return setSubscriptionParams({ ...args, @@ -207,6 +219,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async setProtectedDataToSubscription( args: SetProtectedDataToSubscriptionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return setProtectedDataToSubscription({ ...args, @@ -218,6 +231,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async subscribeToCollection( args: SubscribeToCollectionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return subscribeToCollection({ ...args, @@ -229,6 +243,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async removeProtectedDataFromSubscription( args: RemoveProtectedDataFromSubscriptionParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return removeProtectedDataFromSubscription({ ...args, @@ -243,17 +258,20 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async consumeProtectedData( args: ConsumeProtectedDataParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return consumeProtectedData({ ...args, iexec: this.iexec, sharingContractAddress: this.sharingContractAddress, + defaultWorkerpool: this.defaultWorkerpool, }); } // -------------------- Apps whitelist -------------------- async createAddOnlyAppWhitelist(): Promise { + await this.init(); await isValidProvider(this.iexec); return createAddOnlyAppWhitelist({ iexec: this.iexec, @@ -264,6 +282,7 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { async addAppToAddOnlyAppWhitelist( args: AddAppToAppWhitelistParams ): Promise { + await this.init(); await isValidProvider(this.iexec); return addAppToAddOnlyAppWhitelist({ ...args, @@ -276,27 +295,30 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { * Read-only functions * ******************************************************************/ - getProtectedDataInCollections( + async getProtectedDataInCollections( args?: GetProtectedDataInCollectionsParams ): Promise { + await this.init(); return getProtectedDataInCollections({ ...args, graphQLClient: this.graphQLClient, }); } - getProtectedDataPricingParams( + async getProtectedDataPricingParams( args: GetProtectedDataPricingParams ): Promise { + await this.init(); return getProtectedDataPricingParams({ ...args, graphQLClient: this.graphQLClient, }); } - getCollectionOwners( + async getCollectionOwners( args?: GetCollectionOwnersParams ): Promise { + await this.init(); return getCollectionOwners({ ...args, iexec: this.iexec, @@ -304,34 +326,38 @@ class IExecDataProtectorSharing extends IExecDataProtectorModule { }); } - getCollectionsByOwner( + async getCollectionsByOwner( args: GetCollectionsByOwnerParams ): Promise { + await this.init(); return getCollectionsByOwner({ ...args, graphQLClient: this.graphQLClient, }); } - getCollectionSubscriptions( + async getCollectionSubscriptions( args?: GetCollectionSubscriptionsParams ): Promise { + await this.init(); return getCollectionSubscriptions({ ...args, graphQLClient: this.graphQLClient, }); } - getRentals(args?: GetRentalsParams): Promise { + async getRentals(args?: GetRentalsParams): Promise { + await this.init(); return getRentals({ ...args, graphQLClient: this.graphQLClient, }); } - getUserAddOnlyAppWhitelist( + async getUserAddOnlyAppWhitelist( args?: GetUserAppWhitelistParams ): Promise { + await this.init(); return getUserAddOnlyAppWhitelist({ ...args, iexec: this.iexec, diff --git a/packages/sdk/src/lib/dataProtectorSharing/consumeProtectedData.ts b/packages/sdk/src/lib/dataProtectorSharing/consumeProtectedData.ts index 78bedccfe..0af104159 100644 --- a/packages/sdk/src/lib/dataProtectorSharing/consumeProtectedData.ts +++ b/packages/sdk/src/lib/dataProtectorSharing/consumeProtectedData.ts @@ -1,9 +1,5 @@ import { string } from 'yup'; -import { - SCONE_TAG, - WORKERPOOL_ADDRESS, - DEFAULT_MAX_PRICE, -} from '../../config/config.js'; +import { SCONE_TAG, DEFAULT_MAX_PRICE } from '../../config/config.js'; import { WorkflowError, consumeProtectedDataErrorMessage, @@ -19,15 +15,16 @@ import { positiveNumberSchema, stringSchema, } from '../../utils/validators.js'; +import { getResultFromCompletedTask } from '../dataProtectorCore/getResultFromCompletedTask.js'; import { ConsumeProtectedDataParams, ConsumeProtectedDataResponse, ConsumeProtectedDataStatuses, + DefaultWorkerpoolConsumer, OnStatusUpdateFn, SharingContractConsumer, } from '../types/index.js'; import { IExecConsumer } from '../types/internalTypes.js'; -import { getResultFromCompletedTask } from '../dataProtectorCore/getResultFromCompletedTask.js'; import { getAppWhitelistContract } from './smartContract/getAddOnlyAppWhitelistContract.js'; import { getSharingContract } from './smartContract/getSharingContract.js'; import { @@ -39,6 +36,7 @@ import { getProtectedDataDetails } from './smartContract/sharingContract.reads.j export const consumeProtectedData = async ({ iexec = throwIfMissing(), sharingContractAddress = throwIfMissing(), + defaultWorkerpool, protectedData, app, path, @@ -49,6 +47,7 @@ export const consumeProtectedData = async ({ onStatusUpdate = () => {}, }: IExecConsumer & SharingContractConsumer & + DefaultWorkerpoolConsumer & ConsumeProtectedDataParams): Promise => { let vProtectedData = addressOrEnsSchema() .required() @@ -61,6 +60,7 @@ export const consumeProtectedData = async ({ let vApp = addressOrEnsSchema().required().label('app').validateSync(app); let vWorkerpool = addressOrEnsSchema() .label('workerpool') + .default(defaultWorkerpool) .validateSync(workerpool); const vPemPublicKey = string() .label('pemPublicKey') @@ -110,7 +110,7 @@ export const consumeProtectedData = async ({ }); try { const workerpoolOrderbook = await iexec.orderbook.fetchWorkerpoolOrderbook({ - workerpool: vWorkerpool || WORKERPOOL_ADDRESS, + workerpool: vWorkerpool, app: vApp, dataset: vProtectedData, minTag: SCONE_TAG, diff --git a/packages/sdk/src/lib/dataProtectorSharing/smartContract/getPocoContract.ts b/packages/sdk/src/lib/dataProtectorSharing/smartContract/getPocoContract.ts index 0516f2600..7152ea41f 100644 --- a/packages/sdk/src/lib/dataProtectorSharing/smartContract/getPocoContract.ts +++ b/packages/sdk/src/lib/dataProtectorSharing/smartContract/getPocoContract.ts @@ -1,9 +1,7 @@ import type { IExecModule } from 'iexec'; -import type { IExecPocoDelegate } from '../../../../generated/typechain/sharing/interfaces/IExecPocoDelegate.js'; +import type { IPoCo } from '../../../../generated/typechain/sharing/interfaces/IPoCo.js'; -export async function getPocoContract( - iexec: IExecModule -): Promise { +export async function getPocoContract(iexec: IExecModule): Promise { const client = await iexec.config.resolveContractsClient(); - return client.getIExecContract() as unknown as IExecPocoDelegate; + return client.getIExecContract() as unknown as IPoCo; } diff --git a/packages/sdk/src/lib/dataProtectorSharing/smartContract/pocoContract.reads.ts b/packages/sdk/src/lib/dataProtectorSharing/smartContract/pocoContract.reads.ts index e1133dae1..c6ef685c2 100644 --- a/packages/sdk/src/lib/dataProtectorSharing/smartContract/pocoContract.reads.ts +++ b/packages/sdk/src/lib/dataProtectorSharing/smartContract/pocoContract.reads.ts @@ -1,4 +1,4 @@ -import type { IExecPocoDelegate } from '../../../../generated/typechain/sharing/interfaces/IExecPocoDelegate.js'; +import type { IPoCo } from '../../../../generated/typechain/sharing/interfaces/IPoCo.js'; import type { Address } from '../../types/index.js'; import type { AccountDetails } from '../../types/pocoTypes.js'; @@ -12,7 +12,7 @@ const getAccountAllowance = async ({ owner, spender, }: { - pocoContract: IExecPocoDelegate; + pocoContract: IPoCo; owner: Address; spender: Address; }) => { @@ -23,7 +23,7 @@ const getAccountBalance = async ({ pocoContract, owner, }: { - pocoContract: IExecPocoDelegate; + pocoContract: IPoCo; owner: Address; }) => { return pocoContract.balanceOf(owner); @@ -34,7 +34,7 @@ export const getAccountDetails = async ({ userAddress, sharingContractAddress, }: { - pocoContract: IExecPocoDelegate; + pocoContract: IPoCo; userAddress: Address; sharingContractAddress: Address; }): Promise => { diff --git a/packages/sdk/src/lib/types/commonTypes.ts b/packages/sdk/src/lib/types/commonTypes.ts index e7612bc16..319970a48 100644 --- a/packages/sdk/src/lib/types/commonTypes.ts +++ b/packages/sdk/src/lib/types/commonTypes.ts @@ -122,3 +122,7 @@ export type MatchOptions = { useVoucher: boolean; voucherAddress?: string; }; + +export type DefaultWorkerpoolConsumer = { + defaultWorkerpool: AddressOrENS; +}; diff --git a/packages/sdk/src/lib/types/coreTypes.ts b/packages/sdk/src/lib/types/coreTypes.ts index d4ff633df..126b15cf7 100644 --- a/packages/sdk/src/lib/types/coreTypes.ts +++ b/packages/sdk/src/lib/types/coreTypes.ts @@ -72,6 +72,14 @@ export type ProtectDataParams = { */ allowDebug?: boolean; + /** + * specify the platform used for storing the encrypted payload of the protected data + * + * - `"ipfs"` (default): https://ipfs.tech/ + * - `"arweave"`: https://arweave.org/ + */ + uploadMode?: 'ipfs' | 'arweave'; + /** * Callback function that will get called at each step of the process */ @@ -98,6 +106,7 @@ export type ProtectedDataCreationProps = { transactionHash: string; zipFile: Uint8Array; encryptionKey: string; + multiaddr: string; }; export type ProtectedDataWithSecretProps = ProtectedData & @@ -276,6 +285,7 @@ export type TransferResponse = { // ---------------------ProcessProtectedData Types------------------------------------ export type ProcessProtectedDataStatuses = + | 'FETCH_ORDERS' | 'FETCH_PROTECTED_DATA_ORDERBOOK' | 'FETCH_APP_ORDERBOOK' | 'FETCH_WORKERPOOL_ORDERBOOK' @@ -302,11 +312,22 @@ export type ProcessProtectedDataParams = { userWhitelist?: Address; /** - * The maximum price per task for processing the protected data. - * It is the sum of the application price, dataset price and workerpool price per task. + * The maximum price of dataset per task for processing the protected data. + @default = 0 + */ + dataMaxPrice?: number; + + /** + * The maximum price of application per task for processing the protected data. + @default = 0 + */ + appMaxPrice?: number; + + /** + * The maximum price of workerpool per task for processing the protected data. @default = 0 */ - maxPrice?: number; + workerpoolMaxPrice?: number; /** * The file name of the desired file in the returned ZIP file. diff --git a/packages/sdk/src/lib/types/internalTypes.ts b/packages/sdk/src/lib/types/internalTypes.ts index 0215539e5..791cde3e7 100644 --- a/packages/sdk/src/lib/types/internalTypes.ts +++ b/packages/sdk/src/lib/types/internalTypes.ts @@ -17,6 +17,10 @@ export type DataProtectorContractConsumer = { dataprotectorContractAddress: AddressOrENS; }; +export type ArweaveUploadConsumer = { + arweaveUploadApi?: string; +}; + export type SubgraphConsumer = { graphQLClient: GraphQLClient; }; diff --git a/packages/sdk/src/services/arweave.ts b/packages/sdk/src/services/arweave.ts new file mode 100644 index 000000000..ba6d89dc5 --- /dev/null +++ b/packages/sdk/src/services/arweave.ts @@ -0,0 +1,66 @@ +import { + DEFAULT_ARWEAVE_GATEWAY, + DEFAULT_ARWEAVE_UPLOAD_API, + ARWEAVE_FREE_UPLOAD_MAX_SIZE, +} from '../config/config.js'; + +interface AddOptions { + arweaveUploadApi?: string; + arweaveGateway?: string; +} + +const add = async ( + content: Uint8Array, + { arweaveGateway, arweaveUploadApi }: AddOptions = {} +): Promise => { + if (content.length >= ARWEAVE_FREE_UPLOAD_MAX_SIZE) { + throw Error( + `Arweave upload ${(ARWEAVE_FREE_UPLOAD_MAX_SIZE / 1024).toFixed( + 0 + )}kb size limit reached` + ); + } + + let arweaveId: string; + try { + const payload = new FormData(); + payload.append('file', new Blob([content])); + const res = await fetch( + `${arweaveUploadApi || DEFAULT_ARWEAVE_UPLOAD_API}/upload`, + { + method: 'POST', + body: payload, + } + ); + if (!res.ok) { + throw Error(`Arweave upload API answered with status ${res.status}`); + } + try { + const data = await res.json(); + arweaveId = data?.arweaveId; + if (!arweaveId) { + throw Error('missing arweaveId'); + } + } catch (e) { + throw Error('Arweave upload API answered with an invalid response', { + cause: e, + }); + } + } catch (e) { + throw Error('Failed to add file on Arweave', { cause: e }); + } + const publicUrl = `${arweaveGateway || DEFAULT_ARWEAVE_GATEWAY}/${arweaveId}`; + await fetch(publicUrl) + .then((res) => { + if (!res.ok) { + throw Error(`Arweave gateway answered with status ${res.status}`); + } + }) + .catch((e) => { + throw Error(`Failed to load uploaded file at ${publicUrl}`, { cause: e }); + }); + + return arweaveId; +}; + +export { add }; diff --git a/packages/sdk/src/utils/getChainId.ts b/packages/sdk/src/utils/getChainId.ts new file mode 100644 index 000000000..02338c184 --- /dev/null +++ b/packages/sdk/src/utils/getChainId.ts @@ -0,0 +1,43 @@ +import { + JsonRpcProvider, + BrowserProvider, + AbstractProvider, + AbstractSigner, + Eip1193Provider, +} from 'ethers'; +import { DEFAULT_CHAIN_ID } from '../config/config.js'; + +type EthersCompatibleProvider = + | string + | AbstractProvider + | AbstractSigner + | Eip1193Provider; + +export async function getChainIdFromProvider( + ethProvider: EthersCompatibleProvider +): Promise { + try { + if (typeof ethProvider === 'string') { + const provider = new JsonRpcProvider(ethProvider); + const network = await provider.getNetwork(); + return Number(network.chainId); + } else if (ethProvider instanceof AbstractProvider) { + const network = await ethProvider.getNetwork(); + return Number(network.chainId); + } else if (ethProvider instanceof AbstractSigner) { + const { provider } = ethProvider; + if (!provider) { + throw Error('Signer is not connected to a provider'); + } + const network = await provider.getNetwork(); + return Number(network.chainId); + } else if ('request' in ethProvider) { + const provider = new BrowserProvider(ethProvider as Eip1193Provider); + const network = await provider.getNetwork(); + return Number(network.chainId); + } + } catch (e) { + console.warn('Failed to detect chainId:', e); + } + return DEFAULT_CHAIN_ID; +} diff --git a/packages/sdk/src/utils/getMultiaddrAsString.ts b/packages/sdk/src/utils/getMultiaddrAsString.ts index 8ed4520d2..f53307dd4 100644 --- a/packages/sdk/src/utils/getMultiaddrAsString.ts +++ b/packages/sdk/src/utils/getMultiaddrAsString.ts @@ -22,15 +22,28 @@ export function getMultiaddrAsString({ if (!multiAddrAsBytesArray) { return undefined; } + const multiaddrAsBytes = new Uint8Array(multiAddrAsBytesArray); + + // try utf8 encoded url + try { + const decodedString = new TextDecoder().decode(multiaddrAsBytes); + if (decodedString.startsWith('https://')) { + return decodedString; + } + } catch { + // noop + } + + // try machine format multiaddr try { - const multiaddrAsBytes = new Uint8Array(multiAddrAsBytesArray); const decodedMultiaddr = multiaddr(multiaddrAsBytes); return decodedMultiaddr.toString(); - } catch (err) { - console.warn( - `[getMultiaddrAsString] ERROR: "${multiaddrAsHexString}" is not a valid hex input string?`, - err - ); - return undefined; + } catch { + // noop } + + console.warn( + `[getMultiaddrAsString] ERROR: "${multiaddrAsHexString}" is not a valid hex encoded multiaddr?` + ); + return undefined; } diff --git a/packages/sdk/src/utils/processProtectedData.models.ts b/packages/sdk/src/utils/processProtectedData.models.ts index 4fba32e68..b51b25120 100644 --- a/packages/sdk/src/utils/processProtectedData.models.ts +++ b/packages/sdk/src/utils/processProtectedData.models.ts @@ -24,12 +24,14 @@ export function checkUserVoucher({ } } -export function findWorkerpoolOrders({ +export function filterWorkerpoolOrders({ workerpoolOrders, + workerpoolMaxPrice, useVoucher, userVoucher, }: { workerpoolOrders: PublishedWorkerpoolorder[]; + workerpoolMaxPrice: number; useVoucher: boolean; userVoucher?: VoucherInfo; }) { @@ -38,6 +40,8 @@ export function findWorkerpoolOrders({ } let eligibleWorkerpoolOrders = workerpoolOrders; + let maxVoucherSponsoredAmount = 0; // may be safer to use bigint + if (useVoucher) { if (!userVoucher) { throw new Error( @@ -53,11 +57,20 @@ export function findWorkerpoolOrders({ 'Found some workerpool orders but none can be sponsored by your voucher.' ); } + maxVoucherSponsoredAmount = bnToNumber(userVoucher.balance); } const [cheapestOrder] = eligibleWorkerpoolOrders.sort( (order1, order2) => order1.order.workerpoolprice - order2.order.workerpoolprice ); + + if ( + !cheapestOrder || + cheapestOrder.order.workerpoolprice > + workerpoolMaxPrice + maxVoucherSponsoredAmount + ) { + return null; + } return cheapestOrder.order; } diff --git a/packages/sdk/tests/docker-compose.yml b/packages/sdk/tests/docker-compose.yml index 4c4457ccf..d0d719e60 100644 --- a/packages/sdk/tests/docker-compose.yml +++ b/packages/sdk/tests/docker-compose.yml @@ -229,6 +229,7 @@ services: condition: service_started environment: START_BLOCK: $BELLECOUR_FORK_BLOCK + NETWORK_NAME: bellecour GRAPHNODE_URL: http://graphnode:8020 IPFS_URL: http://ipfs:5001 ENV: prod diff --git a/packages/sdk/tests/e2e/dataProtectorCore/processProtectedData.test.ts b/packages/sdk/tests/e2e/dataProtectorCore/processProtectedData.test.ts index 34282fa12..d9c5f6b0a 100644 --- a/packages/sdk/tests/e2e/dataProtectorCore/processProtectedData.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorCore/processProtectedData.test.ts @@ -102,6 +102,7 @@ describe.skip('dataProtectorCore.processProtectedData()', () => { iexec, protectedData: protectedData.address, app: appAddress, + defaultWorkerpool: workerpoolAddress, workerpool: workerpoolAddress, secrets: { 1: 'ProcessProtectedData test subject', diff --git a/packages/sdk/tests/e2e/dataProtectorCore/protectData.test.ts b/packages/sdk/tests/e2e/dataProtectorCore/protectData.test.ts index 34d7925ca..8473ae76f 100644 --- a/packages/sdk/tests/e2e/dataProtectorCore/protectData.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorCore/protectData.test.ts @@ -4,6 +4,7 @@ import { beforeEach, describe, expect, it } from '@jest/globals'; import { HDNodeWallet, Wallet } from 'ethers'; import { IExec } from 'iexec'; import { SmsCallError } from 'iexec/errors'; +import { DEFAULT_ARWEAVE_GATEWAY } from '../../../src/config/config.js'; import { IExecDataProtectorCore, WorkflowError } from '../../../src/index.js'; import { MAX_EXPECTED_BLOCKTIME, @@ -13,6 +14,10 @@ import { getTestRpcProvider, getTestWeb3SignerProvider, } from '../../test-utils.js'; +import { + getArweaveUploadStubServer, + ArweaveUploadStubServer, +} from '../../utils/arweaveUploadApi.js'; describe('dataProtectorCore.protectData()', () => { let dataProtectorCore: IExecDataProtectorCore; @@ -89,6 +94,8 @@ describe('dataProtectorCore.protectData()', () => { expect(typeof result.transactionHash).toBe('string'); expect(result.zipFile).toBeInstanceOf(Uint8Array); expect(typeof result.encryptionKey).toBe('string'); + expect(typeof result.multiaddr).toBe('string'); + expect(result.multiaddr.startsWith('/p2p/')).toBe(true); const ethProvider = getTestRpcProvider(); const iexecOptions = getTestIExecOption(); @@ -218,4 +225,106 @@ describe('dataProtectorCore.protectData()', () => { 2 * MAX_EXPECTED_BLOCKTIME + MAX_EXPECTED_WEB2_SERVICES_TIME ); }); + + // TODO use a local service for Arweave upload API + describe('when `uploadMode: "arweave"`', () => { + let arweaveUploadServerStub: ArweaveUploadStubServer; + beforeAll(async () => { + arweaveUploadServerStub = await getArweaveUploadStubServer(); + }); + afterAll(async () => { + await arweaveUploadServerStub.stop(); + }); + it( + 'creates the protected data', + async () => { + // load some binary data + const pngImage = await fsPromises.readFile( + path.join(process.cwd(), 'tests', '_test_inputs_', 'image.png') + ); + const data = { + numberZero: 0, + numberOne: 1, + numberMinusOne: -1, + numberPointOne: 0.1, + bigintTen: BigInt(10), + booleanTrue: true, + booleanFalse: false, + string: 'hello world!', + nested: { + object: { + with: { + binary: { + data: { + pngImage, + }, + }, + }, + }, + }, + }; + + const DATA_NAME = 'test do not use'; + + const expectedSchema = { + numberZero: 'f64', + numberOne: 'f64', + numberMinusOne: 'f64', + numberPointOne: 'f64', + bigintTen: 'i128', + booleanTrue: 'bool', + booleanFalse: 'bool', + string: 'string', + nested: { + object: { + with: { + binary: { + data: { + pngImage: 'image/png', + }, + }, + }, + }, + }, + }; + + // override protected property to use stub server + dataProtectorCore[ + // eslint-disable-next-line @typescript-eslint/dot-notation + 'arweaveUploadApi' + ] = arweaveUploadServerStub.url; + + const result = await dataProtectorCore.protectData({ + data, + uploadMode: 'arweave', + name: DATA_NAME, + }); + expect(result.name).toBe(DATA_NAME); + expect(typeof result.address).toBe('string'); + expect(result.owner).toBe(wallet.address); + expect(result.schema).toStrictEqual(expectedSchema); + expect(typeof result.creationTimestamp).toBe('number'); + expect(typeof result.transactionHash).toBe('string'); + expect(result.zipFile).toBeInstanceOf(Uint8Array); + expect(typeof result.encryptionKey).toBe('string'); + expect(typeof result.multiaddr).toBe('string'); + expect(result.multiaddr.startsWith(DEFAULT_ARWEAVE_GATEWAY)).toBe(true); + + const ethProvider = getTestRpcProvider(); + const iexecOptions = getTestIExecOption(); + const iexecProd = new IExec({ ethProvider }, iexecOptions); + const iexecDebug = new IExec( + { ethProvider }, + { ...iexecOptions, smsURL: iexecOptions.smsDebugURL } + ); + const prodSecretPushed = + await iexecProd.dataset.checkDatasetSecretExists(result.address); + const debugSecretPushed = + await iexecDebug.dataset.checkDatasetSecretExists(result.address); + expect(prodSecretPushed).toBe(true); + expect(debugSecretPushed).toBe(false); + }, + 2 * MAX_EXPECTED_BLOCKTIME + MAX_EXPECTED_WEB2_SERVICES_TIME + ); + }); }); diff --git a/packages/sdk/tests/e2e/dataProtectorSharing/addAppToAppWhitelist.test.ts b/packages/sdk/tests/e2e/dataProtectorSharing/addAppToAppWhitelist.test.ts index b71c23bd5..4ef82c6e8 100644 --- a/packages/sdk/tests/e2e/dataProtectorSharing/addAppToAppWhitelist.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorSharing/addAppToAppWhitelist.test.ts @@ -1,7 +1,7 @@ import { HDNodeWallet, Wallet } from 'ethers'; import { Address, IExec } from 'iexec'; import { ValidationError } from 'yup'; -import { DEFAULT_SHARING_CONTRACT_ADDRESS } from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; import { IExecDataProtector } from '../../../src/index.js'; import { getTestConfig, @@ -36,7 +36,10 @@ describe('dataProtector.addAppToAddOnlyAppWhitelist()', () => { const createAppWhitelistResponse = await dataProtector.sharing.createAddOnlyAppWhitelist(); appWhitelistAddress = createAppWhitelistResponse.addOnlyAppWhitelist; - appAddress = await createAppFor(wallet, DEFAULT_SHARING_CONTRACT_ADDRESS); + appAddress = await createAppFor( + wallet, + CHAIN_CONFIG['134'].sharingContractAddress + ); }, timeouts.createAddOnlyAppWhitelist + timeouts.createAppInPocoRegistry); describe('When the given addOnlyAppWhitelist is not valid', () => { diff --git a/packages/sdk/tests/e2e/dataProtectorSharing/addToCollection.test.ts b/packages/sdk/tests/e2e/dataProtectorSharing/addToCollection.test.ts index e566c5882..65bdc5de8 100644 --- a/packages/sdk/tests/e2e/dataProtectorSharing/addToCollection.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorSharing/addToCollection.test.ts @@ -1,7 +1,7 @@ import { beforeAll, describe, expect, it, jest } from '@jest/globals'; import { type HDNodeWallet, Wallet } from 'ethers'; import { IExec } from 'iexec'; -import { DEFAULT_SHARING_CONTRACT_ADDRESS } from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; import { IExecDataProtector } from '../../../src/index.js'; import { approveProtectedDataForCollectionContract } from '../../../src/lib/dataProtectorSharing/smartContract/approveProtectedDataForCollectionContract.js'; import { getTestConfig, timeouts } from '../../test-utils.js'; @@ -76,7 +76,7 @@ describe('dataProtector.addToCollection()', () => { await approveProtectedDataForCollectionContract({ iexec, protectedData, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, }); // --- WHEN diff --git a/packages/sdk/tests/e2e/dataProtectorSharing/buyProtectedData.test.ts b/packages/sdk/tests/e2e/dataProtectorSharing/buyProtectedData.test.ts index 37205f599..3ab88150a 100644 --- a/packages/sdk/tests/e2e/dataProtectorSharing/buyProtectedData.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorSharing/buyProtectedData.test.ts @@ -1,7 +1,7 @@ import { beforeAll, describe, expect, it } from '@jest/globals'; import { Wallet, type HDNodeWallet } from 'ethers'; import { ValidationError } from 'yup'; -import { DEFAULT_SHARING_CONTRACT_ADDRESS } from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; import { IExecDataProtector } from '../../../src/index.js'; import { approveAccount, @@ -104,7 +104,7 @@ describe('dataProtector.buyProtectedData()', () => { await depositNRlcForAccount(buyer.address, price); await approveAccount( buyer.privateKey, - DEFAULT_SHARING_CONTRACT_ADDRESS, + CHAIN_CONFIG['134'].sharingContractAddress, price ); diff --git a/packages/sdk/tests/e2e/dataProtectorSharing/consumeProtectedData.test.ts b/packages/sdk/tests/e2e/dataProtectorSharing/consumeProtectedData.test.ts deleted file mode 100644 index 37aef1689..000000000 --- a/packages/sdk/tests/e2e/dataProtectorSharing/consumeProtectedData.test.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { beforeAll, describe, expect, it, jest } from '@jest/globals'; -import { Wallet } from 'ethers'; -import { utils } from 'iexec'; -import { IExecDataProtector } from '../../../src/index.js'; -import { timeouts } from '../../test-utils.js'; - -const WORKERPOOL_ADDRESS = 'prod-stagingv8.main.pools.iexec.eth'; - -// this test can't run in drone ci need VPN because is based on iexec protocol, unskip it when desired -describe.skip('dataProtector.consumeProtectedData()', () => { - let dataProtectorCreator: IExecDataProtector; - let dataProtectorConsumer: IExecDataProtector; - const DEFAULT_PROTECTED_DATA_DELIVERY_APP = - '0x85795d8Eb2B5D39A6E8dfB7890924191B3D1Ccf6'; - let addOnlyAppWhitelist: string; - - beforeAll(async () => { - const walletCreator = Wallet.createRandom(); - const walletConsumer = Wallet.createRandom(); - - // iexecOptions for staging - const iexecOptions = { - smsURL: 'https://sms.scone-prod.stagingv8.iex.ec', - ipfsGatewayURL: 'https://ipfs-gateway.stagingv8.iex.ec', - iexecGatewayURL: 'https://api.market.stagingv8.iex.ec', - resultProxyURL: 'https://result.stagingv8.iex.ec', - }; - - const dataProtectorOptions = { - iexecOptions: iexecOptions, - ipfsGateway: 'https://ipfs-gateway.stagingv8.iex.ec', - ipfsNode: 'https://ipfs-upload.stagingv8.iex.ec', - subgraphUrl: - 'https://thegraph-product.iex.ec/subgraphs/name/bellecour/dev-dataprotector-v2', - }; - - const provider1 = utils.getSignerFromPrivateKey( - 'https://bellecour.iex.ec', - walletCreator.privateKey - ); - const provider2 = utils.getSignerFromPrivateKey( - 'https://bellecour.iex.ec', - walletConsumer.privateKey - ); - - dataProtectorCreator = new IExecDataProtector( - provider1, - dataProtectorOptions - ); - dataProtectorConsumer = new IExecDataProtector( - provider2, - dataProtectorOptions - ); - - const addOnlyAppWhitelistResponse = - await dataProtectorCreator.sharing.createAddOnlyAppWhitelist(); - addOnlyAppWhitelist = addOnlyAppWhitelistResponse.addOnlyAppWhitelist; - }); - - describe('When calling consumeProtectedData() with valid inputs', () => { - it( - 'should work', - async () => { - // --- GIVEN - const { address: protectedData } = - await dataProtectorCreator.core.protectData({ - data: { file: 'test' }, - name: 'consumeProtectedDataTest', - }); - const { collectionId } = - await dataProtectorCreator.sharing.createCollection(); - - await dataProtectorCreator.sharing.addToCollection({ - collectionId, - addOnlyAppWhitelist, - protectedData, - }); - - await dataProtectorCreator.sharing.setProtectedDataToSubscription({ - protectedData, - }); - - const subscriptionParams = { price: 0, duration: 86400 }; - await dataProtectorCreator.sharing.setSubscriptionParams({ - collectionId, - ...subscriptionParams, - }); - - await dataProtectorConsumer.sharing.subscribeToCollection({ - collectionId, - ...subscriptionParams, - }); - - // --- WHEN - const onStatusUpdateMock = jest.fn(); - const result = await dataProtectorConsumer.sharing.consumeProtectedData( - { - app: DEFAULT_PROTECTED_DATA_DELIVERY_APP, - protectedData, - workerpool: WORKERPOOL_ADDRESS, - onStatusUpdate: onStatusUpdateMock, - } - ); - - // --- THEN - expect(onStatusUpdateMock).toHaveBeenCalledWith({ - title: 'CONSUME_RESULT_COMPLETE', - isDone: true, - }); - console.log(result); - }, - timeouts.protectData + - timeouts.createCollection + - timeouts.addToCollection + - timeouts.setProtectedDataToSubscription + - timeouts.setSubscriptionParams + - timeouts.subscribe + - timeouts.consumeProtectedData - ); - }); - - describe('When calling consumeProtectedData() with invalid rentals or subscriptions', () => { - it( - 'should work', - async () => { - // --- GIVEN - const { address: protectedData } = - await dataProtectorCreator.core.protectData({ - data: { doNotUse: 'test' }, - name: 'test addToCollection', - }); - const { collectionId } = - await dataProtectorCreator.sharing.createCollection(); - - await dataProtectorCreator.sharing.addToCollection({ - collectionId, - protectedData, - addOnlyAppWhitelist, - }); - - // --- WHEN --- THEN - await expect( - dataProtectorConsumer.sharing.consumeProtectedData({ - protectedData, - app: '0x82e41e1b594ccf69b0cfda25637eddc4e6d4e0fc', - }) - ).rejects.toThrow( - new Error( - "You are not allowed to consume this protected data. You need to rent it first, or to subscribe to the user's collection." - ) - ); - }, - timeouts.protectData + - timeouts.createCollection + - timeouts.addToCollection + - timeouts.consumeProtectedData - ); - }); -}); diff --git a/packages/sdk/tests/e2e/dataProtectorSharing/rentProtectedData.test.ts b/packages/sdk/tests/e2e/dataProtectorSharing/rentProtectedData.test.ts index 7a7d87fbb..5f11c6ca2 100644 --- a/packages/sdk/tests/e2e/dataProtectorSharing/rentProtectedData.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorSharing/rentProtectedData.test.ts @@ -1,6 +1,6 @@ import { beforeAll, describe, expect, it } from '@jest/globals'; import { HDNodeWallet, Wallet } from 'ethers'; -import { DEFAULT_SHARING_CONTRACT_ADDRESS } from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; import { IExecDataProtector } from '../../../src/index.js'; import { approveAccount, @@ -154,7 +154,7 @@ describe('dataProtector.rentProtectedData()', () => { ); await approveAccount( walletEndUser.privateKey, - DEFAULT_SHARING_CONTRACT_ADDRESS, + CHAIN_CONFIG['134'].sharingContractAddress, rentingParams.price ); diff --git a/packages/sdk/tests/e2e/dataProtectorSharing/subscribeToCollection.test.ts b/packages/sdk/tests/e2e/dataProtectorSharing/subscribeToCollection.test.ts index 01599a347..bc4bfaee0 100644 --- a/packages/sdk/tests/e2e/dataProtectorSharing/subscribeToCollection.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorSharing/subscribeToCollection.test.ts @@ -1,6 +1,6 @@ import { beforeAll, describe, expect, it } from '@jest/globals'; import { HDNodeWallet, Wallet } from 'ethers'; -import { DEFAULT_SHARING_CONTRACT_ADDRESS } from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; import { IExecDataProtector } from '../../../src/index.js'; import { approveAccount, @@ -107,7 +107,7 @@ describe('dataProtector.subscribeToCollection()', () => { ); await approveAccount( walletEndUser.privateKey, - DEFAULT_SHARING_CONTRACT_ADDRESS, + CHAIN_CONFIG['134'].sharingContractAddress, subscriptionParams.price ); diff --git a/packages/sdk/tests/test-utils.ts b/packages/sdk/tests/test-utils.ts index 8df253615..7988a6bc7 100644 --- a/packages/sdk/tests/test-utils.ts +++ b/packages/sdk/tests/test-utils.ts @@ -17,7 +17,7 @@ const TEST_CHAIN = { smsDebugURL: DRONE ? 'http://sms-debug:13300' : 'http://127.0.0.1:13301', resultProxyURL: DRONE ? 'http://result-proxy:13200' - : 'http://127.0.0.1:13200', + : 'http://127.0.0.1:13200', // TODO remove iexecGatewayURL: DRONE ? 'http://market-api:3000' : 'http://127.0.0.1:3000', provider: new JsonRpcProvider( DRONE ? 'http://bellecour-fork:8545' : 'http://localhost:8545' @@ -49,8 +49,8 @@ export const getTestConfig = ( : 'http://127.0.0.1:8080', ipfsNode: process.env.DRONE ? 'http://ipfs:5001' : 'http://127.0.0.1:5001', subgraphUrl: process.env.DRONE - ? 'http://graphnode:8000/subgraphs/name/DataProtector-v2' - : 'http://127.0.0.1:8000/subgraphs/name/DataProtector-v2', + ? 'http://graphnode:8000/subgraphs/name/bellecour/DataProtector-v2' + : 'http://127.0.0.1:8000/subgraphs/name/bellecour/DataProtector-v2', }; return [ethProvider, options]; }; @@ -211,6 +211,32 @@ export const mockWorkerpoolOrderbook = { count: 1, }; +export const mockAppOrderbook = { + orders: [ + { + order: { + app: '0xc8c5E295D2BedA01D1fB8DD4d85A1Cb769185a34', + appprice: 0, + volume: 10000000, + tag: '0x0000000000000000000000000000000000000000000000000000000000000003', + datasetrestrict: '0x0000000000000000000000000000000000000000', + workerpoolrestrict: '0x0000000000000000000000000000000000000000', + requesterrestrict: '0x0000000000000000000000000000000000000000', + salt: '0x82107d3b5694d3ab4cd4e5f2057e1bdeb7da359518ccfb15638405c619fa12b0', + sign: '0x0112d6f1b53777a001054daf62f542a5f94679f88885515a2126a6794505d6993e425c3a432b4c2cdbf004f6f0c8c9908493135dedb829f6c958e67daa068dd61c', + }, + orderHash: + '0x64208bc3580bbee092c4a4efb26629cf885a2f1e99b6b4d9bd809ea85b58332f', + chainId: 134, + publicationTimestamp: '2025-02-05T14:35:51.271Z', + signer: '0x9cfFa14604A6836E9d6fBAcCc624cfE0bE3Be5B4', + status: 'open', + remaining: 9999961, + }, + ], + count: 1, +}; + export function observableMockComplete() { const mockObservable: any = { subscribe: jest.fn(({ complete }) => { diff --git a/packages/sdk/tests/unit/constructor.test.ts b/packages/sdk/tests/unit/constructor.test.ts index bf6930bc1..36e3a5cd6 100644 --- a/packages/sdk/tests/unit/constructor.test.ts +++ b/packages/sdk/tests/unit/constructor.test.ts @@ -2,12 +2,7 @@ // needed to access and assert IExecDataProtector's private properties import { describe, it, expect } from '@jest/globals'; import { Wallet } from 'ethers'; -import { - DEFAULT_CONTRACT_ADDRESS, - DEFAULT_IEXEC_IPFS_NODE, - DEFAULT_IPFS_GATEWAY, - DEFAULT_SUBGRAPH_URL, -} from '../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../src/config/config.js'; import { IExecDataProtector, getWeb3Provider } from '../../src/index.js'; describe('IExecDataProtector()', () => { @@ -15,8 +10,9 @@ describe('IExecDataProtector()', () => { const dataProtector = new IExecDataProtector( getWeb3Provider(Wallet.createRandom().privateKey) ); + await dataProtector['init'](); const ipfsNode = dataProtector['ipfsNode']; - expect(ipfsNode).toStrictEqual(DEFAULT_IEXEC_IPFS_NODE); + expect(ipfsNode).toStrictEqual(CHAIN_CONFIG['134'].ipfsNode); }); it('should use provided ipfs node url when ipfsNode is provided', async () => { @@ -27,6 +23,7 @@ describe('IExecDataProtector()', () => { ipfsNode: customIpfsNode, } ); + await dataProtector['init'](); const ipfsNode = dataProtector['ipfsNode']; expect(ipfsNode).toStrictEqual(customIpfsNode); }); @@ -35,8 +32,9 @@ describe('IExecDataProtector()', () => { const dataProtector = new IExecDataProtector( getWeb3Provider(Wallet.createRandom().privateKey) ); + await dataProtector['init'](); const ipfsGateway = dataProtector['ipfsGateway']; - expect(ipfsGateway).toStrictEqual(DEFAULT_IPFS_GATEWAY); + expect(ipfsGateway).toStrictEqual(CHAIN_CONFIG['134'].ipfsGateway); }); it('should use default ipfs gateway url when ipfsGateway is provided', async () => { @@ -47,6 +45,7 @@ describe('IExecDataProtector()', () => { ipfsGateway: customIpfsGateway, } ); + await dataProtector['init'](); const ipfsGateway = dataProtector['ipfsGateway']; expect(ipfsGateway).toStrictEqual(customIpfsGateway); }); @@ -55,10 +54,11 @@ describe('IExecDataProtector()', () => { const dataProtector = new IExecDataProtector( getWeb3Provider(Wallet.createRandom().privateKey) ); + await dataProtector['init'](); const dataprotectorContractAddress = dataProtector['dataprotectorContractAddress']; expect(dataprotectorContractAddress).toStrictEqual( - DEFAULT_CONTRACT_ADDRESS + CHAIN_CONFIG['134'].dataprotectorContractAddress ); }); @@ -70,6 +70,7 @@ describe('IExecDataProtector()', () => { dataprotectorContractAddress: customSContractAddress, } ); + await dataProtector['init'](); const dataprotectorContractAddress = dataProtector['dataprotectorContractAddress']; expect(dataprotectorContractAddress).toStrictEqual( @@ -81,8 +82,9 @@ describe('IExecDataProtector()', () => { const dataProtector = new IExecDataProtector( getWeb3Provider(Wallet.createRandom().privateKey) ); + await dataProtector['init'](); const graphQLClientUrl = dataProtector['graphQLClient']; - expect(graphQLClientUrl['url']).toBe(DEFAULT_SUBGRAPH_URL); + expect(graphQLClientUrl['url']).toBe(CHAIN_CONFIG['134'].subgraphUrl); }); it('should use provided subgraph URL when subgraphUrl is provided', async () => { @@ -93,6 +95,7 @@ describe('IExecDataProtector()', () => { subgraphUrl: customSubgraphUrl, } ); + await dataProtector['init'](); const graphQLClient = dataProtector['graphQLClient']; expect(graphQLClient['url']).toBe(customSubgraphUrl); }); @@ -104,6 +107,7 @@ describe('IExecDataProtector()', () => { const customIpfsNode = 'https://example.com/node'; const smsURL = 'https://custom-sms-url.com'; const iexecGatewayURL = 'https://custom-market-api-url.com'; + const dataProtector = new IExecDataProtector( getWeb3Provider(Wallet.createRandom().privateKey), { @@ -117,6 +121,8 @@ describe('IExecDataProtector()', () => { }, } ); + await dataProtector['init'](); + const graphQLClient = dataProtector['graphQLClient']; const ipfsNode = dataProtector['ipfsNode']; const ipfsGateway = dataProtector['ipfsGateway']; @@ -134,12 +140,11 @@ describe('IExecDataProtector()', () => { expect(await iexec.config.resolveIexecGatewayURL()).toBe(iexecGatewayURL); }, 20_000); - it('throw when instantiated with an invalid ethProvider', async () => { + it('throws when calling init() with an invalid ethProvider', async () => { const invalidProvider: any = {}; - expect(() => new IExecDataProtector(invalidProvider)).toThrow( - Error( - 'Unsupported ethProvider, Invalid ethProvider: Unsupported provider' - ) + const dataProtector = new IExecDataProtector(invalidProvider); + await expect(dataProtector['init']()).rejects.toThrow( + 'Unsupported ethProvider: Invalid ethProvider: Unsupported provider' ); }); @@ -148,6 +153,7 @@ describe('IExecDataProtector()', () => { const dataProtector = new IExecDataProtector( getWeb3Provider(wallet.privateKey) ); + await dataProtector['init'](); expect(dataProtector).toBeInstanceOf(IExecDataProtector); }); @@ -162,6 +168,7 @@ describe('IExecDataProtector()', () => { }, } ); + await dataProtector['init'](); const iexec = dataProtector['iexec']; expect(await iexec.config.resolveSmsURL()).toBe(smsURL); }); @@ -169,15 +176,11 @@ describe('IExecDataProtector()', () => { describe('When instantiating SDK without a signer', () => { describe('When calling a write method', () => { it('should throw the corresponding exception', async () => { - // --- GIVEN const dataProtector = new IExecDataProtector(); - - // ---- WHEN / THEN + await dataProtector['init'](); await expect( dataProtector.core.protectData({ - data: { - email: 'example@gmail.com', - }, + data: { email: 'example@gmail.com' }, }) ).rejects.toThrow( 'Unauthorized method. Please log in with your wallet, you must set a valid provider with a signer.' diff --git a/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts b/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts index 0097ce370..4272ea8a1 100644 --- a/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts +++ b/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts @@ -11,6 +11,7 @@ import { import { getRandomAddress, getRequiredFieldMessage, + mockAppOrderbook, mockWorkerpoolOrderbook, resolveWithNoOrder, } from '../../../test-utils.js'; @@ -40,7 +41,7 @@ jest.unstable_mockModule( jest.unstable_mockModule( '../../../../src/utils/processProtectedData.models.js', () => ({ - findWorkerpoolOrders: jest.fn( + filterWorkerpoolOrders: jest.fn( () => mockWorkerpoolOrderbook.orders[0].order ), checkUserVoucher: jest.fn(), @@ -71,6 +72,7 @@ describe('processProtectedData', () => { // @ts-expect-error No need for iexec here iexec: {}, protectedData: missingProtectedDataAddress, + app: '', }) // --- THEN ).rejects.toThrow( @@ -184,10 +186,10 @@ describe('processProtectedData', () => { }); }); - describe('When maxPrice is not a positive number', () => { + describe('When dataMaxPrice is not a positive number', () => { it('should throw a yup ValidationError with the correct message', async () => { // --- GIVEN - const invalidMaxPrice = -1; + const invalidDataMaxPrice = -1; await expect( // --- WHEN @@ -196,11 +198,55 @@ describe('processProtectedData', () => { iexec: {}, protectedData: getRandomAddress(), app: getRandomAddress(), - maxPrice: invalidMaxPrice, + dataMaxPrice: invalidDataMaxPrice, }) // --- THEN ).rejects.toThrow( - new ValidationError('maxPrice must be greater than or equal to 0') + new ValidationError('dataMaxPrice must be greater than or equal to 0') + ); + }); + }); + + describe('When workerpoolMaxPrice is not a positive number', () => { + it('should throw a yup ValidationError with the correct message', async () => { + // --- GIVEN + const invalidWorkerpoolMaxPrice = -1; + + await expect( + // --- WHEN + processProtectedData({ + // @ts-expect-error No need for iexec here + iexec: {}, + protectedData: getRandomAddress(), + app: getRandomAddress(), + workerpoolMaxPrice: invalidWorkerpoolMaxPrice, + }) + // --- THEN + ).rejects.toThrow( + new ValidationError( + 'workerpoolMaxPrice must be greater than or equal to 0' + ) + ); + }); + }); + + describe('When appMaxPrice is not a positive number', () => { + it('should throw a yup ValidationError with the correct message', async () => { + // --- GIVEN + const invalidAppMaxPrice = -1; + + await expect( + // --- WHEN + processProtectedData({ + // @ts-expect-error No need for iexec here + iexec: {}, + protectedData: getRandomAddress(), + app: getRandomAddress(), + appMaxPrice: invalidAppMaxPrice, + }) + // --- THEN + ).rejects.toThrow( + new ValidationError('appMaxPrice must be greater than or equal to 0') ); }); }); @@ -344,7 +390,9 @@ describe('processProtectedData', () => { fetchDatasetOrderbook: jest .fn<() => Promise<{ orders: []; count: number }>>() .mockResolvedValue(resolveWithNoOrder()), - fetchAppOrderbook: jest.fn(), + fetchAppOrderbook: jest + .fn<() => Promise>() + .mockResolvedValue(mockAppOrderbook), fetchWorkerpoolOrderbook: jest .fn<() => Promise>() .mockResolvedValue(mockWorkerpoolOrderbook), @@ -363,7 +411,7 @@ describe('processProtectedData', () => { ).rejects.toThrow( new WorkflowError({ message: processProtectedDataErrorMessage, - errorCause: Error('No dataset orders found'), + errorCause: Error('No Dataset order found for the desired price'), }) ); }); @@ -401,7 +449,7 @@ describe('processProtectedData', () => { ).rejects.toThrow( new WorkflowError({ message: processProtectedDataErrorMessage, - errorCause: Error('No app orders found'), + errorCause: Error('No App order found for the desired price'), }) ); }); @@ -425,16 +473,17 @@ describe('processProtectedData', () => { }); // --- THEN - expect(fetchWorkerpoolOrderbookMock).toHaveBeenCalledWith({ - workerpool: 'any', // <-- What we want to test - app: expect.any(String), - dataset: expect.any(String), - requester: expect.any(String), - category: 0, - minTag: SCONE_TAG, - maxTag: SCONE_TAG, - isRequesterStrict: expect.any(Boolean), - }); + expect(fetchWorkerpoolOrderbookMock).toHaveBeenCalledWith( + expect.objectContaining({ + workerpool: 'any', // <-- the core of what you're testing + dataset: expect.any(String), + requester: expect.any(String), + category: 0, + minTag: SCONE_TAG, + maxTag: SCONE_TAG, + isRequesterStrict: expect.any(Boolean), + }) + ); }); }); @@ -511,24 +560,29 @@ describe('processProtectedData', () => { }); // --- THEN - expect(fetchDatasetOrderbookMock).toHaveBeenCalledWith( - expect.any(String), - { - app: expect.any(String), - workerpool: expect.any(String), - requester: validWhitelistAddress.toLowerCase(), // <-- whitelist address instead of user wallet address - } + const calls = fetchDatasetOrderbookMock.mock.calls; + + expect(calls).toEqual( + expect.arrayContaining([ + [ + expect.any(String), + expect.objectContaining({ + app: expect.any(String), + requester: validWhitelistAddress.toLowerCase(), + }), + ], + ]) ); }); }); describe('When there is NO workerpool orders', () => { it('should throw a WorkflowError with the correct message', async () => { - const { findWorkerpoolOrders } = await import( + const { filterWorkerpoolOrders } = await import( '../../../../src/utils/processProtectedData.models.js' ); - (findWorkerpoolOrders as jest.Mock).mockReturnValue(null); + (filterWorkerpoolOrders as jest.Mock).mockReturnValue(null); // --- GIVEN const iexec = { wallet: { @@ -557,7 +611,7 @@ describe('processProtectedData', () => { ).rejects.toThrow( new WorkflowError({ message: processProtectedDataErrorMessage, - errorCause: Error('No Workerpool order found.'), + errorCause: Error('No Workerpool order found for the desired price'), }) ); }); diff --git a/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts b/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts index 9b3af2089..30b0251bc 100644 --- a/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts +++ b/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts @@ -3,11 +3,7 @@ import path from 'path'; import { beforeEach, describe, expect, it, jest } from '@jest/globals'; import { Wallet, HDNodeWallet, Contract } from 'ethers'; import { IExec, utils } from 'iexec'; -import { - DEFAULT_CONTRACT_ADDRESS, - DEFAULT_IEXEC_IPFS_NODE, - DEFAULT_IPFS_GATEWAY, -} from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; import { type ProtectData } from '../../../src/lib/dataProtectorCore/protectData.js'; import { ValidationError, WorkflowError } from '../../../src/utils/errors.js'; import { getRandomAddress } from '../../test-utils.js'; @@ -16,6 +12,10 @@ jest.unstable_mockModule('../../../src/services/ipfs.js', () => ({ add: jest.fn(), })); +jest.unstable_mockModule('../../../src/services/arweave.js', () => ({ + add: jest.fn(), +})); + jest.unstable_mockModule( '../../../src/lib/dataProtectorCore/smartContract/getDataProtectorCoreContract.js', () => ({ @@ -36,9 +36,9 @@ jest.unstable_mockModule('../../../src/utils/getEventFromLogs.js', () => ({ })); const protectDataDefaultArgs = { - contractAddress: DEFAULT_CONTRACT_ADDRESS, - ipfsNode: DEFAULT_IEXEC_IPFS_NODE, - ipfsGateway: DEFAULT_IPFS_GATEWAY, + contractAddress: CHAIN_CONFIG['134'].dataprotectorContractAddress, + ipfsNode: CHAIN_CONFIG['134'].ipfsNode, + ipfsGateway: CHAIN_CONFIG['134'].ipfsGateway, }; describe('protectData()', () => { @@ -69,6 +69,11 @@ describe('protectData()', () => { 'QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ' ); + const arweave: any = await import('../../../src/services/arweave.js'); + arweave.add.mockResolvedValue( + 'gxOFCHJVJ-L310Ml6vSlk1_RoE3E3IumsFBwDigR35E' + ); + const getContractModule: any = await import( '../../../src/lib/dataProtectorCore/smartContract/getDataProtectorCoreContract.js' ); @@ -149,6 +154,28 @@ describe('protectData()', () => { }); }); + describe('When uploadMode option is invalid', () => { + it('should throw a yup ValidationError with the correct message', async () => { + // --- GIVEN + const invalidUploadMode = 'foo'; + + await expect( + // --- WHEN + protectData({ + iexec, + iexecDebug, + // @ts-expect-error This is intended to actually test yup runtime validation + uploadMode: invalidUploadMode, + }) + // --- THEN + ).rejects.toThrow( + new ValidationError( + 'uploadMode must be one of the following values: ipfs, arweave' + ) + ); + }); + }); + // TODO That should be validated at IExec SDK instantiation describe('When given IPFS node URL is NOT a proper URL', () => { it('should throw a yup ValidationError with the correct message', async () => { @@ -671,5 +698,203 @@ describe('protectData()', () => { }); }); }); + + describe('when `uploadMode: "arweave"`', () => { + it('should go fine and create the protected data', async () => { + const pngImage = await fsPromises.readFile( + path.join(process.cwd(), 'tests', '_test_inputs_', 'image.png') + ); + const data = { + numberZero: 0, + numberOne: 1, + numberMinusOne: -1, + numberPointOne: 0.1, + bigintTen: BigInt(10), + booleanTrue: true, + booleanFalse: false, + string: 'hello world!', + nested: { + object: { + with: { + binary: { + data: { + pngImage, + }, + }, + }, + }, + }, + }; + const DATA_NAME = 'test do not use'; + const expectedSchema = { + numberZero: 'f64', + numberOne: 'f64', + numberMinusOne: 'f64', + numberPointOne: 'f64', + bigintTen: 'i128', + booleanTrue: 'bool', + booleanFalse: 'bool', + string: 'string', + nested: { + object: { + with: { + binary: { + data: { + pngImage: 'image/png', + }, + }, + }, + }, + }, + }; + const result = await protectData({ + iexec, + iexecDebug, + dataprotectorContractAddress: getRandomAddress(), + ...protectDataDefaultArgs, + data, + name: DATA_NAME, + uploadMode: 'arweave', + }); + + expect(result.name).toBe(DATA_NAME); + expect(result.address).toBe('mockedAddress'); + expect(result.owner).toBe(wallet.address); + expect(result.schema).toStrictEqual(expectedSchema); + expect(typeof result.creationTimestamp).toBe('number'); + expect(result.transactionHash).toBe('mockedTxHash'); + expect(result.zipFile).toBeInstanceOf(Uint8Array); + expect(typeof result.encryptionKey).toBe('string'); + + expect(iexec.dataset.pushDatasetSecret).toHaveBeenCalledTimes(1); + expect(iexecDebug.dataset.pushDatasetSecret).toHaveBeenCalledTimes(0); + }); + + it('should call the onStatusUpdate() callback function at each step', async () => { + // --- GIVEN + const onStatusUpdateMock = jest.fn(); + + // --- WHEN + await protectData({ + iexec, + iexecDebug, + dataprotectorContractAddress: getRandomAddress(), + data: { foo: 'bar' }, + uploadMode: 'arweave', + onStatusUpdate: onStatusUpdateMock, + }); + + // --- THEN + expect(onStatusUpdateMock).toHaveBeenCalledTimes(14); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(1, { + title: 'EXTRACT_DATA_SCHEMA', + isDone: false, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(2, { + title: 'EXTRACT_DATA_SCHEMA', + isDone: true, + }); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(3, { + title: 'CREATE_ZIP_FILE', + isDone: false, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(4, { + title: 'CREATE_ZIP_FILE', + isDone: true, + }); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(5, { + title: 'CREATE_ENCRYPTION_KEY', + isDone: false, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(6, { + title: 'CREATE_ENCRYPTION_KEY', + isDone: true, + payload: { + encryptionKey: expect.any(String), + }, + }); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(7, { + title: 'ENCRYPT_FILE', + isDone: false, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(8, { + title: 'ENCRYPT_FILE', + isDone: true, + }); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(9, { + title: 'UPLOAD_ENCRYPTED_FILE', + isDone: false, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(10, { + title: 'UPLOAD_ENCRYPTED_FILE', + isDone: true, + payload: { + arweaveId: expect.any(String), + }, + }); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(11, { + title: 'DEPLOY_PROTECTED_DATA', + isDone: false, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(12, { + title: 'DEPLOY_PROTECTED_DATA', + isDone: true, + payload: { + address: expect.any(String), + explorerUrl: expect.any(String), + owner: expect.any(String), + creationTimestamp: expect.any(String), + txHash: expect.any(String), + }, + }); + + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(13, { + title: 'PUSH_SECRET_TO_SMS', + isDone: false, + payload: { + teeFramework: expect.any(String), + }, + }); + expect(onStatusUpdateMock).toHaveBeenNthCalledWith(14, { + title: 'PUSH_SECRET_TO_SMS', + isDone: true, + payload: { + teeFramework: expect.any(String), + }, + }); + }); + + describe('When upload to Arweave fails', () => { + it('should throw a WorkflowError with the correct message', async () => { + // --- GIVEN + const arweave: any = await import('../../../src/services/arweave.js'); + arweave.add.mockRejectedValue(new Error('Boom Arweave')); + + await expect( + // --- WHEN + protectData({ + iexec, + iexecDebug, + dataprotectorContractAddress: getRandomAddress(), + ...protectDataDefaultArgs, + data: { foo: 'bar' }, + uploadMode: 'arweave', + }) + // --- THEN + ).rejects.toThrow( + new WorkflowError({ + message: 'Failed to upload encrypted data', + errorCause: Error('Boom Arweave'), + }) + ); + }); + }); + }); }); }); diff --git a/packages/sdk/tests/unit/dataProtectorSharing/consumeProtectedData.test.ts b/packages/sdk/tests/unit/dataProtectorSharing/consumeProtectedData.test.ts index 841251d3b..b9b4119cc 100644 --- a/packages/sdk/tests/unit/dataProtectorSharing/consumeProtectedData.test.ts +++ b/packages/sdk/tests/unit/dataProtectorSharing/consumeProtectedData.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from '@jest/globals'; import { ValidationError } from 'yup'; import { consumeProtectedData } from '../../../src/lib/dataProtectorSharing/consumeProtectedData.js'; import { getRandomAddress, getRequiredFieldMessage } from '../../test-utils.js'; -import { DEFAULT_SHARING_CONTRACT_ADDRESS } from '../../../src/config/config.js'; +import { CHAIN_CONFIG } from '../../../src/config/config.js'; describe('consumeProtectedData', () => { describe('Check validation for input parameters', () => { @@ -14,7 +14,7 @@ describe('consumeProtectedData', () => { consumeProtectedData({ // @ts-expect-error No need for iexec here iexec: {}, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, protectedData: missingProtectedData, app: getRandomAddress(), }) @@ -32,7 +32,7 @@ describe('consumeProtectedData', () => { consumeProtectedData({ // @ts-expect-error No need for iexec here iexec: {}, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, protectedData: invalidProtectedData, app: getRandomAddress(), }) @@ -52,7 +52,7 @@ describe('consumeProtectedData', () => { consumeProtectedData({ // @ts-expect-error No need for iexec here iexec: {}, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, protectedData: getRandomAddress(), app: missingAppAddress, }) @@ -68,7 +68,7 @@ describe('consumeProtectedData', () => { consumeProtectedData({ // @ts-expect-error No need for iexec here iexec: {}, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, protectedData: getRandomAddress(), app: invalidAppAddress, }) @@ -86,7 +86,7 @@ describe('consumeProtectedData', () => { consumeProtectedData({ // @ts-expect-error No need for iexec here iexec: {}, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, protectedData: getRandomAddress(), app: getRandomAddress(), maxPrice: invalidMaxPrice, @@ -105,7 +105,7 @@ describe('consumeProtectedData', () => { consumeProtectedData({ // @ts-expect-error No need for iexec here iexec: {}, - sharingContractAddress: DEFAULT_SHARING_CONTRACT_ADDRESS, + sharingContractAddress: CHAIN_CONFIG['134'].sharingContractAddress, protectedData: getRandomAddress(), app: getRandomAddress(), // @ts-expect-error Type 'number' is not assignable to type 'string' diff --git a/packages/sdk/tests/unit/services/arweave.test.ts b/packages/sdk/tests/unit/services/arweave.test.ts new file mode 100644 index 000000000..2abb94233 --- /dev/null +++ b/packages/sdk/tests/unit/services/arweave.test.ts @@ -0,0 +1,14 @@ +import { describe, it } from '@jest/globals'; +import { ARWEAVE_FREE_UPLOAD_MAX_SIZE } from '../../../src/config/config.js'; +import * as arweave from '../../../src/services/arweave.js'; + +describe('arweave.add()', () => { + describe('when content to upload is too large', () => { + it('throws an error', async () => { + const content = Buffer.alloc(ARWEAVE_FREE_UPLOAD_MAX_SIZE, 0); + await expect(arweave.add(content)).rejects.toThrow( + Error('Arweave upload 100kb size limit reached') + ); + }); + }); +}); diff --git a/packages/sdk/tests/unit/utils/getMultiaddrAsString.test.ts b/packages/sdk/tests/unit/utils/getMultiaddrAsString.test.ts index c545f8a23..24f01859c 100644 --- a/packages/sdk/tests/unit/utils/getMultiaddrAsString.test.ts +++ b/packages/sdk/tests/unit/utils/getMultiaddrAsString.test.ts @@ -48,4 +48,22 @@ describe('getMultiaddrAsString', () => { ); }); }); + + describe('When giving hex encoded URL', () => { + it('should return a human readable URL', () => { + // --- GIVEN + const multiaddrAsHexString = + '0x68747470733a2f2f617277656176652e6e65742f6431426e58434f667430654d387573576467643137327a4c616b7452546d6a6d547032526f582d4762314d'; + + // --- WHEN + const decodedMultiaddr = getMultiaddrAsString({ + multiaddrAsHexString, + }); + + // --- THEN + expect(decodedMultiaddr).toEqual( + 'https://arweave.net/d1BnXCOft0eM8usWdgd172zLaktRTmjmTp2RoX-Gb1M' + ); + }); + }); }); diff --git a/packages/sdk/tests/utils/arweaveUploadApi.ts b/packages/sdk/tests/utils/arweaveUploadApi.ts new file mode 100644 index 000000000..ab84ef940 --- /dev/null +++ b/packages/sdk/tests/utils/arweaveUploadApi.ts @@ -0,0 +1,43 @@ +import { AddressInfo } from 'net'; +import express from 'express'; + +// stub for https://github.com/iExecBlockchainComputing/iexec-arweave-api +const app = express(); +app.use('/upload', (req, res) => { + const fileId = 'd1BnXCOft0eM8usWdgd172zLaktRTmjmTp2RoX-Gb1M'; + res + .status(200) + .json({ arweaveId: fileId, url: `https://arweave.net/${fileId}` }); +}); + +export type ArweaveUploadStubServer = { + url: string; + stop: () => Promise; +}; + +export const getArweaveUploadStubServer: () => Promise = + async () => + new Promise((resolve, reject) => { + const server = app.listen((listenErr) => { + if (listenErr) { + reject(listenErr); + } else { + const addressInfo = server.address() as AddressInfo; + const url = `http://127.0.0.1:${addressInfo.port}`; + const stop = () => + new Promise((res, rej) => + server.close((closeErr) => { + if (closeErr) { + rej(closeErr); + } else { + res(); + } + }) + ); + resolve({ + url, + stop, + }); + } + }); + }); diff --git a/packages/sdk/tests/utils/mockAllForProcessProtectedData.ts b/packages/sdk/tests/utils/mockAllForProcessProtectedData.ts index 69416f7ba..3537f2802 100644 --- a/packages/sdk/tests/utils/mockAllForProcessProtectedData.ts +++ b/packages/sdk/tests/utils/mockAllForProcessProtectedData.ts @@ -77,5 +77,10 @@ export function mockAllForProcessProtectedData({ dealid: randomDealId, }), }, + network: { + getNetwork: jest + .fn<() => Promise>() + .mockResolvedValue({ chainId: 134 }), + }, }; } diff --git a/packages/sharing-smart-contract/.drone.yml b/packages/sharing-smart-contract/.drone.yml deleted file mode 100644 index d5d31a8c1..000000000 --- a/packages/sharing-smart-contract/.drone.yml +++ /dev/null @@ -1,126 +0,0 @@ -###################### SHARING SMART CONTRACT DRONE CI ###################### -kind: pipeline -type: docker -name: sharing-smart-contract-default - -trigger: - event: push - -steps: - - name: install-deps - image: node:18.19 - pull: always - commands: - - cd packages/sharing-smart-contract - - node -v - - npm -v - - npm ci - - - name: install-forge - image: node:18.19 - pull: always - commands: - - export XDG_CONFIG_HOME=/drone/src - - curl -L https://foundry.paradigm.xyz | bash - - export PATH="$PATH:/drone/src/.foundry/bin" - - foundryup - - cd packages/sharing-smart-contract - - forge install foundry-rs/forge-std --no-git - - - name: bellecour-fork - detach: true - image: ghcr.io/foundry-rs/foundry:latest - pull: always - expose: - - 8545 - commands: - - anvil --host 0.0.0.0 --port 8545 --hardfork berlin --fork-url https://bellecour.iex.ec --chain-id 134 --gas-limit 6700000 --gas-price 0 - - - name: bellecour-fork-healthy - image: bash - commands: - - while ! nc -z bellecour-fork 8545 ; do sleep 1 ; done && echo "bellecour-fork ready" - depends_on: - - bellecour-fork - - - name: compile - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - export PATH="$PATH:/drone/src/.foundry/bin" - - npm run compile - depends_on: - - install-forge - - install-deps - - - name: check format - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - npm run check-format - depends_on: - - install-deps - - - name: lint - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - npm run lint - depends_on: - - install-deps - - - name: uml-diagrams - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - npm run uml - depends_on: - - install-deps - - - name: static-analyzer - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - git clone https://github.com/Picodes/4naly3er.git - - cd 4naly3er - - git reset --hard HEAD~1 # FIX issue https://github.com/Picodes/4naly3er/issues/48 - - yarn install - - yarn analyze ../contracts - depends_on: - - lint - - - name: hardhat-tests - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - export PATH="$PATH:/drone/src/.foundry/bin" - - npm run test -- --network ci-bellecour-fork - depends_on: - - install-deps - - install-forge - - compile - - bellecour-fork-healthy - - - name: upgrade-test - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - export PATH="$PATH:/drone/src/.foundry/bin" - - npm run upgrade-local-fork -- --network ci-bellecour-fork - depends_on: - - install-deps - - install-forge - - compile - - bellecour-fork-healthy - - - name: forge-tests - image: node:18.19 - commands: - - cd packages/sharing-smart-contract - - export PATH="$PATH:/drone/src/.foundry/bin" - - forge test --no-match-test "invariant" -vvvv - depends_on: - - install-deps - - install-forge - - compile - - bellecour-fork-healthy diff --git a/packages/sharing-smart-contract/.env.template b/packages/sharing-smart-contract/.env.template index 42ba365aa..d28cf70d1 100644 --- a/packages/sharing-smart-contract/.env.template +++ b/packages/sharing-smart-contract/.env.template @@ -1,11 +1,19 @@ # wallet used for transactions -WALLET_PRIVATE_KEY=... +PRIVATE_KEY=... -# environment to use for configuration (prod/staging) -ENV=prod +# environment to use for configuration (prod/staging). The default is prod. +ENV=... # IExec PoCo contract address override (deploy script only) -# POCO_ADDRESS=0x... +POCO_ADDRESS=... # DatasetRegistry contract address override (deploy script only) -# DATASET_REGISTRY_ADDRESS=0x... \ No newline at end of file +DATASET_REGISTRY_ADDRESS=... + +## RPC URL for the network +RPC_URL= + +## Mnemonic for the network +MNEMONIC= + +ETHERSCAN_API_KEY= diff --git a/packages/sharing-smart-contract/.eslintignore b/packages/sharing-smart-contract/.eslintignore deleted file mode 100644 index c3d9dd030..000000000 --- a/packages/sharing-smart-contract/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -**/node_modules/ -**/coverage/ -**/build/ -**/typechain-types/ -**/tools/ \ No newline at end of file diff --git a/packages/sharing-smart-contract/.eslintrc.json b/packages/sharing-smart-contract/.eslintrc.json deleted file mode 100644 index 4f60aa689..000000000 --- a/packages/sharing-smart-contract/.eslintrc.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "plugins": ["import"], - "parserOptions": { - "ecmaVersion": "latest" - }, - "extends": ["airbnb-base", "prettier"], - "overrides": [ - { - "files": ["scripts/**/*.js", "test/**/*.js", "hardhat.config.cjs"], - "rules": { - "import/no-extraneous-dependencies": [ - "error", - { - "devDependencies": true - } - ], - "import/prefer-default-export": ["off", { "target": "any" }], - "import/extensions": ["error", "always"] - } - }, - { - "files": ["test/**/*.js"], - "globals": { - "describe": "readonly", - "it": "readonly" - }, - "rules": { "no-unused-expressions": "off", "no-shadow": "off" } - }, - { - "files": ["tools/**/*.js"], - "rules": { - "no-undef": "warn" - } - } - ] -} diff --git a/packages/sharing-smart-contract/.gitignore b/packages/sharing-smart-contract/.gitignore index e1be44fc9..203be60c5 100644 --- a/packages/sharing-smart-contract/.gitignore +++ b/packages/sharing-smart-contract/.gitignore @@ -1,6 +1,7 @@ # Hardhat files cache artifacts +!ignition/deployments/**/artifacts # TypeChain files typechain diff --git a/packages/sharing-smart-contract/.openzeppelin/unknown-421614.json b/packages/sharing-smart-contract/.openzeppelin/unknown-421614.json new file mode 100644 index 000000000..b1086adf7 --- /dev/null +++ b/packages/sharing-smart-contract/.openzeppelin/unknown-421614.json @@ -0,0 +1,643 @@ +{ + "manifestVersion": "3.2", + "proxies": [ + { + "address": "0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D", + "kind": "transparent" + }, + { + "address": "0x2485Ed90d4566516298B7D01462df8d1A41E13AE", + "kind": "transparent" + } + ], + "impls": { + "a8715b6ebae5c408bf687445be9061c544bc405b8b556bcfce0b94dc04009ebb": { + "address": "0x31FA12A2B8067e7aca306A507CC706ac80b2d20e", + "layout": { + "solcVersion": "0.8.24", + "storage": [ + { + "label": "_implementationAddress", + "offset": 0, + "slot": "0", + "type": "t_contract(AddOnlyAppWhitelist)12038", + "contract": "AddOnlyAppWhitelistRegistry", + "src": "contracts/registry/AddOnlyAppWhitelistRegistry.sol:33" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_address)": { + "label": "mapping(uint256 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ERC721Storage)249_storage": { + "label": "struct ERC721Upgradeable.ERC721Storage", + "members": [ + { + "label": "_name", + "type": "t_string_storage", + "offset": 0, + "slot": "0" + }, + { + "label": "_symbol", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "_owners", + "type": "t_mapping(t_uint256,t_address)", + "offset": 0, + "slot": "2" + }, + { + "label": "_balances", + "type": "t_mapping(t_address,t_uint256)", + "offset": 0, + "slot": "3" + }, + { + "label": "_tokenApprovals", + "type": "t_mapping(t_uint256,t_address)", + "offset": 0, + "slot": "4" + }, + { + "label": "_operatorApprovals", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(InitializableStorage)145_storage": { + "label": "struct Initializable.InitializableStorage", + "members": [ + { + "label": "_initialized", + "type": "t_uint64", + "offset": 0, + "slot": "0" + }, + { + "label": "_initializing", + "type": "t_bool", + "offset": 8, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_contract(AddOnlyAppWhitelist)12038": { + "label": "contract AddOnlyAppWhitelist", + "numberOfBytes": "20" + } + }, + "namespaces": { + "erc7201:openzeppelin.storage.ERC721": [ + { + "contract": "ERC721Upgradeable", + "label": "_name", + "type": "t_string_storage", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:27", + "offset": 0, + "slot": "0" + }, + { + "contract": "ERC721Upgradeable", + "label": "_symbol", + "type": "t_string_storage", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:30", + "offset": 0, + "slot": "1" + }, + { + "contract": "ERC721Upgradeable", + "label": "_owners", + "type": "t_mapping(t_uint256,t_address)", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:32", + "offset": 0, + "slot": "2" + }, + { + "contract": "ERC721Upgradeable", + "label": "_balances", + "type": "t_mapping(t_address,t_uint256)", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:34", + "offset": 0, + "slot": "3" + }, + { + "contract": "ERC721Upgradeable", + "label": "_tokenApprovals", + "type": "t_mapping(t_uint256,t_address)", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:36", + "offset": 0, + "slot": "4" + }, + { + "contract": "ERC721Upgradeable", + "label": "_operatorApprovals", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:38", + "offset": 0, + "slot": "5" + } + ], + "erc7201:openzeppelin.storage.Initializable": [ + { + "contract": "Initializable", + "label": "_initialized", + "type": "t_uint64", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69", + "offset": 0, + "slot": "0" + }, + { + "contract": "Initializable", + "label": "_initializing", + "type": "t_bool", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73", + "offset": 8, + "slot": "0" + } + ] + } + } + }, + "79c23ed7636921573eb8c93e5c1add5695ee9342b5060e87cbf2b4b9356dd8be": { + "address": "0x2FBDcc656607389B9D87966F10aFC6Fd94130cAb", + "layout": { + "solcVersion": "0.8.24", + "storage": [ + { + "label": "_iexecResultStorageProvider", + "offset": 0, + "slot": "0", + "type": "t_string_storage", + "contract": "ManageOrders", + "src": "contracts/ManageOrders.sol:40" + }, + { + "label": "_iexecResultStorageProxy", + "offset": 0, + "slot": "1", + "type": "t_string_storage", + "contract": "ManageOrders", + "src": "contracts/ManageOrders.sol:43" + }, + { + "label": "_salt", + "offset": 0, + "slot": "2", + "type": "t_uint256", + "contract": "ManageOrders", + "src": "contracts/ManageOrders.sol:44" + }, + { + "label": "_nextCollectionTokenId", + "offset": 0, + "slot": "3", + "type": "t_uint256", + "contract": "DataProtectorSharing", + "src": "contracts/DataProtectorSharing.sol:46" + }, + { + "label": "earning", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_address,t_uint256)", + "contract": "DataProtectorSharing", + "src": "contracts/DataProtectorSharing.sol:49" + }, + { + "label": "protectedDataDetails", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_struct(ProtectedDataDetails)11295_storage)", + "contract": "DataProtectorSharing", + "src": "contracts/DataProtectorSharing.sol:51" + }, + { + "label": "collectionDetails", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_uint256,t_struct(CollectionDetails)11274_storage)", + "contract": "DataProtectorSharing", + "src": "contracts/DataProtectorSharing.sol:53" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_bool))": { + "label": "mapping(address => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint256)": { + "label": "mapping(address => uint256)", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(RoleData)24_storage)": { + "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_address)": { + "label": "mapping(uint256 => address)", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(AccessControlStorage)34_storage": { + "label": "struct AccessControlUpgradeable.AccessControlStorage", + "members": [ + { + "label": "_roles", + "type": "t_mapping(t_bytes32,t_struct(RoleData)24_storage)", + "offset": 0, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(ERC721Storage)249_storage": { + "label": "struct ERC721Upgradeable.ERC721Storage", + "members": [ + { + "label": "_name", + "type": "t_string_storage", + "offset": 0, + "slot": "0" + }, + { + "label": "_symbol", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "_owners", + "type": "t_mapping(t_uint256,t_address)", + "offset": 0, + "slot": "2" + }, + { + "label": "_balances", + "type": "t_mapping(t_address,t_uint256)", + "offset": 0, + "slot": "3" + }, + { + "label": "_tokenApprovals", + "type": "t_mapping(t_uint256,t_address)", + "offset": 0, + "slot": "4" + }, + { + "label": "_operatorApprovals", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_struct(InitializableStorage)145_storage": { + "label": "struct Initializable.InitializableStorage", + "members": [ + { + "label": "_initialized", + "type": "t_uint64", + "offset": 0, + "slot": "0" + }, + { + "label": "_initializing", + "type": "t_bool", + "offset": 8, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(RoleData)24_storage": { + "label": "struct AccessControlUpgradeable.RoleData", + "members": [ + { + "label": "hasRole", + "type": "t_mapping(t_address,t_bool)", + "offset": 0, + "slot": "0" + }, + { + "label": "adminRole", + "type": "t_bytes32", + "offset": 0, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint64": { + "label": "uint64", + "numberOfBytes": "8" + }, + "t_contract(IAddOnlyAppWhitelist)11098": { + "label": "contract IAddOnlyAppWhitelist", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_struct(ProtectedDataDetails)11295_storage)": { + "label": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_uint48)": { + "label": "mapping(address => uint48)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(CollectionDetails)11274_storage)": { + "label": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails)", + "numberOfBytes": "32" + }, + "t_struct(CollectionDetails)11274_storage": { + "label": "struct IDataProtectorSharing.CollectionDetails", + "members": [ + { + "label": "size", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "lastSubscriptionExpiration", + "type": "t_uint48", + "offset": 0, + "slot": "1" + }, + { + "label": "subscriptionParams", + "type": "t_struct(SubscriptionParams)11831_storage", + "offset": 0, + "slot": "2" + }, + { + "label": "subscribers", + "type": "t_mapping(t_address,t_uint48)", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_struct(ProtectedDataDetails)11295_storage": { + "label": "struct IDataProtectorSharing.ProtectedDataDetails", + "members": [ + { + "label": "collection", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "addOnlyAppWhitelist", + "type": "t_contract(IAddOnlyAppWhitelist)11098", + "offset": 0, + "slot": "1" + }, + { + "label": "lastRentalExpiration", + "type": "t_uint48", + "offset": 20, + "slot": "1" + }, + { + "label": "inSubscription", + "type": "t_bool", + "offset": 26, + "slot": "1" + }, + { + "label": "rentingParams", + "type": "t_struct(RentingParams)11666_storage", + "offset": 0, + "slot": "2" + }, + { + "label": "renters", + "type": "t_mapping(t_address,t_uint48)", + "offset": 0, + "slot": "3" + }, + { + "label": "sellingParams", + "type": "t_struct(SellingParams)11746_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(RentingParams)11666_storage": { + "label": "struct IRental.RentingParams", + "members": [ + { + "label": "price", + "type": "t_uint72", + "offset": 0, + "slot": "0" + }, + { + "label": "duration", + "type": "t_uint40", + "offset": 9, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(SellingParams)11746_storage": { + "label": "struct ISale.SellingParams", + "members": [ + { + "label": "isForSale", + "type": "t_bool", + "offset": 0, + "slot": "0" + }, + { + "label": "price", + "type": "t_uint72", + "offset": 1, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_struct(SubscriptionParams)11831_storage": { + "label": "struct ISubscription.SubscriptionParams", + "members": [ + { + "label": "price", + "type": "t_uint72", + "offset": 0, + "slot": "0" + }, + { + "label": "duration", + "type": "t_uint40", + "offset": 9, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint40": { + "label": "uint40", + "numberOfBytes": "5" + }, + "t_uint48": { + "label": "uint48", + "numberOfBytes": "6" + }, + "t_uint72": { + "label": "uint72", + "numberOfBytes": "9" + } + }, + "namespaces": { + "erc7201:openzeppelin.storage.AccessControl": [ + { + "contract": "AccessControlUpgradeable", + "label": "_roles", + "type": "t_mapping(t_bytes32,t_struct(RoleData)24_storage)", + "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61", + "offset": 0, + "slot": "0" + } + ], + "erc7201:openzeppelin.storage.ERC721": [ + { + "contract": "ERC721Upgradeable", + "label": "_name", + "type": "t_string_storage", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:27", + "offset": 0, + "slot": "0" + }, + { + "contract": "ERC721Upgradeable", + "label": "_symbol", + "type": "t_string_storage", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:30", + "offset": 0, + "slot": "1" + }, + { + "contract": "ERC721Upgradeable", + "label": "_owners", + "type": "t_mapping(t_uint256,t_address)", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:32", + "offset": 0, + "slot": "2" + }, + { + "contract": "ERC721Upgradeable", + "label": "_balances", + "type": "t_mapping(t_address,t_uint256)", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:34", + "offset": 0, + "slot": "3" + }, + { + "contract": "ERC721Upgradeable", + "label": "_tokenApprovals", + "type": "t_mapping(t_uint256,t_address)", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:36", + "offset": 0, + "slot": "4" + }, + { + "contract": "ERC721Upgradeable", + "label": "_operatorApprovals", + "type": "t_mapping(t_address,t_mapping(t_address,t_bool))", + "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:38", + "offset": 0, + "slot": "5" + } + ], + "erc7201:openzeppelin.storage.Initializable": [ + { + "contract": "Initializable", + "label": "_initialized", + "type": "t_uint64", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69", + "offset": 0, + "slot": "0" + }, + { + "contract": "Initializable", + "label": "_initializing", + "type": "t_bool", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73", + "offset": 8, + "slot": "0" + } + ] + } + } + } + } +} diff --git a/packages/sharing-smart-contract/.prettierignore b/packages/sharing-smart-contract/.prettierignore new file mode 100644 index 000000000..31bf3dceb --- /dev/null +++ b/packages/sharing-smart-contract/.prettierignore @@ -0,0 +1,3 @@ +*.yml +*json +*.md diff --git a/packages/sharing-smart-contract/.prettierrc b/packages/sharing-smart-contract/.prettierrc index 14d967714..2e962a551 100644 --- a/packages/sharing-smart-contract/.prettierrc +++ b/packages/sharing-smart-contract/.prettierrc @@ -1,17 +1,19 @@ { - "printWidth": 120, + "printWidth": 100, "singleQuote": true, - "tabWidth": 2, + "tabWidth": 4, "trailingComma": "all", - "arrowParens": "avoid", - "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-solidity"], + "endOfLine": "auto", + "plugins": [ + "prettier-plugin-organize-imports", + "prettier-plugin-solidity" + ], "overrides": [ - { - "files": "*.sol", - "options": { - "singleQuote": false, - "tabWidth": 4 - } - } + { + "files": "*.sol", + "options": { + "singleQuote": false + } + } ] } diff --git a/packages/sharing-smart-contract/.solhint.json b/packages/sharing-smart-contract/.solhint.json index 855d69509..728ddc901 100644 --- a/packages/sharing-smart-contract/.solhint.json +++ b/packages/sharing-smart-contract/.solhint.json @@ -1,8 +1,22 @@ { - "extends": ["solhint:recommended"], + "extends": [ + "solhint:recommended" + ], "plugins": [], "rules": { - "func-visibility": ["warn", { "ignoreConstructors":true }], - "quotes": ["double"] + "compiler-version": [ + "error", + "^0.8.19" + ], + "func-visibility": [ + "warn", + { + "ignoreConstructors": true + } + ], + "quotes": [ + "error", + "double" + ] } } diff --git a/packages/sharing-smart-contract/CHANGELOG.md b/packages/sharing-smart-contract/CHANGELOG.md index 202c8c0e4..0887bf029 100644 --- a/packages/sharing-smart-contract/CHANGELOG.md +++ b/packages/sharing-smart-contract/CHANGELOG.md @@ -6,7 +6,14 @@ All notable changes to this project will be documented in this file. ### Changed -- update blockscout url +- Deploy on testnet and save artifacts (#444, #445) +- Deploy DPS contract using Github action (#443) +- Refactor sharing contract CI to use reusable workflows (#442) +- Import Ignition deployment in OZ upgrades plugin (#441) +- Deploy contracts using Hardhat Ignition (#440) +- [BREAKING] Remove result proxy url from contract config and deal params (#438). +- Fix Sharing contract constructor arguments order (#433) +- Update blockscout url ## [2.0.0] diff --git a/packages/sharing-smart-contract/README.md b/packages/sharing-smart-contract/README.md index 17cca8ff8..27b789089 100644 --- a/packages/sharing-smart-contract/README.md +++ b/packages/sharing-smart-contract/README.md @@ -1,29 +1,14 @@ # Sharing Smart Contracts -Brief description of your project. - -## Table of Contents - -- [Installation](#installation) -- [Scripts](#scripts) - - [Compile](#compile) - - [Verify](#verify) - - [Deploy (Production)](#deploy-production) - - [Deploy (Test)](#deploy-test) - - [Run Tests](#run-tests) - - [Generate UML Diagrams](#generate-uml-diagrams) +Note: all of the following commands should be executed inside `packages/sharing-smart-contract`. ## Installation -Describe the steps to install the project dependencies. - ```bash npm ci ``` -## Scripts - -### Compile +## Build To clean and compile the project: @@ -31,56 +16,81 @@ To clean and compile the project: npm run compile ``` -### Verify +### Test -To verify the contracts: +Start a local Hardhat node that, by default, forks Bellecour network: ```bash -npm run verify +npx hardhat node ``` -### Deploy (Production) - -To deploy the project on the production network - bellecour. -⚠️ Be sure before deploying on bellecour +Open a new terminal and run : ```bash -npm run script:prod +npm run test -- --network localhost ``` -### Deploy (Test) +## Deployment -To deploy the project on the test network - localhost. -You need first to start a local hardhat node which will be a fork of bellecour network : +To deploy contracts, set up a private key in `.env` file and run: ```bash -npx hardhat node +npm run deploy -- --network ``` -Open a new terminal and run : +**Note**: Deployment on chains that support CreateX factory will deploy contracts using `create2` strategy. -```bash -npm run script:test +### Mainnets deployment + +Deploying on any mainnet must happen through the dedicated Github action. +The action can be triggered from Github UI or using Github CLI: + +```sh +gh workflow run 'Sharing Smart Contract - Deployment' \ + -f environment= \ # testnets | mainnets + -f network= + # [ --ref ] ``` -### Run Tests +The output should be something like: -To deploy the project on the test network - localhost. -You need first to start a local hardhat node which will be a fork of bellecour network : +``` +✓ Created workflow_dispatch event for sharing-smart-contract-deploy.yml at feature/sharing-deployment-with-actions +``` + +Then check the execution on [Github](https://github.com/iExecBlockchainComputing/dataprotector-sdk/actions/workflows/sharing-smart-contract-deploy.yml). + +### Testnets deployments + +It is **highly recommended** to use Github Actions to deploy on live testnets, especially for "final" versions that are going to be used by other services. + +It is ok to deploy manually on testnets in dev mode. In that case use random create2 salts to not interfere with the configured salt. + +### Verification + +First, set up the target explorer API key in `.env` file. + +1. To verify contracts that are deployed using Hardhat Ignition, run: ```bash -npx hardhat node +# Get deployment id using: +npx hardhat ignition deployments + +# Verify +npm run verify:ignition -- # e.g. chain-421614 ``` -Open a new terminal and run : +**Note**: contracts deployed using Github Actions are automatically verified. + +2. To verify any contract, run ```bash -npm run test +npm run verify --
--network ``` -⚠️ Even if, the default network in the hardhat config is the local bellecour fork node. The tests will be run on a a simple snap hardhat node. That is why we need to specify the localhost network for the test which corresponds to the fork node of bellecour. +## Docs and diagrams -### Generate UML Diagrams +#### UML diagrams To generate UML diagrams for smart contracts (storage + class): @@ -96,7 +106,7 @@ To convert Solidity files to storage UML diagrams: npm run sol-to-uml ``` -#### Storage to Diagrams +#### Storage to diagrams To convert Solidity files to class UML diagrams: @@ -104,6 +114,6 @@ To convert Solidity files to class UML diagrams: npm run storage-to-diagrams ``` -#### Issue +#### Issues Do not use a more recent version of hardhat than the current one (2.20.1). Cf issue : diff --git a/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json b/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json index 42065f51e..9f61f3582 100644 --- a/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json +++ b/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json @@ -2,7 +2,7 @@ { "inputs": [ { - "internalType": "contract IExecPocoDelegate", + "internalType": "address", "name": "_proxy", "type": "address" }, @@ -195,7 +195,7 @@ }, { "inputs": [], - "name": "FailedInnerCall", + "name": "FailedCall", "type": "error" }, { @@ -2007,11 +2007,6 @@ "internalType": "string", "name": "iexecResultStorageProvider_", "type": "string" - }, - { - "internalType": "string", - "name": "iexecResultStorageProxy_", - "type": "string" } ], "name": "updateEnv", diff --git a/packages/sharing-smart-contract/abis/interfaces/IExecPocoDelegate.sol/IExecPocoDelegate.json b/packages/sharing-smart-contract/abis/interfaces/IPoCo.sol/IPoCo.json similarity index 100% rename from packages/sharing-smart-contract/abis/interfaces/IExecPocoDelegate.sol/IExecPocoDelegate.json rename to packages/sharing-smart-contract/abis/interfaces/IPoCo.sol/IPoCo.json diff --git a/packages/sharing-smart-contract/abis/libs/IexecLibOrders_v5.sol/IexecLibOrders_v5.json b/packages/sharing-smart-contract/abis/libs/IexecLibOrders_v5.sol/IexecLibOrders_v5.json deleted file mode 100644 index 0637a088a..000000000 --- a/packages/sharing-smart-contract/abis/libs/IexecLibOrders_v5.sol/IexecLibOrders_v5.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/packages/sharing-smart-contract/abis/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json b/packages/sharing-smart-contract/abis/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json index d11f04ff8..ac6a760ab 100644 --- a/packages/sharing-smart-contract/abis/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json +++ b/packages/sharing-smart-contract/abis/registry/AddOnlyAppWhitelistRegistry.sol/AddOnlyAppWhitelistRegistry.json @@ -4,11 +4,6 @@ "stateMutability": "nonpayable", "type": "constructor" }, - { - "inputs": [], - "name": "ERC1167FailedCreateClone", - "type": "error" - }, { "inputs": [ { @@ -112,6 +107,27 @@ "name": "ERC721NonexistentToken", "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": [], "name": "InvalidInitialization", diff --git a/packages/sharing-smart-contract/config/config.cjs b/packages/sharing-smart-contract/config/config.cjs new file mode 100644 index 000000000..dbeb44c74 --- /dev/null +++ b/packages/sharing-smart-contract/config/config.cjs @@ -0,0 +1,10 @@ +// Hardhat Ignition does not support ESM modules, so we use CommonJS syntax. +// TODO refactor this to use ESM syntax when Hardhat Ignition supports it. + +// TODO define addresses by network. + +module.exports = { + POCO_ADDRESS: '0x3eca1B216A7DF1C7689aEb259fFB83ADFB894E7f', + DATASET_REGISTRY_ADDRESS: '0x799DAa22654128d0C64d5b79eac9283008158730', + APP_REGISTRY_ADDRESS: '0xB1C52075b276f87b1834919167312221d50c9D16', +}; diff --git a/packages/sharing-smart-contract/config/config.js b/packages/sharing-smart-contract/config/config.js index 57689eb0b..635eb0e86 100644 --- a/packages/sharing-smart-contract/config/config.js +++ b/packages/sharing-smart-contract/config/config.js @@ -1,4 +1,5 @@ -export const SMART_CONTRACT_ADDRESS_FILE = '.smart-contract-address'; -export const POCO_ADDRESS = '0x3eca1B216A7DF1C7689aEb259fFB83ADFB894E7f'; -export const DATASET_REGISTRY_ADDRESS = '0x799DAa22654128d0C64d5b79eac9283008158730'; -export const APP_REGISTRY_ADDRESS = '0xB1C52075b276f87b1834919167312221d50c9D16'; +import config from './config.cjs'; + +export const POCO_ADDRESS = config.POCO_ADDRESS; +export const DATASET_REGISTRY_ADDRESS = config.DATASET_REGISTRY_ADDRESS; +export const APP_REGISTRY_ADDRESS = config.APP_REGISTRY_ADDRESS; diff --git a/packages/sharing-smart-contract/config/env.cjs b/packages/sharing-smart-contract/config/env.cjs new file mode 100644 index 000000000..86581a00d --- /dev/null +++ b/packages/sharing-smart-contract/config/env.cjs @@ -0,0 +1,51 @@ +// Hardhat Ignition does not support ESM modules, so we use CommonJS syntax. +// TODO refactor this to use ESM syntax when Hardhat Ignition supports it. + +require('dotenv/config.js'); +const { z } = require('zod'); + +const addressRegex = /(^|\b)(0x)?[0-9a-fA-F]{40}(\b|$)/; +const privateKeyRegex = /(^|\b)(0x)?[0-9a-fA-F]{64}(\b|$)/; + +const envSchema = z.object({ + // Private key of the wallet used for transactions + PRIVATE_KEY: z + .string() + .regex(privateKeyRegex, 'Invalid private key format') + .optional() + .or(z.literal('')), + + // environment to use for configuration (prod/staging) + ENV: z.enum(['prod', 'staging'], 'ENV must be either "prod" or "staging"').default('prod'), + + // Address of the PoCo contract + POCO_ADDRESS: z + .string() + .regex(addressRegex, 'Invalid Ethereum address format') + .optional() + .or(z.literal('')), + + // Address of the DatasetRegistry + DATASET_REGISTRY_ADDRESS: z + .string() + .regex(addressRegex, 'Invalid Ethereum address format') + .optional() + .or(z.literal('')), + + // URL of the RPC used for network connection + RPC_URL: z.string().url('RPC_URL must be a valid URL').optional().or(z.literal('')), + + // Mnemonic for deployment or network interaction + MNEMONIC: z.string().min(1, 'MNEMONIC cannot be empty').optional().or(z.literal('')), + + FUJI_RPC_URL: z.string().url('FUJI_RPC_URL must be a valid URL').optional(), + + ARBITRUM_SEPOLIA_RPC_URL: z + .string() + .url('ARBITRUM_SEPOLIA_RPC_URL must be a valid URL') + .optional(), + + ETHERSCAN_API_KEY: z.string().optional(), +}); + +module.exports = envSchema.parse(process.env); diff --git a/packages/sharing-smart-contract/config/env.js b/packages/sharing-smart-contract/config/env.js new file mode 100644 index 000000000..f3b1053c8 --- /dev/null +++ b/packages/sharing-smart-contract/config/env.js @@ -0,0 +1,3 @@ +import env from './env.cjs'; + +export default env; diff --git a/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol b/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol index 4e0ebad92..5c03d46fa 100644 --- a/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol +++ b/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 /****************************************************************************** - * Copyright 2024 IEXEC BLOCKCHAIN TECH * + * Copyright 2024-2025 IEXEC BLOCKCHAIN TECH * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -25,7 +25,7 @@ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Hol import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; import {IDataProtectorSharing, IexecLibOrders_v5, ICollection, ISubscription, IRental, ISale} from "./interfaces/IDataProtectorSharing.sol"; import {AddOnlyAppWhitelistRegistry, IAddOnlyAppWhitelist} from "./registry/AddOnlyAppWhitelistRegistry.sol"; -import {ManageOrders, IExecPocoDelegate} from "./ManageOrders.sol"; +import {ManageOrders} from "./ManageOrders.sol"; import {IRegistry} from "./interfaces/IRegistry.sol"; /// @custom:oz-upgrades-unsafe-allow state-variable-immutable @@ -57,7 +57,7 @@ contract DataProtectorSharing is **************************************************************************/ /// @custom:oz-upgrades-unsafe-allow constructor constructor( - IExecPocoDelegate _proxy, + address _proxy, IRegistry protectedDataRegistry_, AddOnlyAppWhitelistRegistry addOnlyAppWhitelistRegistry_ ) ManageOrders(_proxy) { @@ -72,7 +72,7 @@ contract DataProtectorSharing is __AccessControl_init(); _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); - updateEnv("ipfs", "https://result.v8-bellecour.iex.ec"); + updateEnv("ipfs"); } /*************************************************************************** @@ -166,7 +166,12 @@ contract DataProtectorSharing is _workerpoolOrder.category ); - dealid = POCO_DELEGATE.matchOrders(_appOrder, _datasetOrder, _workerpoolOrder, requestOrder); + dealid = POCO_DELEGATE.matchOrders( + _appOrder, + _datasetOrder, + _workerpoolOrder, + requestOrder + ); emit ProtectedDataConsumed(dealid, _protectedData, _mode); } @@ -178,7 +183,11 @@ contract DataProtectorSharing is // Overide burn function from ERC721BurnableUpgradeable. // Enable to burn a collectionTokenID. - function _update(address to, uint256 _collectionTokenId, address auth) internal virtual override returns (address) { + function _update( + address to, + uint256 _collectionTokenId, + address auth + ) internal virtual override returns (address) { CollectionDetails storage _collectionDetails = collectionDetails[_collectionTokenId]; if (to == address(0)) { if (_collectionDetails.size > 0) { @@ -192,7 +201,10 @@ contract DataProtectorSharing is } /// @inheritdoc IDataProtectorSharing - function getProtectedDataRenter(address _protectedData, address _renterAddress) public view returns (uint48) { + function getProtectedDataRenter( + address _protectedData, + address _renterAddress + ) public view returns (uint48) { return protectedDataDetails[_protectedData].renters[_renterAddress]; } @@ -205,7 +217,12 @@ contract DataProtectorSharing is } /// @inheritdoc IDataProtectorSharing - function receiveApproval(address _sender, uint256, address, bytes calldata _extraData) public returns (bool) { + function receiveApproval( + address _sender, + uint256, + address, + bytes calldata _extraData + ) public returns (bool) { if (msg.sender != address(POCO_DELEGATE)) { revert OnlyPocoCallerAuthorized(msg.sender); } @@ -229,7 +246,10 @@ contract DataProtectorSharing is _rentProtectedData(protectedData, _sender, rentingParams); return true; } else if (selector == this.buyProtectedData.selector) { - (address protectedData, address to, uint72 price) = abi.decode(_extraData[4:], (address, address, uint72)); + (address protectedData, address to, uint72 price) = abi.decode( + _extraData[4:], + (address, address, uint72) + ); _buyProtectedData(protectedData, _sender, to, price); return true; } @@ -241,11 +261,9 @@ contract DataProtectorSharing is * Admin * **************************************************************************/ function updateEnv( - string memory iexecResultStorageProvider_, - string memory iexecResultStorageProxy_ + string memory iexecResultStorageProvider_ ) public onlyRole(DEFAULT_ADMIN_ROLE) { _iexecResultStorageProvider = iexecResultStorageProvider_; - _iexecResultStorageProxy = iexecResultStorageProxy_; } /*************************************************************************** @@ -291,7 +309,11 @@ contract DataProtectorSharing is delete protectedDataDetails[_protectedData]; collectionDetails[_collectionTokenId].size -= 1; - PROTECTED_DATA_REGISTRY.safeTransferFrom(address(this), msg.sender, uint256(uint160(_protectedData))); + PROTECTED_DATA_REGISTRY.safeTransferFrom( + address(this), + msg.sender, + uint256(uint160(_protectedData)) + ); emit ProtectedDataTransfer(_protectedData, 0, _collectionTokenId, address(0)); } @@ -327,7 +349,11 @@ contract DataProtectorSharing is _collectionDetails.lastSubscriptionExpiration = uint48( Math.max(endDate, _collectionDetails.lastSubscriptionExpiration) ); - POCO_DELEGATE.transferFrom(spender, ownerOf(_collectionTokenId), _collectionDetails.subscriptionParams.price); + POCO_DELEGATE.transferFrom( + spender, + ownerOf(_collectionTokenId), + _collectionDetails.subscriptionParams.price + ); emit NewSubscription(_collectionTokenId, spender, endDate); } @@ -354,7 +380,10 @@ contract DataProtectorSharing is } /// @inheritdoc ISubscription - function setSubscriptionParams(uint256 _collectionTokenId, SubscriptionParams calldata _subscriptionParams) public { + function setSubscriptionParams( + uint256 _collectionTokenId, + SubscriptionParams calldata _subscriptionParams + ) public { _checkCollectionOperator(_collectionTokenId); collectionDetails[_collectionTokenId].subscriptionParams = _subscriptionParams; @@ -405,7 +434,10 @@ contract DataProtectorSharing is } /// @inheritdoc IRental - function setProtectedDataToRenting(address _protectedData, RentingParams calldata _rentingParams) public { + function setProtectedDataToRenting( + address _protectedData, + RentingParams calldata _rentingParams + ) public { ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData]; uint256 _collectionTokenId = _protectedDataDetails.collection; _checkCollectionOperator(_collectionTokenId); @@ -436,14 +468,23 @@ contract DataProtectorSharing is return _buyProtectedData(_protectedData, msg.sender, _to, _price); } - function _buyProtectedData(address _protectedData, address spender, address _to, uint72 _price) private { + function _buyProtectedData( + address _protectedData, + address spender, + address _to, + uint72 _price + ) private { ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData]; _checkProtectedDataForSale(_protectedData); if (_protectedDataDetails.sellingParams.price != _price) { revert InvalidPriceForPurchase(_protectedData, _price); } - PROTECTED_DATA_REGISTRY.safeTransferFrom(address(this), _to, uint256(uint160(_protectedData))); + PROTECTED_DATA_REGISTRY.safeTransferFrom( + address(this), + _to, + uint256(uint160(_protectedData)) + ); POCO_DELEGATE.transferFrom( spender, ownerOf(_protectedDataDetails.collection), diff --git a/packages/sharing-smart-contract/contracts/ManageOrders.sol b/packages/sharing-smart-contract/contracts/ManageOrders.sol index 7d4a5c3b6..3f3c2a2c1 100644 --- a/packages/sharing-smart-contract/contracts/ManageOrders.sol +++ b/packages/sharing-smart-contract/contracts/ManageOrders.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 /****************************************************************************** - * Copyright 2024 IEXEC BLOCKCHAIN TECH * + * Copyright 2024-2025 IEXEC BLOCKCHAIN TECH * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -17,9 +17,11 @@ ******************************************************************************/ pragma solidity ^0.8.24; -import {IExecPocoDelegate, IexecLibOrders_v5} from "./interfaces/IExecPocoDelegate.sol"; +import {IexecLibOrders_v5} from "./interfaces/IPoCo.sol"; +import {IPoCo} from "./interfaces/IPoCo.sol"; /// @custom:oz-upgrades-unsafe-allow state-variable-immutable +// eslint-disable-next-line quotes abstract contract ManageOrders { using IexecLibOrders_v5 for IexecLibOrders_v5.OrderOperationEnum; using IexecLibOrders_v5 for IexecLibOrders_v5.AppOrder; @@ -31,10 +33,13 @@ abstract contract ManageOrders { using IexecLibOrders_v5 for IexecLibOrders_v5.RequestOrderOperation; // ---------------------ManageOrders state---------------------------------- - IExecPocoDelegate internal immutable POCO_DELEGATE; - bytes32 internal constant TAG = 0x0000000000000000000000000000000000000000000000000000000000000003; // [tee,scone] + IPoCo internal immutable POCO_DELEGATE; + bytes32 internal constant TAG = + 0x0000000000000000000000000000000000000000000000000000000000000003; // [tee,scone] uint256 internal constant TRUST = 0; // No replication string internal _iexecResultStorageProvider; + // [WARNING] This value is not used anymore but it must be kept + // to not break deployed proxies when upgrading them. string internal _iexecResultStorageProxy; uint256 private _salt; @@ -42,14 +47,16 @@ abstract contract ManageOrders { * Constructor * **************************************************************************/ /// @custom:oz-upgrades-unsafe-allow constructor - constructor(IExecPocoDelegate pocoDelegate_) { - POCO_DELEGATE = pocoDelegate_; + constructor(address pocoAddress) { + POCO_DELEGATE = IPoCo(pocoAddress); } /*************************************************************************** * Functions * **************************************************************************/ - function _createAppOrder(address _appAddress) internal view returns (IexecLibOrders_v5.AppOrder memory) { + function _createAppOrder( + address _appAddress + ) internal view returns (IexecLibOrders_v5.AppOrder memory) { //create AppOrderOperation return IexecLibOrders_v5.AppOrder({ @@ -120,28 +127,29 @@ abstract contract ManageOrders { uint256 _category ) internal returns (IexecLibOrders_v5.RequestOrder memory) { //create RequestOrderOperation - IexecLibOrders_v5.RequestOrderOperation memory requestOrderOperation = IexecLibOrders_v5.RequestOrderOperation({ - order: IexecLibOrders_v5.RequestOrder({ - app: _appAddress, //address - appmaxprice: 0, //uint256 - dataset: _protectedData, //address - datasetmaxprice: 0, //uint256 - workerpool: _workerpoolAddress, //address - workerpoolmaxprice: 0, //uint256 - requester: address(this), //address - volume: 1, //uint256 - tag: TAG, //bytes32 - category: _category, //uint256 - trust: TRUST, //uint256 - beneficiary: msg.sender, //address - callback: address(0), //address - params: generateParams(), //string - salt: getSalt(), //bytes32 + IexecLibOrders_v5.RequestOrderOperation memory requestOrderOperation = IexecLibOrders_v5 + .RequestOrderOperation({ + order: IexecLibOrders_v5.RequestOrder({ + app: _appAddress, //address + appmaxprice: 0, //uint256 + dataset: _protectedData, //address + datasetmaxprice: 0, //uint256 + workerpool: _workerpoolAddress, //address + workerpoolmaxprice: 0, //uint256 + requester: address(this), //address + volume: 1, //uint256 + tag: TAG, //bytes32 + category: _category, //uint256 + trust: TRUST, //uint256 + beneficiary: msg.sender, //address + callback: address(0), //address + params: generateParams(), //string + salt: getSalt(), //bytes32 + sign: new bytes(0) + }), + operation: IexecLibOrders_v5.OrderOperationEnum.SIGN, //OrderOperationEnum sign: new bytes(0) - }), - operation: IexecLibOrders_v5.OrderOperationEnum.SIGN, //OrderOperationEnum - sign: new bytes(0) - }); + }); // presign POCO_DELEGATE.manageRequestOrder(requestOrderOperation); @@ -156,12 +164,11 @@ abstract contract ManageOrders { function generateParams() private view returns (string memory) { return string.concat( - '{"iexec_result_encryption":true', - ',"iexec_result_storage_provider":"', + // eslint-disable-next-line quotes + '{"iexec_result_encryption":true', // solhint-disable-line quotes + ',"iexec_result_storage_provider":"', // solhint-disable-line quotes _iexecResultStorageProvider, - '","iexec_result_storage_proxy":"', - _iexecResultStorageProxy, - '"}' + '"}' // solhint-disable-line quotes ); } } diff --git a/packages/sharing-smart-contract/contracts/interfaces/IDataProtectorSharing.sol b/packages/sharing-smart-contract/contracts/interfaces/IDataProtectorSharing.sol index 7ba7afe7d..9e1b96d31 100644 --- a/packages/sharing-smart-contract/contracts/interfaces/IDataProtectorSharing.sol +++ b/packages/sharing-smart-contract/contracts/interfaces/IDataProtectorSharing.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 /****************************************************************************** - * Copyright 2024 IEXEC BLOCKCHAIN TECH * + * Copyright 2024-2025 IEXEC BLOCKCHAIN TECH * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -17,9 +17,9 @@ ******************************************************************************/ pragma solidity ^0.8.24; -import {IexecLibOrders_v5} from "../libs/IexecLibOrders_v5.sol"; import {ISubscription} from "./ISubscription.sol"; import {ICollection} from "./ICollection.sol"; +import {IexecLibOrders_v5} from "./IPoCo.sol"; import {IRental} from "./IRental.sol"; import {ISale} from "./ISale.sol"; import {IAddOnlyAppWhitelist} from "./IAddOnlyAppWhitelist.sol"; @@ -138,7 +138,10 @@ interface IDataProtectorSharing is ICollection, ISubscription, IRental, ISale { * @param _renterAddress The address of the renter. * @return The rental expiration timestamp as a uint48. */ - function getProtectedDataRenter(address _protectedData, address _renterAddress) external view returns (uint48); + function getProtectedDataRenter( + address _protectedData, + address _renterAddress + ) external view returns (uint48); /** * Retrieves the subscription expiration timestamp for a specific collection and subscriber. diff --git a/packages/sharing-smart-contract/contracts/interfaces/IExecPocoDelegate.sol b/packages/sharing-smart-contract/contracts/interfaces/IExecPocoDelegate.sol deleted file mode 100644 index 321294ac0..000000000 --- a/packages/sharing-smart-contract/contracts/interfaces/IExecPocoDelegate.sol +++ /dev/null @@ -1,105 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -/****************************************************************************** - * Copyright 2024 IEXEC BLOCKCHAIN TECH * - * * - * Licensed under the Apache License, Version 2.0 (the "License"); * - * you may not use this file except in compliance with the License. * - * You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, software * - * distributed under the License is distributed on an "AS IS" BASIS, * - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * - * See the License for the specific language governing permissions and * - * limitations under the License. * - ******************************************************************************/ -pragma solidity ^0.8.24; - -import {IexecLibOrders_v5} from "../libs/IexecLibOrders_v5.sol"; - -interface IExecPocoDelegate { - /** - * Publish an on chain application order operation. - * - * @param operation The application order operation to be managed. - */ - function manageAppOrder(IexecLibOrders_v5.AppOrderOperation calldata operation) external; - - /** - * Publish an on chain dataset order operation. - * - * @param operation The dataset order operation to be managed. - */ - function manageDatasetOrder(IexecLibOrders_v5.DatasetOrderOperation calldata operation) external; - - /** - * Publish an on chain workerpool order operation. - * - * @param operation The workerpool order operation to be managed. - */ - function manageWorkerpoolOrder(IexecLibOrders_v5.WorkerpoolOrderOperation calldata operation) external; - - /** - * Publish an on chain request order operation. - * - * @param operation The request order operation to be managed. - */ - function manageRequestOrder(IexecLibOrders_v5.RequestOrderOperation calldata operation) external; - - /** - * Matche orders to form a deal. - * - * @param appOrder The application order. - * @param datasetOrder The dataset order. - * @param workerpoolOrder The workerpool order. - * @param requestOrder The request order. - * @return The deal's unique identifier. - */ - function matchOrders( - IexecLibOrders_v5.AppOrder calldata appOrder, - IexecLibOrders_v5.DatasetOrder calldata datasetOrder, - IexecLibOrders_v5.WorkerpoolOrder calldata workerpoolOrder, - IexecLibOrders_v5.RequestOrder calldata requestOrder - ) external returns (bytes32); - - /** - * Transfers tokens from sender's account to the specified recipient. - * - * @param sender The address of the spender. - * @param recipient The address of the recipient. - * @param amount The amount of tokens to transfer. - * @return A boolean value indicating whether the transfer was successful. - */ - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - /** - * @param owner The address of the account owning tokens. - * @return The number of tokens owned by the specified address. - */ - function balanceOf(address owner) external view returns (uint256); - - /** - * Allows a spender to withdraw from your account, multiple times, up to the value amount. - * If this function is called again, it overwrites the current allowance with value. - * - * @param spender The address authorized to spend a certain amount of tokens on behalf of the msg.sender. - * @param value The maximum amount of tokens that can be spent by the spender. - * @return True if the approval was successful, otherwise false. - */ - function approve(address spender, uint256 value) external returns (bool); - - /** - * Deposits a specified amount of tokens into the contract (ERC20 Satcked RLC). - * The caller must ensure they have enough tokens and have approved the contract to spend - * on their behalf. - * - * @return A boolean indicating whether the deposit was successful. - */ - function deposit() external payable returns (bool); - - function approveAndCall(address spender, uint256 value, bytes calldata extraData) external returns (bool); - - function allowance(address owner, address spender) external view returns (uint256); -} diff --git a/packages/sharing-smart-contract/contracts/libs/IexecLibOrders_v5.sol b/packages/sharing-smart-contract/contracts/interfaces/IPoCo.sol similarity index 63% rename from packages/sharing-smart-contract/contracts/libs/IexecLibOrders_v5.sol rename to packages/sharing-smart-contract/contracts/interfaces/IPoCo.sol index d50ba608b..96e22deac 100644 --- a/packages/sharing-smart-contract/contracts/libs/IexecLibOrders_v5.sol +++ b/packages/sharing-smart-contract/contracts/interfaces/IPoCo.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 /****************************************************************************** - * Copyright 2024 IEXEC BLOCKCHAIN TECH * + * Copyright 2025 IEXEC BLOCKCHAIN TECH * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * @@ -15,8 +15,56 @@ * See the License for the specific language governing permissions and * * limitations under the License. * ******************************************************************************/ + pragma solidity ^0.8.24; +// TODO import interfaces (IexecOrderManagement, IexecPoco1, ...) from @iexec/poco. + +interface IPoCo { + // IexecEscrowNative + function deposit() external payable returns (bool); // Native mode + + // TODO support both token and native modes. + // IexecEscrowToken + // function deposit(uint256) external returns (bool); // Token mode + + // IexecERC20 + function approve(address spender, uint256 value) external returns (bool); + function approveAndCall( + address spender, + uint256 value, + bytes calldata extraData + ) external returns (bool); + function transferFrom( + address sender, + address recipient, + uint256 amount + ) external returns (bool); + function balanceOf(address owner) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); + + // IexecOrderManagement + function manageAppOrder(IexecLibOrders_v5.AppOrderOperation calldata operation) external; + function manageDatasetOrder( + IexecLibOrders_v5.DatasetOrderOperation calldata operation + ) external; + function manageWorkerpoolOrder( + IexecLibOrders_v5.WorkerpoolOrderOperation calldata operation + ) external; + function manageRequestOrder( + IexecLibOrders_v5.RequestOrderOperation calldata operation + ) external; + + // IexecPoco1 + function matchOrders( + IexecLibOrders_v5.AppOrder calldata appOrder, + IexecLibOrders_v5.DatasetOrder calldata datasetOrder, + IexecLibOrders_v5.WorkerpoolOrder calldata workerpoolOrder, + IexecLibOrders_v5.RequestOrder calldata requestOrder + ) external returns (bytes32); +} + +// TODO import from @iexec/poco library IexecLibOrders_v5 { enum OrderOperationEnum { SIGN, diff --git a/packages/sharing-smart-contract/contracts/interfaces/IRental.sol b/packages/sharing-smart-contract/contracts/interfaces/IRental.sol index 44b16c7e9..be5ad9141 100644 --- a/packages/sharing-smart-contract/contracts/interfaces/IRental.sol +++ b/packages/sharing-smart-contract/contracts/interfaces/IRental.sol @@ -73,7 +73,11 @@ interface IRental { * @param protectedData - The address of the protected data. * @param rentingParams - The renting params for the protected data. */ - event ProtectedDataAddedForRenting(uint256 collectionTokenId, address protectedData, RentingParams rentingParams); + event ProtectedDataAddedForRenting( + uint256 collectionTokenId, + address protectedData, + RentingParams rentingParams + ); /** * Event emitted when protected data is removed from renting in a collection. @@ -91,7 +95,12 @@ interface IRental { * @param renter - The address of the renter. * @param endDate - The end date of the rental. */ - event NewRental(uint256 collectionTokenId, address protectedData, address renter, uint48 endDate); + event NewRental( + uint256 collectionTokenId, + address protectedData, + address renter, + uint48 endDate + ); /** * Enables renting of protected data using funds from the caller's iExec account. @@ -102,7 +111,10 @@ interface IRental { * @param _rentingParams In order to avoid the collection owner to front run renters. * @return uint48 Timestamp of the rental's expiration. */ - function rentProtectedData(address _protectedData, RentingParams memory _rentingParams) external returns (uint48); + function rentProtectedData( + address _protectedData, + RentingParams memory _rentingParams + ) external returns (uint48); /** * Set protected data from a collection available for renting with the @@ -111,7 +123,10 @@ interface IRental { * @param _protectedData The address of the protected data to be added for renting. * @param _rentingParams The renting params for which the protected data will be available for renting. */ - function setProtectedDataToRenting(address _protectedData, RentingParams calldata _rentingParams) external; + function setProtectedDataToRenting( + address _protectedData, + RentingParams calldata _rentingParams + ) external; /** * Remove protected data from the available list of renting. diff --git a/packages/sharing-smart-contract/contracts/interfaces/ISubscription.sol b/packages/sharing-smart-contract/contracts/interfaces/ISubscription.sol index 783cfbcb7..5c3fe70ae 100644 --- a/packages/sharing-smart-contract/contracts/interfaces/ISubscription.sol +++ b/packages/sharing-smart-contract/contracts/interfaces/ISubscription.sol @@ -47,7 +47,10 @@ interface ISubscription { * @param collectionTokenId - The ID of the collection. * @param subscriptionParams - Current subscription params */ - error InvalidSubscriptionParams(uint256 collectionTokenId, SubscriptionParams subscriptionParams); + error InvalidSubscriptionParams( + uint256 collectionTokenId, + SubscriptionParams subscriptionParams + ); /** * Subscription parameters for a collection. diff --git a/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelist.sol b/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelist.sol index e7659659c..9135a9d9f 100644 --- a/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelist.sol +++ b/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelist.sol @@ -22,7 +22,8 @@ import {IAddOnlyAppWhitelist} from "../interfaces/IAddOnlyAppWhitelist.sol"; import {ERC734} from "./ERC734.sol"; contract AddOnlyAppWhitelist is IAddOnlyAppWhitelist, ERC734 { - AddOnlyAppWhitelistRegistry public immutable APP_WHITELIST_REGISTRY = AddOnlyAppWhitelistRegistry(msg.sender); + AddOnlyAppWhitelistRegistry public immutable APP_WHITELIST_REGISTRY = + AddOnlyAppWhitelistRegistry(msg.sender); // ---------------------AddOnlyAppWhitelist state------------------------------------ uint256 internal constant GROUP_MEMBER_PURPOSE = 4; diff --git a/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelistRegistry.sol b/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelistRegistry.sol index c25ee6c96..b687d9557 100644 --- a/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelistRegistry.sol +++ b/packages/sharing-smart-contract/contracts/registry/AddOnlyAppWhitelistRegistry.sol @@ -24,7 +24,11 @@ import {IAddOnlyAppWhitelistRegistry} from "../interfaces/IAddOnlyAppWhitelistRe import {AddOnlyAppWhitelist, IAddOnlyAppWhitelist} from "./AddOnlyAppWhitelist.sol"; /// @custom:oz-upgrades-unsafe-allow state-variable-immutable -contract AddOnlyAppWhitelistRegistry is IAddOnlyAppWhitelistRegistry, Initializable, ERC721Upgradeable { +contract AddOnlyAppWhitelistRegistry is + IAddOnlyAppWhitelistRegistry, + Initializable, + ERC721Upgradeable +{ // ---------------------AddOnlyAppWhitelistRegistry state------------------------------------ AddOnlyAppWhitelist public _implementationAddress; diff --git a/packages/sharing-smart-contract/eslint.config.mjs b/packages/sharing-smart-contract/eslint.config.mjs new file mode 100644 index 000000000..69dab9181 --- /dev/null +++ b/packages/sharing-smart-contract/eslint.config.mjs @@ -0,0 +1,58 @@ +import eslint from '@eslint/js'; +import importPlugin from 'eslint-plugin-import'; +import prettier from 'eslint-config-prettier'; +import globals from 'globals'; + +export default [ + eslint.configs.recommended, + prettier, + { + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: { + ...globals.browser, + ...globals.node, + myCustomGlobal: 'readonly', + }, + }, + plugins: { import: importPlugin }, + ignores: [ + '**/node_modules/', + '**/coverage/', + '**/build/', + '**/typechain-types/', + '**/tools/', + ], + rules: { + 'import/prefer-default-export': 'off', + 'import/extensions': ['error', 'always'], + }, + }, + { + files: ['scripts/**/*.js', 'test/**/*.js', 'hardhat.config.cjs'], + rules: { + 'import/prefer-default-export': 'off', + 'import/extensions': ['error', 'always'], + }, + }, + { + files: ['test/**/*.js'], + languageOptions: { + globals: { + describe: 'readonly', + it: 'readonly', + }, + }, + rules: { + 'no-unused-expressions': 'off', + 'no-shadow': 'off', + }, + }, + { + files: ['tools/**/*.js'], + rules: { + 'no-undef': 'warn', + }, + }, +]; diff --git a/packages/sharing-smart-contract/hardhat.config.cjs b/packages/sharing-smart-contract/hardhat.config.cjs index 2788665e2..1163697d0 100644 --- a/packages/sharing-smart-contract/hardhat.config.cjs +++ b/packages/sharing-smart-contract/hardhat.config.cjs @@ -2,9 +2,11 @@ require('@nomicfoundation/hardhat-foundry'); require('@nomicfoundation/hardhat-toolbox'); require('@openzeppelin/hardhat-upgrades'); require('hardhat-contract-sizer'); -require('dotenv').config(); +require('@openzeppelin/hardhat-upgrades'); +require('hardhat-dependency-compiler'); +const env = require('./config/env.cjs'); -const { WALLET_PRIVATE_KEY } = process.env; +// TODO format const bellecourBase = { gasPrice: 0, @@ -17,7 +19,6 @@ const bellecourBase = { */ module.exports = { // run `npx hardhat node` to start the forked bellecour node "local-bellecour-fork" - defaultNetwork: 'local-bellecour-fork', networks: { hardhat: { ...bellecourBase, @@ -31,21 +32,35 @@ module.exports = { ...bellecourBase, url: 'http://127.0.0.1:8545', }, - 'ci-bellecour-fork': { - ...bellecourBase, - url: 'http://bellecour-fork:8545', - }, bellecour: { ...bellecourBase, url: 'https://bellecour.iex.ec', - accounts: WALLET_PRIVATE_KEY ? [WALLET_PRIVATE_KEY] : [], + accounts: env.PRIVATE_KEY ? [env.PRIVATE_KEY] : [], + }, + avalancheFujiTestnet: { + chainId: 43113, + url: env.FUJI_RPC_URL || 'https://api.avax-test.network/ext/bc/C/rpc', + accounts: [ + env.PRIVATE_KEY || + '0x0000000000000000000000000000000000000000000000000000000000000000', + ], + blockGasLimit: 8_000_000, + }, + arbitrumSepolia: { + chainId: 421614, + url: env.ARBITRUM_SEPOLIA_RPC_URL || 'https://sepolia-rollup.arbitrum.io/rpc', + accounts: [ + env.PRIVATE_KEY || + '0x0000000000000000000000000000000000000000000000000000000000000000', + ], + blockGasLimit: 30_000_000, }, // poco-chain native config 'dev-native': { chainId: 65535, - url: process.env.RPC_URL ?? 'http://localhost:8545', + url: env.RPC_URL ?? 'http://localhost:8545', accounts: { - mnemonic: process.env.MNEMONIC ?? '', + mnemonic: env.MNEMONIC ?? '', }, gasPrice: 0, }, @@ -57,7 +72,9 @@ module.exports = { // to verify smart-contract on Blockscout etherscan: { apiKey: { - bellecour: 'abc', + bellecour: 'nothing', // a non-empty string is needed by the plugin. + avalancheFujiTestnet: 'nothing', // a non-empty string is needed by the plugin. + arbitrumSepolia: env.ETHERSCAN_API_KEY || '', }, customChains: [ { @@ -71,7 +88,7 @@ module.exports = { ], }, sourcify: { - enabled: false, + enabled: true, }, // contract sizer contractSizer: { @@ -91,4 +108,16 @@ module.exports = { }, }, }, + ignition: { + strategyConfig: { + create2: { + salt: "0x0000000000000000000000000000000000000000000000000000000000000001", + }, + }, + }, + dependencyCompiler: { + paths: [ + '@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol', + ], + }, }; diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistry.dbg.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistry.dbg.json new file mode 100644 index 000000000..23a5e83e3 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistry.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/72a96bb375f864053660a4559ce8904a.json" +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistry.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistry.json new file mode 100644 index 000000000..03fc3da97 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistry.json @@ -0,0 +1,556 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AddOnlyAppWhitelistRegistry", + "sourceName": "contracts/registry/AddOnlyAppWhitelistRegistry.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "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": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "_implementationAddress", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "createAddOnlyAppWhitelist", + "outputs": [ + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "isAuthorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611b83806100df6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl.dbg.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl.dbg.json new file mode 100644 index 000000000..23a5e83e3 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/72a96bb375f864053660a4559ce8904a.json" +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl.json new file mode 100644 index 000000000..03fc3da97 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl.json @@ -0,0 +1,556 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AddOnlyAppWhitelistRegistry", + "sourceName": "contracts/registry/AddOnlyAppWhitelistRegistry.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "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": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "_implementationAddress", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "createAddOnlyAppWhitelist", + "outputs": [ + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "isAuthorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611b83806100df6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy.dbg.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy.dbg.json new file mode 100644 index 000000000..23a5e83e3 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/72a96bb375f864053660a4559ce8904a.json" +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy.json new file mode 100644 index 000000000..b71979fd9 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy.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": "0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharing.dbg.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharing.dbg.json new file mode 100644 index 000000000..23a5e83e3 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharing.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/72a96bb375f864053660a4559ce8904a.json" +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharing.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharing.json new file mode 100644 index 000000000..7dda16b37 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharing.json @@ -0,0 +1,2026 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DataProtectorSharing", + "sourceName": "contracts/DataProtectorSharing.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_proxy", + "type": "address" + }, + { + "internalType": "contract IRegistry", + "name": "protectedDataRegistry_", + "type": "address" + }, + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "addOnlyAppWhitelistRegistry_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "app", + "type": "address" + } + ], + "name": "AppNotWhitelistedForProtectedData", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "CollectionNotEmpty", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "_duration", + "type": "uint48" + } + ], + "name": "DurationInvalid", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [], + "name": "EmptyCallData", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "InvalidAppWhitelist", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "InvalidPriceForPurchase", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "InvalidRentingParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "InvalidSubscriptionParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedDatas", + "type": "address" + } + ], + "name": "NoValidRentalOrSubscription", + "type": "error" + }, + { + "inputs": [], + "name": "NotAnOwnerOrApprovedOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "NotCollectionOperator", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "OnGoingCollectionSubscriptions", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_caller", + "type": "address" + } + ], + "name": "OnlyPocoCallerAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "ProctedDataInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataCurrentlyBeingRented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataForSale", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotForSale", + "type": "error" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "workerpoolOrder", + "type": "tuple" + } + ], + "name": "WorkerpoolOrderNotFree", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "renter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewRental", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "subscriber", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "NewSubscriptionParams", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "ProtectedDataAddedForRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "ProtectedDataAddedForSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAddedForSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "dealId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IDataProtectorSharing.Mode", + "name": "mode", + "type": "uint8" + } + ], + "name": "ProtectedDataConsumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenIdFrom", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataSold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "oldCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "addOnlyAppWhitelist", + "type": "address" + } + ], + "name": "ProtectedDataTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "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": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "ADD_ONLY_APP_WHITELIST_REGISTRY", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "addProtectedDataToCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "buyProtectedData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "collectionDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "size", + "type": "uint256" + }, + { + "internalType": "uint48", + "name": "lastSubscriptionExpiration", + "type": "uint48" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "_workerpoolOrder", + "type": "tuple" + }, + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "consumeProtectedData", + "outputs": [ + { + "internalType": "bytes32", + "name": "dealid", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "createCollection", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "earning", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_subscriberAddress", + "type": "address" + } + ], + "name": "getCollectionSubscriber", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_renterAddress", + "type": "address" + } + ], + "name": "getProtectedDataRenter", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "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": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "protectedDataDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "collection", + "type": "uint256" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "addOnlyAppWhitelist", + "type": "address" + }, + { + "internalType": "uint48", + "name": "lastRentalExpiration", + "type": "uint48" + }, + { + "internalType": "bool", + "name": "inSubscription", + "type": "bool" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "bool", + "name": "isForSale", + "type": "bool" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "internalType": "struct ISale.SellingParams", + "name": "sellingParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_extraData", + "type": "bytes" + } + ], + "name": "receiveApproval", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "rentProtectedData", + "outputs": [ + { + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "setProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "setProtectedDataToRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "setProtectedDataToSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "setSubscriptionParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "subscribeToCollection", + "outputs": [ + { + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "iexecResultStorageProvider_", + "type": "string" + } + ], + "name": "updateEnv", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60e06040523480156200001157600080fd5b50604051620049a2380380620049a283398101604081905262000034916200012e565b6001600160a01b0383166080526200004b62000064565b6001600160a01b0391821660c0521660a0525062000182565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000b55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001155780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6001600160a01b03811681146200011557600080fd5b6000806000606084860312156200014457600080fd5b8351620001518162000118565b6020850151909350620001648162000118565b6040850151909250620001778162000118565b809150509250925092565b60805160a05160c0516147956200020d60003960008181610b960152818161144f01528181611c5201528181611cf101528181611d920152611f8c0152600081816104ca0152610b0b015260008181610ff9015281816115af01528181611e3001528181611fea015281816122b7015281816124fe01528181612ab20152612cf001526147956000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingImpl.dbg.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingImpl.dbg.json new file mode 100644 index 000000000..23a5e83e3 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingImpl.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/72a96bb375f864053660a4559ce8904a.json" +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingImpl.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingImpl.json new file mode 100644 index 000000000..7dda16b37 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingImpl.json @@ -0,0 +1,2026 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DataProtectorSharing", + "sourceName": "contracts/DataProtectorSharing.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_proxy", + "type": "address" + }, + { + "internalType": "contract IRegistry", + "name": "protectedDataRegistry_", + "type": "address" + }, + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "addOnlyAppWhitelistRegistry_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "app", + "type": "address" + } + ], + "name": "AppNotWhitelistedForProtectedData", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "CollectionNotEmpty", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "_duration", + "type": "uint48" + } + ], + "name": "DurationInvalid", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [], + "name": "EmptyCallData", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "InvalidAppWhitelist", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "InvalidPriceForPurchase", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "InvalidRentingParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "InvalidSubscriptionParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedDatas", + "type": "address" + } + ], + "name": "NoValidRentalOrSubscription", + "type": "error" + }, + { + "inputs": [], + "name": "NotAnOwnerOrApprovedOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "NotCollectionOperator", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "OnGoingCollectionSubscriptions", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_caller", + "type": "address" + } + ], + "name": "OnlyPocoCallerAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "ProctedDataInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataCurrentlyBeingRented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataForSale", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotForSale", + "type": "error" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "workerpoolOrder", + "type": "tuple" + } + ], + "name": "WorkerpoolOrderNotFree", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "renter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewRental", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "subscriber", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "NewSubscriptionParams", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "ProtectedDataAddedForRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "ProtectedDataAddedForSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAddedForSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "dealId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IDataProtectorSharing.Mode", + "name": "mode", + "type": "uint8" + } + ], + "name": "ProtectedDataConsumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenIdFrom", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataSold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "oldCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "addOnlyAppWhitelist", + "type": "address" + } + ], + "name": "ProtectedDataTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "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": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "ADD_ONLY_APP_WHITELIST_REGISTRY", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "addProtectedDataToCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "buyProtectedData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "collectionDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "size", + "type": "uint256" + }, + { + "internalType": "uint48", + "name": "lastSubscriptionExpiration", + "type": "uint48" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "_workerpoolOrder", + "type": "tuple" + }, + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "consumeProtectedData", + "outputs": [ + { + "internalType": "bytes32", + "name": "dealid", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "createCollection", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "earning", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_subscriberAddress", + "type": "address" + } + ], + "name": "getCollectionSubscriber", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_renterAddress", + "type": "address" + } + ], + "name": "getProtectedDataRenter", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "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": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "protectedDataDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "collection", + "type": "uint256" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "addOnlyAppWhitelist", + "type": "address" + }, + { + "internalType": "uint48", + "name": "lastRentalExpiration", + "type": "uint48" + }, + { + "internalType": "bool", + "name": "inSubscription", + "type": "bool" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "bool", + "name": "isForSale", + "type": "bool" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "internalType": "struct ISale.SellingParams", + "name": "sellingParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_extraData", + "type": "bytes" + } + ], + "name": "receiveApproval", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "rentProtectedData", + "outputs": [ + { + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "setProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "setProtectedDataToRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "setProtectedDataToSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "setSubscriptionParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "subscribeToCollection", + "outputs": [ + { + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "iexecResultStorageProvider_", + "type": "string" + } + ], + "name": "updateEnv", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60e06040523480156200001157600080fd5b50604051620049a2380380620049a283398101604081905262000034916200012e565b6001600160a01b0383166080526200004b62000064565b6001600160a01b0391821660c0521660a0525062000182565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000b55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001155780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6001600160a01b03811681146200011557600080fd5b6000806000606084860312156200014457600080fd5b8351620001518162000118565b6020850151909350620001648162000118565b6040850151909250620001778162000118565b809150509250925092565b60805160a05160c0516147956200020d60003960008181610b960152818161144f01528181611c5201528181611cf101528181611d920152611f8c0152600081816104ca0152610b0b015260008181610ff9015281816115af01528181611e3001528181611fea015281816122b7015281816124fe01528181612ab20152612cf001526147956000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingProxy.dbg.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingProxy.dbg.json new file mode 100644 index 000000000..23a5e83e3 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/72a96bb375f864053660a4559ce8904a.json" +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingProxy.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingProxy.json new file mode 100644 index 000000000..b71979fd9 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorSharingModule#DataProtectorSharingProxy.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": "0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/build-info/72a96bb375f864053660a4559ce8904a.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/build-info/72a96bb375f864053660a4559ce8904a.json new file mode 100644 index 000000000..33851a396 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/build-info/72a96bb375f864053660a4559ce8904a.json @@ -0,0 +1,230850 @@ +{ + "id": "72a96bb375f864053660a4559ce8904a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.24", + "solcLongVersion": "0.8.24+commit.e11b9ed9", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"@openzeppelin/contracts/access/IAccessControl.sol\";\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {ERC165Upgradeable} from \"../utils/introspection/ERC165Upgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControlUpgradeable is Initializable, ContextUpgradeable, IAccessControl, ERC165Upgradeable {\n struct RoleData {\n mapping(address account => bool) hasRole;\n bytes32 adminRole;\n }\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n\n /// @custom:storage-location erc7201:openzeppelin.storage.AccessControl\n struct AccessControlStorage {\n mapping(bytes32 role => RoleData) _roles;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.AccessControl\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant AccessControlStorageLocation = 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800;\n\n function _getAccessControlStorage() private pure returns (AccessControlStorage storage $) {\n assembly {\n $.slot := AccessControlStorageLocation\n }\n }\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with an {AccessControlUnauthorizedAccount} error including the required role.\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n function __AccessControl_init() internal onlyInitializing {\n }\n\n function __AccessControl_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n AccessControlStorage storage $ = _getAccessControlStorage();\n return $._roles[role].hasRole[account];\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n * is missing `role`.\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert AccessControlUnauthorizedAccount(account, role);\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n AccessControlStorage storage $ = _getAccessControlStorage();\n return $._roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n if (callerConfirmation != _msgSender()) {\n revert AccessControlBadConfirmation();\n }\n\n _revokeRole(role, callerConfirmation);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n AccessControlStorage storage $ = _getAccessControlStorage();\n bytes32 previousAdminRole = getRoleAdmin(role);\n $._roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n AccessControlStorage storage $ = _getAccessControlStorage();\n if (!hasRole(role, account)) {\n $._roles[role].hasRole[account] = true;\n emit RoleGranted(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Attempts to revoke `role` from `account` and returns a boolean indicating if `role` was revoked.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n AccessControlStorage storage $ = _getAccessControlStorage();\n if (hasRole(role, account)) {\n $._roles[role].hasRole[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\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/token/ERC721/ERC721Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport {IERC721Metadata} from \"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\";\nimport {ERC721Utils} from \"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\";\nimport {ContextUpgradeable} from \"../../utils/ContextUpgradeable.sol\";\nimport {Strings} from \"@openzeppelin/contracts/utils/Strings.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {ERC165Upgradeable} from \"../../utils/introspection/ERC165Upgradeable.sol\";\nimport {IERC721Errors} from \"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\nabstract contract ERC721Upgradeable is Initializable, ContextUpgradeable, ERC165Upgradeable, IERC721, IERC721Metadata, IERC721Errors {\n using Strings for uint256;\n\n /// @custom:storage-location erc7201:openzeppelin.storage.ERC721\n struct ERC721Storage {\n // Token name\n string _name;\n\n // Token symbol\n string _symbol;\n\n mapping(uint256 tokenId => address) _owners;\n\n mapping(address owner => uint256) _balances;\n\n mapping(uint256 tokenId => address) _tokenApprovals;\n\n mapping(address owner => mapping(address operator => bool)) _operatorApprovals;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.ERC721\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant ERC721StorageLocation = 0x80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300;\n\n function _getERC721Storage() private pure returns (ERC721Storage storage $) {\n assembly {\n $.slot := ERC721StorageLocation\n }\n }\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n function __ERC721_init(string memory name_, string memory symbol_) internal onlyInitializing {\n __ERC721_init_unchained(name_, symbol_);\n }\n\n function __ERC721_init_unchained(string memory name_, string memory symbol_) internal onlyInitializing {\n ERC721Storage storage $ = _getERC721Storage();\n $._name = name_;\n $._symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165Upgradeable, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual returns (uint256) {\n ERC721Storage storage $ = _getERC721Storage();\n if (owner == address(0)) {\n revert ERC721InvalidOwner(address(0));\n }\n return $._balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual returns (address) {\n return _requireOwned(tokenId);\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual returns (string memory) {\n ERC721Storage storage $ = _getERC721Storage();\n return $._name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual returns (string memory) {\n ERC721Storage storage $ = _getERC721Storage();\n return $._symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual returns (string memory) {\n _requireOwned(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string.concat(baseURI, tokenId.toString()) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual {\n _approve(to, tokenId, _msgSender());\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual returns (address) {\n _requireOwned(tokenId);\n\n return _getApproved(tokenId);\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual returns (bool) {\n ERC721Storage storage $ = _getERC721Storage();\n return $._operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n address previousOwner = _update(to, tokenId, _msgSender());\n if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual {\n transferFrom(from, to, tokenId);\n ERC721Utils.checkOnERC721Received(_msgSender(), from, to, tokenId, data);\n }\n\n /**\n * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n *\n * IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n * core ERC-721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n * consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n * `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`.\n */\n function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n ERC721Storage storage $ = _getERC721Storage();\n return $._owners[tokenId];\n }\n\n /**\n * @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted.\n */\n function _getApproved(uint256 tokenId) internal view virtual returns (address) {\n ERC721Storage storage $ = _getERC721Storage();\n return $._tokenApprovals[tokenId];\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n * particular (ignoring whether it is owned by `owner`).\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _isAuthorized(address owner, address spender, uint256 tokenId) internal view virtual returns (bool) {\n return\n spender != address(0) &&\n (owner == spender || isApprovedForAll(owner, spender) || _getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n * Reverts if:\n * - `spender` does not have approval from `owner` for `tokenId`.\n * - `spender` does not have approval to manage all of `owner`'s assets.\n *\n * WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n * assumption.\n */\n function _checkAuthorized(address owner, address spender, uint256 tokenId) internal view virtual {\n if (!_isAuthorized(owner, spender, tokenId)) {\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else {\n revert ERC721InsufficientApproval(spender, tokenId);\n }\n }\n }\n\n /**\n * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n *\n * NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n * a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n *\n * WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n * {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n * remain consistent with one another.\n */\n function _increaseBalance(address account, uint128 value) internal virtual {\n ERC721Storage storage $ = _getERC721Storage();\n unchecked {\n $._balances[account] += value;\n }\n }\n\n /**\n * @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n * (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that\n * `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n *\n * Emits a {Transfer} event.\n *\n * NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}.\n */\n function _update(address to, uint256 tokenId, address auth) internal virtual returns (address) {\n ERC721Storage storage $ = _getERC721Storage();\n address from = _ownerOf(tokenId);\n\n // Perform (optional) operator check\n if (auth != address(0)) {\n _checkAuthorized(from, auth, tokenId);\n }\n\n // Execute the update\n if (from != address(0)) {\n // Clear approval. No need to re-authorize or emit the Approval event\n _approve(address(0), tokenId, address(0), false);\n\n unchecked {\n $._balances[from] -= 1;\n }\n }\n\n if (to != address(0)) {\n unchecked {\n $._balances[to] += 1;\n }\n }\n\n $._owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n return from;\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner != address(0)) {\n revert ERC721InvalidSender(address(0));\n }\n }\n\n /**\n * @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n _mint(to, tokenId);\n ERC721Utils.checkOnERC721Received(_msgSender(), address(0), to, tokenId, data);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n * This is an internal function that does not check if the sender is authorized to operate on the token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal {\n address previousOwner = _update(address(0), tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal {\n if (to == address(0)) {\n revert ERC721InvalidReceiver(address(0));\n }\n address previousOwner = _update(to, tokenId, address(0));\n if (previousOwner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n } else if (previousOwner != from) {\n revert ERC721IncorrectOwner(from, tokenId, previousOwner);\n }\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n * are aware of the ERC-721 standard to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is like {safeTransferFrom} in the sense that it invokes\n * {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `tokenId` token must exist and be owned by `from`.\n * - `to` cannot be the zero address.\n * - `from` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId) internal {\n _safeTransfer(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n _transfer(from, to, tokenId);\n ERC721Utils.checkOnERC721Received(_msgSender(), from, to, tokenId, data);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n * either the owner of the token, or approved to operate on all tokens held by this owner.\n *\n * Emits an {Approval} event.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address to, uint256 tokenId, address auth) internal {\n _approve(to, tokenId, auth, true);\n }\n\n /**\n * @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n * emitted in the context of transfers.\n */\n function _approve(address to, uint256 tokenId, address auth, bool emitEvent) internal virtual {\n ERC721Storage storage $ = _getERC721Storage();\n // Avoid reading the owner unless necessary\n if (emitEvent || auth != address(0)) {\n address owner = _requireOwned(tokenId);\n\n // We do not use _isAuthorized because single-token approvals should not be able to call approve\n if (auth != address(0) && owner != auth && !isApprovedForAll(owner, auth)) {\n revert ERC721InvalidApprover(auth);\n }\n\n if (emitEvent) {\n emit Approval(owner, to, tokenId);\n }\n }\n\n $._tokenApprovals[tokenId] = to;\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Requirements:\n * - operator can't be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n ERC721Storage storage $ = _getERC721Storage();\n if (operator == address(0)) {\n revert ERC721InvalidOperator(operator);\n }\n $._operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n * Returns the owner.\n *\n * Overrides to ownership logic should be done to {_ownerOf}.\n */\n function _requireOwned(uint256 tokenId) internal view returns (address) {\n address owner = _ownerOf(tokenId);\n if (owner == address(0)) {\n revert ERC721NonexistentToken(tokenId);\n }\n return owner;\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/extensions/ERC721Burnable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC721Upgradeable} from \"../ERC721Upgradeable.sol\";\nimport {ContextUpgradeable} from \"../../../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../../../proxy/utils/Initializable.sol\";\n\n/**\n * @title ERC-721 Burnable Token\n * @dev ERC-721 Token that can be burned (destroyed).\n */\nabstract contract ERC721BurnableUpgradeable is Initializable, ContextUpgradeable, ERC721Upgradeable {\n function __ERC721Burnable_init() internal onlyInitializing {\n }\n\n function __ERC721Burnable_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev Burns `tokenId`. See {ERC721-_burn}.\n *\n * Requirements:\n *\n * - The caller must own `tokenId` or be an approved operator.\n */\n function burn(uint256 tokenId) public virtual {\n // Setting an \"auth\" arguments enables the `_isAuthorized` check which verifies that the token exists\n // (from != 0). Therefore, it is not needed to verify that the return value is not 0 here.\n _update(address(0), tokenId, _msgSender());\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/introspection/ERC165Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165Upgradeable is Initializable, IERC165 {\n function __ERC165_init() internal onlyInitializing {\n }\n\n function __ERC165_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\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/access/IAccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC-165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted to signal this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n" + }, + "@openzeppelin/contracts/access/Ownable.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 {Context} from \"../utils/Context.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 Ownable is Context {\n address private _owner;\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 constructor(address initialOwner) {\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 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 address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC1967.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n */\ninterface IERC1967 {\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Emitted when the beacon is changed.\n */\n event BeaconUpgraded(address indexed beacon);\n}\n" + }, + "@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n /**\n * @dev Must return an address that can be used as a delegate call target.\n *\n * {UpgradeableBeacon} will check that this address is a contract.\n */\n function implementation() external view returns (address);\n}\n" + }, + "@openzeppelin/contracts/proxy/Clones.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (proxy/Clones.sol)\n\npragma solidity ^0.8.20;\n\nimport {Create2} from \"../utils/Create2.sol\";\nimport {Errors} from \"../utils/Errors.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-1167[ERC-1167] is a standard for\n * deploying minimal proxy contracts, also known as \"clones\".\n *\n * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies\n * > a minimal bytecode implementation that delegates all calls to a known, fixed address.\n *\n * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`\n * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the\n * deterministic method.\n */\nlibrary Clones {\n error CloneArgumentsTooLong();\n\n /**\n * @dev Deploys and returns the address of a clone that mimics the behavior of `implementation`.\n *\n * This function uses the create opcode, which should never revert.\n */\n function clone(address implementation) internal returns (address instance) {\n return clone(implementation, 0);\n }\n\n /**\n * @dev Same as {xref-Clones-clone-address-}[clone], but with a `value` parameter to send native currency\n * to the new contract.\n *\n * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n * to always have enough balance for new deployments. Consider exposing this function under a payable method.\n */\n function clone(address implementation, uint256 value) internal returns (address instance) {\n if (address(this).balance < value) {\n revert Errors.InsufficientBalance(address(this).balance, value);\n }\n assembly (\"memory-safe\") {\n // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes\n // of the `implementation` address with the bytecode before the address.\n mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))\n // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.\n mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))\n instance := create(value, 0x09, 0x37)\n }\n if (instance == address(0)) {\n revert Errors.FailedDeployment();\n }\n }\n\n /**\n * @dev Deploys and returns the address of a clone that mimics the behavior of `implementation`.\n *\n * This function uses the create2 opcode and a `salt` to deterministically deploy\n * the clone. Using the same `implementation` and `salt` multiple times will revert, since\n * the clones cannot be deployed twice at the same address.\n */\n function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {\n return cloneDeterministic(implementation, salt, 0);\n }\n\n /**\n * @dev Same as {xref-Clones-cloneDeterministic-address-bytes32-}[cloneDeterministic], but with\n * a `value` parameter to send native currency to the new contract.\n *\n * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n * to always have enough balance for new deployments. Consider exposing this function under a payable method.\n */\n function cloneDeterministic(\n address implementation,\n bytes32 salt,\n uint256 value\n ) internal returns (address instance) {\n if (address(this).balance < value) {\n revert Errors.InsufficientBalance(address(this).balance, value);\n }\n assembly (\"memory-safe\") {\n // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes\n // of the `implementation` address with the bytecode before the address.\n mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))\n // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.\n mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))\n instance := create2(value, 0x09, 0x37, salt)\n }\n if (instance == address(0)) {\n revert Errors.FailedDeployment();\n }\n }\n\n /**\n * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.\n */\n function predictDeterministicAddress(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n mstore(add(ptr, 0x38), deployer)\n mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)\n mstore(add(ptr, 0x14), implementation)\n mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)\n mstore(add(ptr, 0x58), salt)\n mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))\n predicted := and(keccak256(add(ptr, 0x43), 0x55), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n }\n\n /**\n * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.\n */\n function predictDeterministicAddress(\n address implementation,\n bytes32 salt\n ) internal view returns (address predicted) {\n return predictDeterministicAddress(implementation, salt, address(this));\n }\n\n /**\n * @dev Deploys and returns the address of a clone that mimics the behavior of `implementation` with custom\n * immutable arguments. These are provided through `args` and cannot be changed after deployment. To\n * access the arguments within the implementation, use {fetchCloneArgs}.\n *\n * This function uses the create opcode, which should never revert.\n */\n function cloneWithImmutableArgs(address implementation, bytes memory args) internal returns (address instance) {\n return cloneWithImmutableArgs(implementation, args, 0);\n }\n\n /**\n * @dev Same as {xref-Clones-cloneWithImmutableArgs-address-bytes-}[cloneWithImmutableArgs], but with a `value`\n * parameter to send native currency to the new contract.\n *\n * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n * to always have enough balance for new deployments. Consider exposing this function under a payable method.\n */\n function cloneWithImmutableArgs(\n address implementation,\n bytes memory args,\n uint256 value\n ) internal returns (address instance) {\n if (address(this).balance < value) {\n revert Errors.InsufficientBalance(address(this).balance, value);\n }\n bytes memory bytecode = _cloneCodeWithImmutableArgs(implementation, args);\n assembly (\"memory-safe\") {\n instance := create(value, add(bytecode, 0x20), mload(bytecode))\n }\n if (instance == address(0)) {\n revert Errors.FailedDeployment();\n }\n }\n\n /**\n * @dev Deploys and returns the address of a clone that mimics the behavior of `implementation` with custom\n * immutable arguments. These are provided through `args` and cannot be changed after deployment. To\n * access the arguments within the implementation, use {fetchCloneArgs}.\n *\n * This function uses the create2 opcode and a `salt` to deterministically deploy the clone. Using the same\n * `implementation`, `args` and `salt` multiple times will revert, since the clones cannot be deployed twice\n * at the same address.\n */\n function cloneDeterministicWithImmutableArgs(\n address implementation,\n bytes memory args,\n bytes32 salt\n ) internal returns (address instance) {\n return cloneDeterministicWithImmutableArgs(implementation, args, salt, 0);\n }\n\n /**\n * @dev Same as {xref-Clones-cloneDeterministicWithImmutableArgs-address-bytes-bytes32-}[cloneDeterministicWithImmutableArgs],\n * but with a `value` parameter to send native currency to the new contract.\n *\n * NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n * to always have enough balance for new deployments. Consider exposing this function under a payable method.\n */\n function cloneDeterministicWithImmutableArgs(\n address implementation,\n bytes memory args,\n bytes32 salt,\n uint256 value\n ) internal returns (address instance) {\n bytes memory bytecode = _cloneCodeWithImmutableArgs(implementation, args);\n return Create2.deploy(value, salt, bytecode);\n }\n\n /**\n * @dev Computes the address of a clone deployed using {Clones-cloneDeterministicWithImmutableArgs}.\n */\n function predictDeterministicAddressWithImmutableArgs(\n address implementation,\n bytes memory args,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes memory bytecode = _cloneCodeWithImmutableArgs(implementation, args);\n return Create2.computeAddress(salt, keccak256(bytecode), deployer);\n }\n\n /**\n * @dev Computes the address of a clone deployed using {Clones-cloneDeterministicWithImmutableArgs}.\n */\n function predictDeterministicAddressWithImmutableArgs(\n address implementation,\n bytes memory args,\n bytes32 salt\n ) internal view returns (address predicted) {\n return predictDeterministicAddressWithImmutableArgs(implementation, args, salt, address(this));\n }\n\n /**\n * @dev Get the immutable args attached to a clone.\n *\n * - If `instance` is a clone that was deployed using `clone` or `cloneDeterministic`, this\n * function will return an empty array.\n * - If `instance` is a clone that was deployed using `cloneWithImmutableArgs` or\n * `cloneDeterministicWithImmutableArgs`, this function will return the args array used at\n * creation.\n * - If `instance` is NOT a clone deployed using this library, the behavior is undefined. This\n * function should only be used to check addresses that are known to be clones.\n */\n function fetchCloneArgs(address instance) internal view returns (bytes memory) {\n bytes memory result = new bytes(instance.code.length - 45); // revert if length is too short\n assembly (\"memory-safe\") {\n extcodecopy(instance, add(result, 32), 45, mload(result))\n }\n return result;\n }\n\n /**\n * @dev Helper that prepares the initcode of the proxy with immutable args.\n *\n * An assembly variant of this function requires copying the `args` array, which can be efficiently done using\n * `mcopy`. Unfortunately, that opcode is not available before cancun. A pure solidity implementation using\n * abi.encodePacked is more expensive but also more portable and easier to review.\n *\n * NOTE: https://eips.ethereum.org/EIPS/eip-170[EIP-170] limits the length of the contract code to 24576 bytes.\n * With the proxy code taking 45 bytes, that limits the length of the immutable args to 24531 bytes.\n */\n function _cloneCodeWithImmutableArgs(\n address implementation,\n bytes memory args\n ) private pure returns (bytes memory) {\n if (args.length > 24531) revert CloneArgumentsTooLong();\n return\n abi.encodePacked(\n hex\"61\",\n uint16(args.length + 45),\n hex\"3d81600a3d39f3363d3d373d3d3d363d73\",\n implementation,\n hex\"5af43d82803e903d91602b57fd5bf3\",\n args\n );\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.2.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.22;\n\nimport {Proxy} from \"../Proxy.sol\";\nimport {ERC1967Utils} from \"./ERC1967Utils.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n constructor(address implementation, bytes memory _data) payable {\n ERC1967Utils.upgradeToAndCall(implementation, _data);\n }\n\n /**\n * @dev Returns the current implementation address.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n */\n function _implementation() internal view virtual override returns (address) {\n return ERC1967Utils.getImplementation();\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.2.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.22;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This library provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\n */\nlibrary ERC1967Utils {\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev The `implementation` of the proxy is invalid.\n */\n error ERC1967InvalidImplementation(address implementation);\n\n /**\n * @dev The `admin` of the proxy is invalid.\n */\n error ERC1967InvalidAdmin(address admin);\n\n /**\n * @dev The `beacon` of the proxy is invalid.\n */\n error ERC1967InvalidBeacon(address beacon);\n\n /**\n * @dev An upgrade function sees `msg.value > 0` that may be lost.\n */\n error ERC1967NonPayable();\n\n /**\n * @dev Returns the current implementation address.\n */\n function getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the ERC-1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n if (newImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(newImplementation);\n }\n StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Performs implementation upgrade with additional setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-Upgraded} event.\n */\n function upgradeToAndCall(address newImplementation, bytes memory data) internal {\n _setImplementation(newImplementation);\n emit IERC1967.Upgraded(newImplementation);\n\n if (data.length > 0) {\n Address.functionDelegateCall(newImplementation, data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Returns the current admin.\n *\n * TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n */\n function getAdmin() internal view returns (address) {\n return StorageSlot.getAddressSlot(ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the ERC-1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n if (newAdmin == address(0)) {\n revert ERC1967InvalidAdmin(address(0));\n }\n StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {IERC1967-AdminChanged} event.\n */\n function changeAdmin(address newAdmin) internal {\n emit IERC1967.AdminChanged(getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n */\n // solhint-disable-next-line private-vars-leading-underscore\n bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Returns the current beacon.\n */\n function getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the ERC-1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n if (newBeacon.code.length == 0) {\n revert ERC1967InvalidBeacon(newBeacon);\n }\n\n StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;\n\n address beaconImplementation = IBeacon(newBeacon).implementation();\n if (beaconImplementation.code.length == 0) {\n revert ERC1967InvalidImplementation(beaconImplementation);\n }\n }\n\n /**\n * @dev Change the beacon and trigger a setup call if data is nonempty.\n * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n * to avoid stuck value in the contract.\n *\n * Emits an {IERC1967-BeaconUpgraded} event.\n *\n * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n * efficiency.\n */\n function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal {\n _setBeacon(newBeacon);\n emit IERC1967.BeaconUpgraded(newBeacon);\n\n if (data.length > 0) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n } else {\n _checkNonPayable();\n }\n }\n\n /**\n * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n * if an upgrade doesn't perform an initialization call.\n */\n function _checkNonPayable() private {\n if (msg.value > 0) {\n revert ERC1967NonPayable();\n }\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/Proxy.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _delegate(address implementation) internal virtual {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n /**\n * @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n * function and {_fallback} should delegate.\n */\n function _implementation() internal view virtual returns (address);\n\n /**\n * @dev Delegates the current call to the address returned by `_implementation()`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _fallback() internal virtual {\n _delegate(_implementation());\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n * function in the contract matches the call data.\n */\n fallback() external payable virtual {\n _fallback();\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.2.0) (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.22;\n\nimport {ITransparentUpgradeableProxy} from \"./TransparentUpgradeableProxy.sol\";\nimport {Ownable} from \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n /**\n * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)`\n * and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n * while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n * If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third argument must\n * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n * during an upgrade.\n */\n string public constant UPGRADE_INTERFACE_VERSION = \"5.0.0\";\n\n /**\n * @dev Sets the initial owner who can perform upgrades.\n */\n constructor(address initialOwner) Ownable(initialOwner) {}\n\n /**\n * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n * See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n *\n * Requirements:\n *\n * - This contract must be the admin of `proxy`.\n * - If `data` is empty, `msg.value` must be zero.\n */\n function upgradeAndCall(\n ITransparentUpgradeableProxy proxy,\n address implementation,\n bytes memory data\n ) public payable virtual onlyOwner {\n proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n }\n}\n" + }, + "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.2.0) (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.22;\n\nimport {ERC1967Utils} from \"../ERC1967/ERC1967Utils.sol\";\nimport {ERC1967Proxy} from \"../ERC1967/ERC1967Proxy.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {ProxyAdmin} from \"./ProxyAdmin.sol\";\n\n/**\n * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n * does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n * include them in the ABI so this interface must be used to interact with it.\n */\ninterface ITransparentUpgradeableProxy is IERC1967 {\n /// @dev See {UUPSUpgradeable-upgradeToAndCall}\n function upgradeToAndCall(address newImplementation, bytes calldata data) external payable;\n}\n\n/**\n * @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n * the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n * the proxy admin cannot fallback to the target implementation.\n *\n * These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n * dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n * call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n * allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n * interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n *\n * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n * inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n * implementation.\n *\n * NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n * meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n *\n * IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n * immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n * overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n * undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot\n * is generally fine if the implementation is trusted.\n *\n * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n * compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n * function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n * could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n // An immutable address for the admin to avoid unnecessary SLOADs before each call\n // at the expense of removing the ability to change the admin once it's set.\n // This is acceptable if the admin is always a ProxyAdmin instance or similar contract\n // with its own ability to transfer the permissions to another account.\n address private immutable _admin;\n\n /**\n * @dev The proxy caller is the current admin, and can't fallback to the proxy target.\n */\n error ProxyDeniedAdminAccess();\n\n /**\n * @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n * backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n * {ERC1967Proxy-constructor}.\n */\n constructor(address _logic, address initialOwner, bytes memory _data) payable ERC1967Proxy(_logic, _data) {\n _admin = address(new ProxyAdmin(initialOwner));\n // Set the storage value and emit an event for ERC-1967 compatibility\n ERC1967Utils.changeAdmin(_proxyAdmin());\n }\n\n /**\n * @dev Returns the admin of this proxy.\n */\n function _proxyAdmin() internal view virtual returns (address) {\n return _admin;\n }\n\n /**\n * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior.\n */\n function _fallback() internal virtual override {\n if (msg.sender == _proxyAdmin()) {\n if (msg.sig != ITransparentUpgradeableProxy.upgradeToAndCall.selector) {\n revert ProxyDeniedAdminAccess();\n } else {\n _dispatchUpgradeToAndCall();\n }\n } else {\n super._fallback();\n }\n }\n\n /**\n * @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n *\n * Requirements:\n *\n * - If `data` is empty, `msg.value` must be zero.\n */\n function _dispatchUpgradeToAndCall() private {\n (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));\n ERC1967Utils.upgradeToAndCall(newImplementation, data);\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721} from \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC-721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC-721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n * {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n * a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721\n * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n * understand this adds an external call which potentially creates a reentrancy vulnerability.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the address zero.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @title ERC-721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC-721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n * reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/utils/ERC721Holder.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721Receiver} from \"../IERC721Receiver.sol\";\n\n/**\n * @dev Implementation of the {IERC721Receiver} interface.\n *\n * Accepts all token transfers.\n * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or\n * {IERC721-setApprovalForAll}.\n */\nabstract contract ERC721Holder is IERC721Receiver {\n /**\n * @dev See {IERC721Receiver-onERC721Received}.\n *\n * Always returns `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(address, address, uint256, bytes memory) public virtual returns (bytes4) {\n return this.onERC721Received.selector;\n }\n}\n" + }, + "@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (token/ERC721/utils/ERC721Utils.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC721Receiver} from \"../IERC721Receiver.sol\";\nimport {IERC721Errors} from \"../../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Library that provide common ERC-721 utility functions.\n *\n * See https://eips.ethereum.org/EIPS/eip-721[ERC-721].\n *\n * _Available since v5.1._\n */\nlibrary ERC721Utils {\n /**\n * @dev Performs an acceptance check for the provided `operator` by calling {IERC721Receiver-onERC721Received}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC721Receiver-onERC721Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC721Received(\n address operator,\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC721Receiver(to).onERC721Received(operator, from, tokenId, data) returns (bytes4 retval) {\n if (retval != IERC721Receiver.onERC721Received.selector) {\n // Token rejected\n revert IERC721Errors.ERC721InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC721Receiver implementer\n revert IERC721Errors.ERC721InvalidReceiver(to);\n } else {\n assembly (\"memory-safe\") {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\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/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\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 Context {\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/utils/Create2.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Create2.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n * `CREATE2` can be used to compute in advance the address where a smart\n * contract will be deployed, which allows for interesting new mechanisms known\n * as 'counterfactual interactions'.\n *\n * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n * information.\n */\nlibrary Create2 {\n /**\n * @dev There's no code to deploy.\n */\n error Create2EmptyBytecode();\n\n /**\n * @dev Deploys a contract using `CREATE2`. The address where the contract\n * will be deployed can be known in advance via {computeAddress}.\n *\n * The bytecode for a contract can be obtained from Solidity with\n * `type(contractName).creationCode`.\n *\n * Requirements:\n *\n * - `bytecode` must not be empty.\n * - `salt` must have not been used for `bytecode` already.\n * - the factory must have a balance of at least `amount`.\n * - if `amount` is non-zero, `bytecode` must have a `payable` constructor.\n */\n function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) {\n if (address(this).balance < amount) {\n revert Errors.InsufficientBalance(address(this).balance, amount);\n }\n if (bytecode.length == 0) {\n revert Create2EmptyBytecode();\n }\n assembly (\"memory-safe\") {\n addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)\n // if no address was created, and returndata is not empty, bubble revert\n if and(iszero(addr), not(iszero(returndatasize()))) {\n let p := mload(0x40)\n returndatacopy(p, 0, returndatasize())\n revert(p, returndatasize())\n }\n }\n if (addr == address(0)) {\n revert Errors.FailedDeployment();\n }\n }\n\n /**\n * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n * `bytecodeHash` or `salt` will result in a new destination address.\n */\n function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {\n return computeAddress(salt, bytecodeHash, address(this));\n }\n\n /**\n * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.\n */\n function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) {\n assembly (\"memory-safe\") {\n let ptr := mload(0x40) // Get free memory pointer\n\n // | | ↓ ptr ... ↓ ptr + 0x0B (start) ... ↓ ptr + 0x20 ... ↓ ptr + 0x40 ... |\n // |-------------------|---------------------------------------------------------------------------|\n // | bytecodeHash | CCCCCCCCCCCCC...CC |\n // | salt | BBBBBBBBBBBBB...BB |\n // | deployer | 000000...0000AAAAAAAAAAAAAAAAAAA...AA |\n // | 0xFF | FF |\n // |-------------------|---------------------------------------------------------------------------|\n // | memory | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |\n // | keccak(start, 85) | ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |\n\n mstore(add(ptr, 0x40), bytecodeHash)\n mstore(add(ptr, 0x20), salt)\n mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes\n let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff\n mstore8(start, 0xff)\n addr := and(keccak256(start, 85), 0xffffffffffffffffffffffffffffffffffffffff)\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/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\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/StorageSlot.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct Int256Slot {\n int256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := store.slot\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" + }, + "@openzeppelin/contracts/utils/structs/BitMaps.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/BitMaps.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for managing uint256 to bool mapping in a compact and efficient way, provided the keys are sequential.\n * Largely inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor].\n *\n * BitMaps pack 256 booleans across each bit of a single 256-bit slot of `uint256` type.\n * Hence booleans corresponding to 256 _sequential_ indices would only consume a single slot,\n * unlike the regular `bool` which would consume an entire slot for a single value.\n *\n * This results in gas savings in two ways:\n *\n * - Setting a zero value to non-zero only once every 256 times\n * - Accessing the same warm slot for every 256 _sequential_ indices\n */\nlibrary BitMaps {\n struct BitMap {\n mapping(uint256 bucket => uint256) _data;\n }\n\n /**\n * @dev Returns whether the bit at `index` is set.\n */\n function get(BitMap storage bitmap, uint256 index) internal view returns (bool) {\n uint256 bucket = index >> 8;\n uint256 mask = 1 << (index & 0xff);\n return bitmap._data[bucket] & mask != 0;\n }\n\n /**\n * @dev Sets the bit at `index` to the boolean `value`.\n */\n function setTo(BitMap storage bitmap, uint256 index, bool value) internal {\n if (value) {\n set(bitmap, index);\n } else {\n unset(bitmap, index);\n }\n }\n\n /**\n * @dev Sets the bit at `index`.\n */\n function set(BitMap storage bitmap, uint256 index) internal {\n uint256 bucket = index >> 8;\n uint256 mask = 1 << (index & 0xff);\n bitmap._data[bucket] |= mask;\n }\n\n /**\n * @dev Unsets the bit at `index`.\n */\n function unset(BitMap storage bitmap, uint256 index) internal {\n uint256 bucket = index >> 8;\n uint256 mask = 1 << (index & 0xff);\n bitmap._data[bucket] &= ~mask;\n }\n}\n" + }, + "contracts/DataProtectorSharing.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024-2025 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {ERC721BurnableUpgradeable, ERC721Upgradeable} from \"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\";\nimport {AccessControlUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\";\nimport {Initializable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport {MulticallUpgradeable} from \"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\";\nimport {ERC721Holder} from \"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\";\nimport {Math} from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport {IDataProtectorSharing, IexecLibOrders_v5, ICollection, ISubscription, IRental, ISale} from \"./interfaces/IDataProtectorSharing.sol\";\nimport {AddOnlyAppWhitelistRegistry, IAddOnlyAppWhitelist} from \"./registry/AddOnlyAppWhitelistRegistry.sol\";\nimport {ManageOrders} from \"./ManageOrders.sol\";\nimport {IRegistry} from \"./interfaces/IRegistry.sol\";\n\n/// @custom:oz-upgrades-unsafe-allow state-variable-immutable\ncontract DataProtectorSharing is\n Initializable,\n ERC721BurnableUpgradeable,\n MulticallUpgradeable,\n ERC721Holder,\n ManageOrders,\n AccessControlUpgradeable,\n IDataProtectorSharing\n{\n using Math for uint48;\n // ---------------------Collection state------------------------------------\n\n AddOnlyAppWhitelistRegistry public immutable ADD_ONLY_APP_WHITELIST_REGISTRY;\n IRegistry internal immutable PROTECTED_DATA_REGISTRY;\n uint256 private _nextCollectionTokenId;\n\n // userAddress => earning\n mapping(address => uint256) public earning;\n // protectedDataAddress => ProtectedDataDetails\n mapping(address => ProtectedDataDetails) public protectedDataDetails;\n // collectionTokenId => ProtectedDataDetails\n mapping(uint256 => CollectionDetails) public collectionDetails;\n\n /***************************************************************************\n * Constructor *\n **************************************************************************/\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor(\n address _proxy,\n IRegistry protectedDataRegistry_,\n AddOnlyAppWhitelistRegistry addOnlyAppWhitelistRegistry_\n ) ManageOrders(_proxy) {\n _disableInitializers();\n PROTECTED_DATA_REGISTRY = protectedDataRegistry_;\n ADD_ONLY_APP_WHITELIST_REGISTRY = addOnlyAppWhitelistRegistry_;\n }\n\n function initialize() public initializer {\n __ERC721_init(\"iExec DataProtectorSharing\", \"iExecDataProtectorSharing\");\n __ERC721Burnable_init();\n __AccessControl_init();\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n\n updateEnv(\"ipfs\");\n }\n\n /***************************************************************************\n * preflight check *\n **************************************************************************/\n function _checkCollectionOperator(uint256 _collectionTokenId) internal view {\n if (!_isAuthorized(ownerOf(_collectionTokenId), msg.sender, _collectionTokenId)) {\n revert NotCollectionOperator(_collectionTokenId);\n }\n }\n\n function _checkProtectedDataOperator(address _protectedData) internal view {\n uint256 protectedDataTokenId = uint256(uint160(_protectedData));\n address owner = PROTECTED_DATA_REGISTRY.ownerOf(protectedDataTokenId);\n\n if (\n !(msg.sender == owner ||\n PROTECTED_DATA_REGISTRY.getApproved(protectedDataTokenId) == msg.sender ||\n PROTECTED_DATA_REGISTRY.isApprovedForAll(owner, msg.sender))\n ) {\n revert NotAnOwnerOrApprovedOperator();\n }\n }\n\n function _checkCollectionNotSubscribed(uint256 _collectionTokenId) internal view {\n if (collectionDetails[_collectionTokenId].lastSubscriptionExpiration >= block.timestamp) {\n revert OnGoingCollectionSubscriptions(_collectionTokenId);\n }\n }\n\n function _checkProtectedDataNotRented(address _protectedData) internal view {\n if (protectedDataDetails[_protectedData].lastRentalExpiration >= block.timestamp) {\n revert ProtectedDataCurrentlyBeingRented(_protectedData);\n }\n }\n\n function _checkProtectedDataNotForSale(address _protectedData) internal view {\n if (protectedDataDetails[_protectedData].sellingParams.isForSale) {\n revert ProtectedDataForSale(_protectedData);\n }\n }\n\n function _checkProtectedDataForSale(address _protectedData) internal view {\n if (!protectedDataDetails[_protectedData].sellingParams.isForSale) {\n revert ProtectedDataNotForSale(_protectedData);\n }\n }\n\n function _checkAndGetConsumeProtectedDataMode(\n address _protectedData,\n IexecLibOrders_v5.WorkerpoolOrder calldata _workerpoolOrder\n ) internal view returns (Mode) {\n if (_workerpoolOrder.workerpoolprice > 0) {\n revert WorkerpoolOrderNotFree(_workerpoolOrder);\n }\n\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 collectionTokenId = _protectedDataDetails.collection;\n if (_protectedDataDetails.renters[msg.sender] >= block.timestamp) {\n return Mode.RENTING;\n } else if (\n collectionTokenId != 0 &&\n _protectedDataDetails.inSubscription &&\n collectionDetails[collectionTokenId].subscribers[msg.sender] >= block.timestamp\n ) {\n return Mode.SUBSCRIPTION;\n } else {\n revert NoValidRentalOrSubscription(collectionTokenId, _protectedData);\n }\n }\n\n /***************************************************************************\n * Functions *\n **************************************************************************/\n /// @inheritdoc IDataProtectorSharing\n function consumeProtectedData(\n address _protectedData,\n IexecLibOrders_v5.WorkerpoolOrder calldata _workerpoolOrder,\n address _app\n ) external returns (bytes32 dealid) {\n Mode _mode = _checkAndGetConsumeProtectedDataMode(_protectedData, _workerpoolOrder);\n IexecLibOrders_v5.DatasetOrder memory _datasetOrder = _createDatasetOrder(\n _protectedData,\n address(protectedDataDetails[_protectedData].addOnlyAppWhitelist)\n );\n IexecLibOrders_v5.AppOrder memory _appOrder = _createPreSignAppOrder(_app);\n IexecLibOrders_v5.RequestOrder memory requestOrder = _createPreSignRequestOrder(\n _protectedData,\n _app,\n _workerpoolOrder.workerpool,\n _workerpoolOrder.category\n );\n\n dealid = POCO_DELEGATE.matchOrders(\n _appOrder,\n _datasetOrder,\n _workerpoolOrder,\n requestOrder\n );\n emit ProtectedDataConsumed(dealid, _protectedData, _mode);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(ERC721Upgradeable, AccessControlUpgradeable) returns (bool) {\n return super.supportsInterface(interfaceId);\n }\n\n // Overide burn function from ERC721BurnableUpgradeable.\n // Enable to burn a collectionTokenID.\n function _update(\n address to,\n uint256 _collectionTokenId,\n address auth\n ) internal virtual override returns (address) {\n CollectionDetails storage _collectionDetails = collectionDetails[_collectionTokenId];\n if (to == address(0)) {\n if (_collectionDetails.size > 0) {\n revert CollectionNotEmpty(_collectionTokenId);\n }\n if (_collectionDetails.lastSubscriptionExpiration > block.timestamp) {\n revert OnGoingCollectionSubscriptions(_collectionTokenId);\n }\n }\n return super._update(to, _collectionTokenId, auth);\n }\n\n /// @inheritdoc IDataProtectorSharing\n function getProtectedDataRenter(\n address _protectedData,\n address _renterAddress\n ) public view returns (uint48) {\n return protectedDataDetails[_protectedData].renters[_renterAddress];\n }\n\n /// @inheritdoc IDataProtectorSharing\n function getCollectionSubscriber(\n uint256 _collectionTokenId,\n address _subscriberAddress\n ) public view returns (uint48) {\n return collectionDetails[_collectionTokenId].subscribers[_subscriberAddress];\n }\n\n /// @inheritdoc IDataProtectorSharing\n function receiveApproval(\n address _sender,\n uint256,\n address,\n bytes calldata _extraData\n ) public returns (bool) {\n if (msg.sender != address(POCO_DELEGATE)) {\n revert OnlyPocoCallerAuthorized(msg.sender);\n }\n if (_extraData.length == 0) {\n revert EmptyCallData();\n }\n bytes4 selector = bytes4(_extraData[:4]);\n\n if (selector == this.subscribeToCollection.selector) {\n (uint256 collectionTokenId, SubscriptionParams memory subscriptionParams) = abi.decode(\n _extraData[4:],\n (uint256, SubscriptionParams)\n );\n _subscribeToCollection(collectionTokenId, _sender, subscriptionParams);\n return true;\n } else if (selector == this.rentProtectedData.selector) {\n (address protectedData, RentingParams memory rentingParams) = abi.decode(\n _extraData[4:],\n (address, RentingParams)\n );\n _rentProtectedData(protectedData, _sender, rentingParams);\n return true;\n } else if (selector == this.buyProtectedData.selector) {\n (address protectedData, address to, uint72 price) = abi.decode(\n _extraData[4:],\n (address, address, uint72)\n );\n _buyProtectedData(protectedData, _sender, to, price);\n return true;\n }\n\n return false;\n }\n\n /***************************************************************************\n * Admin *\n **************************************************************************/\n function updateEnv(\n string memory iexecResultStorageProvider_\n ) public onlyRole(DEFAULT_ADMIN_ROLE) {\n _iexecResultStorageProvider = iexecResultStorageProvider_;\n }\n\n /***************************************************************************\n * Collection *\n **************************************************************************/\n /// @inheritdoc ICollection\n function createCollection(address _to) public returns (uint256) {\n uint256 tokenId = ++_nextCollectionTokenId; // collection with tokenId 0 is forbiden\n _safeMint(_to, tokenId);\n return tokenId;\n }\n\n /// @inheritdoc ICollection\n function addProtectedDataToCollection(\n uint256 _collectionTokenId,\n address _protectedData,\n IAddOnlyAppWhitelist _appWhitelist\n ) public {\n _checkCollectionOperator(_collectionTokenId);\n _checkProtectedDataOperator(_protectedData);\n\n ADD_ONLY_APP_WHITELIST_REGISTRY.ownerOf(uint256(uint160(address(_appWhitelist))));\n PROTECTED_DATA_REGISTRY.safeTransferFrom(\n PROTECTED_DATA_REGISTRY.ownerOf(uint256(uint160(_protectedData))),\n address(this),\n uint256(uint160(_protectedData))\n );\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n _protectedDataDetails.addOnlyAppWhitelist = _appWhitelist;\n _protectedDataDetails.collection = _collectionTokenId;\n collectionDetails[_collectionTokenId].size += 1;\n\n _createPreSignDatasetOrder(_protectedData, address(_appWhitelist));\n emit ProtectedDataTransfer(_protectedData, _collectionTokenId, 0, address(_appWhitelist));\n }\n\n /// @inheritdoc ICollection\n function removeProtectedDataFromCollection(address _protectedData) public {\n uint256 _collectionTokenId = protectedDataDetails[_protectedData].collection;\n _checkCollectionOperator(_collectionTokenId);\n _checkCollectionNotSubscribed(_collectionTokenId);\n _checkProtectedDataNotRented(_protectedData);\n\n delete protectedDataDetails[_protectedData];\n collectionDetails[_collectionTokenId].size -= 1;\n PROTECTED_DATA_REGISTRY.safeTransferFrom(\n address(this),\n msg.sender,\n uint256(uint160(_protectedData))\n );\n emit ProtectedDataTransfer(_protectedData, 0, _collectionTokenId, address(0));\n }\n\n /***************************************************************************\n * Subscription *\n **************************************************************************/\n /// @inheritdoc ISubscription\n function subscribeToCollection(\n uint256 _collectionTokenId,\n SubscriptionParams memory _subscriptionParams\n ) public returns (uint48 endDate) {\n return _subscribeToCollection(_collectionTokenId, msg.sender, _subscriptionParams);\n }\n\n function _subscribeToCollection(\n uint256 _collectionTokenId,\n address spender,\n SubscriptionParams memory _subscriptionParams\n ) private returns (uint48 endDate) {\n CollectionDetails storage _collectionDetails = collectionDetails[_collectionTokenId];\n if (\n _collectionDetails.subscriptionParams.price != _subscriptionParams.price ||\n _collectionDetails.subscriptionParams.duration != _subscriptionParams.duration\n ) {\n revert InvalidSubscriptionParams(_collectionTokenId, _subscriptionParams);\n }\n\n // Limiting the subscription duration of the protectedData it's a security measure\n // to prevent indefinite access by end users. This is a security to protect the\n // protectedData of collectionOwner.\n endDate = uint48(block.timestamp) + uint48(_collectionDetails.subscriptionParams.duration);\n _collectionDetails.subscribers[spender] = endDate;\n _collectionDetails.lastSubscriptionExpiration = uint48(\n Math.max(endDate, _collectionDetails.lastSubscriptionExpiration)\n );\n POCO_DELEGATE.transferFrom(\n spender,\n ownerOf(_collectionTokenId),\n _collectionDetails.subscriptionParams.price\n );\n emit NewSubscription(_collectionTokenId, spender, endDate);\n }\n\n /// @inheritdoc ISubscription\n function setProtectedDataToSubscription(address _protectedData) public {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 _collectionTokenId = _protectedDataDetails.collection;\n _checkCollectionOperator(_collectionTokenId);\n _checkProtectedDataNotForSale(_protectedData);\n\n _protectedDataDetails.inSubscription = true;\n emit ProtectedDataAddedForSubscription(_collectionTokenId, _protectedData);\n }\n\n /// @inheritdoc ISubscription\n function removeProtectedDataFromSubscription(address _protectedData) public {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 _collectionTokenId = _protectedDataDetails.collection;\n _checkCollectionOperator(_collectionTokenId);\n _checkCollectionNotSubscribed(_collectionTokenId);\n\n _protectedDataDetails.inSubscription = false;\n emit ProtectedDataRemovedFromSubscription(_collectionTokenId, _protectedData);\n }\n\n /// @inheritdoc ISubscription\n function setSubscriptionParams(\n uint256 _collectionTokenId,\n SubscriptionParams calldata _subscriptionParams\n ) public {\n _checkCollectionOperator(_collectionTokenId);\n\n collectionDetails[_collectionTokenId].subscriptionParams = _subscriptionParams;\n emit NewSubscriptionParams(_collectionTokenId, _subscriptionParams);\n }\n\n /***************************************************************************\n * Rental *\n **************************************************************************/\n /// @inheritdoc IRental\n function rentProtectedData(\n address _protectedData,\n RentingParams memory _rentingParams\n ) public returns (uint48 endDate) {\n return _rentProtectedData(_protectedData, msg.sender, _rentingParams);\n }\n\n function _rentProtectedData(\n address _protectedData,\n address spender,\n RentingParams memory _rentingParams\n ) private returns (uint48 endDate) {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n if (_protectedDataDetails.rentingParams.duration == 0) {\n revert ProtectedDataNotAvailableForRenting(_protectedData);\n }\n if (\n _protectedDataDetails.rentingParams.duration != _rentingParams.duration ||\n _protectedDataDetails.rentingParams.price != _rentingParams.price\n ) {\n revert InvalidRentingParams(_protectedData, _rentingParams);\n }\n\n endDate = uint48(block.timestamp) + uint48(_protectedDataDetails.rentingParams.duration);\n _protectedDataDetails.renters[spender] = endDate;\n // Limiting the rental duration of the protectedData it's a security measure to prevent indefinite access by end users.\n // This is a security to protect the protectedData of collectionOwner.\n _protectedDataDetails.lastRentalExpiration = uint48(\n Math.max(endDate, _protectedDataDetails.lastRentalExpiration)\n );\n\n POCO_DELEGATE.transferFrom(\n spender,\n ownerOf(_protectedDataDetails.collection),\n _protectedDataDetails.rentingParams.price\n );\n emit NewRental(_protectedDataDetails.collection, _protectedData, spender, endDate);\n }\n\n /// @inheritdoc IRental\n function setProtectedDataToRenting(\n address _protectedData,\n RentingParams calldata _rentingParams\n ) public {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 _collectionTokenId = _protectedDataDetails.collection;\n _checkCollectionOperator(_collectionTokenId);\n _checkProtectedDataNotForSale(_protectedData);\n\n if (_rentingParams.duration == 0) {\n revert DurationInvalid(_rentingParams.duration);\n }\n _protectedDataDetails.rentingParams = _rentingParams;\n emit ProtectedDataAddedForRenting(_collectionTokenId, _protectedData, _rentingParams);\n }\n\n /// @inheritdoc IRental\n function removeProtectedDataFromRenting(address _protectedData) public {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 _collectionTokenId = _protectedDataDetails.collection;\n _checkCollectionOperator(_collectionTokenId);\n\n _protectedDataDetails.rentingParams.duration = 0;\n emit ProtectedDataRemovedFromRenting(_collectionTokenId, _protectedData);\n }\n\n /***************************************************************************\n * Sale *\n **************************************************************************/\n /// @inheritdoc ISale\n function buyProtectedData(address _protectedData, address _to, uint72 _price) public {\n return _buyProtectedData(_protectedData, msg.sender, _to, _price);\n }\n\n function _buyProtectedData(\n address _protectedData,\n address spender,\n address _to,\n uint72 _price\n ) private {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n _checkProtectedDataForSale(_protectedData);\n if (_protectedDataDetails.sellingParams.price != _price) {\n revert InvalidPriceForPurchase(_protectedData, _price);\n }\n\n PROTECTED_DATA_REGISTRY.safeTransferFrom(\n address(this),\n _to,\n uint256(uint160(_protectedData))\n );\n POCO_DELEGATE.transferFrom(\n spender,\n ownerOf(_protectedDataDetails.collection),\n _protectedDataDetails.sellingParams.price\n );\n emit ProtectedDataSold(_protectedDataDetails.collection, _to, _protectedData);\n delete protectedDataDetails[_protectedData];\n }\n\n /// @inheritdoc ISale\n function setProtectedDataForSale(address _protectedData, uint72 _price) public {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 _collectionTokenId = _protectedDataDetails.collection;\n _checkCollectionOperator(_collectionTokenId);\n _checkProtectedDataNotRented(_protectedData);\n\n if (_protectedDataDetails.inSubscription) {\n revert ProtectedDataAvailableInSubscription(_collectionTokenId, _protectedData);\n }\n if (_protectedDataDetails.rentingParams.duration > 0) {\n revert ProtectedDataAvailableForRenting(_collectionTokenId, _protectedData);\n }\n _protectedDataDetails.sellingParams.isForSale = true;\n _protectedDataDetails.sellingParams.price = _price;\n emit ProtectedDataAddedForSale(_collectionTokenId, _protectedData, _price);\n }\n\n /// @inheritdoc ISale\n function removeProtectedDataForSale(address _protectedData) public {\n ProtectedDataDetails storage _protectedDataDetails = protectedDataDetails[_protectedData];\n uint256 _collectionTokenId = _protectedDataDetails.collection;\n _checkCollectionOperator(_collectionTokenId);\n\n _protectedDataDetails.sellingParams.isForSale = false;\n emit ProtectedDataRemovedFromSale(_collectionTokenId, _protectedData);\n }\n}\n" + }, + "contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity >0.0.0;\nimport '@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol';\n" + }, + "contracts/interfaces/IAddOnlyAppWhitelist.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\ninterface IAddOnlyAppWhitelist {\n /**\n * Custom revert error indicating that the application is not owned by the contract.\n *\n * @param appAddress - The address added to the AddOnlyAppWhitelist.\n */\n event NewAppAddedToAddOnlyAppWhitelist(address appAddress);\n\n /**\n * Custom revert error indicating that the caller is not the autorized operator.\n *\n */\n error NotAddOnlyAppWhitelistOperator();\n\n /**\n * Allow operator of the whitelist can add an app.\n *\n * @param _app - The address of the app to add.\n */\n function addApp(address _app) external;\n\n /**\n * Return true if the app is registered or not in the AddOnlyAppWhitelist.\n *\n * @param _app - The address of the app to add.\n */\n function isRegistered(address _app) external view returns (bool);\n\n /**\n * Returns the address of the current owner.\n */\n function owner() external view returns (address);\n\n /**\n * Transfers ownership of the contract to a new address. Only the operator is allow to do that.\n *\n * @param newOwner - The address of the new owner.\n */\n function transferOwnership(address newOwner) external;\n}\n" + }, + "contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {IAddOnlyAppWhitelist} from \"./IAddOnlyAppWhitelist.sol\";\n\ninterface IAddOnlyAppWhitelistRegistry {\n /**\n * Creates a new AddOnlyAppWhitelist contract and registers it under the specified owner.\n * This function facilitates the dynamic creation and onboarding of new applications\n * into the platform's whitelist system, expanding the ecosystem.\n *\n * @param owner - The address that will own the newly created AddOnlyAppWhitelist contract.\n * @return IAddOnlyAppWhitelist - The newly created and registered AddOnlyAppWhitelist contract.\n */\n function createAddOnlyAppWhitelist(address owner) external returns (IAddOnlyAppWhitelist);\n\n /**\n * Checks if spender can operate on tokenId, assuming the provided owner is the actual\n * owner. Reverts if spender does not have approval from the provided owner for the given\n * token or for all its assets the spender for the specific tokenId.\n *\n * @param spender - The spender that you want to check if he has approval.\n * @param tokenId - TokenId that we want to check for approval.\n */\n function isAuthorized(address spender, uint256 tokenId) external view returns (bool);\n}\n" + }, + "contracts/interfaces/ICollection.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {IAddOnlyAppWhitelist} from \"./IAddOnlyAppWhitelist.sol\";\n\ninterface ICollection {\n /**\n * Custom revert error indicating that the caller is not the owner of the collection.\n *\n * @param collectionTokenId - The ID of the collection where the caller is not the owner.\n */\n error NotCollectionOperator(uint256 collectionTokenId);\n\n /**\n * Custom revert error indicating that the collection is not empty and cannot be removed.\n *\n * @param collectionTokenId - The ID of the collection that is not empty and cannot be removed.\n */\n error CollectionNotEmpty(uint256 collectionTokenId);\n\n /**\n * Custom revert error indicating that the caller is not approved or the owner.\n */\n error NotAnOwnerOrApprovedOperator();\n\n /**\n * Event emitted when a protected data is removed from a collection.\n *\n * @param protectedData - The address of the protected data.\n * @param newCollection - The ID of the collection to which the protected data is added.\n * @param oldCollection - The ID of the collection from which the protected data is removed.\n * @param addOnlyAppWhitelist - The address of the approved application to consume the protected data.\n */\n event ProtectedDataTransfer(\n address protectedData,\n uint256 newCollection,\n uint256 oldCollection,\n address addOnlyAppWhitelist\n );\n\n /**\n * Create a new collection and returns its token ID.\n *\n * @return tokenId The token ID of the newly created collection.\n * @param _to - The address of the token owner.\n */\n function createCollection(address _to) external returns (uint256 tokenId);\n\n /**\n * Add protected data to the specified collection.\n * The owner should approve the smart contract before calling this function.\n * The ownership of the protected data added to the collection is transferred to the smart contract,\n * enabling it to publish protected data orders.\n *\n * @param _collectionTokenId The ID of the collection.\n * @param _protectedData The address of the protected data to be added.\n * @param _appAddress The address of the application whitelist.\n */\n function addProtectedDataToCollection(\n uint256 _collectionTokenId,\n address _protectedData,\n IAddOnlyAppWhitelist _appAddress\n ) external;\n\n /**\n * Remove protected data from the specified collection.\n * The ownership of the protected data is given back to the msg.sender\n *\n * @param _protectedData The address of the protected data to be removed.\n */\n function removeProtectedDataFromCollection(address _protectedData) external;\n}\n" + }, + "contracts/interfaces/IDataProtector.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\ninterface IDataProtector {\n /**\n * Create a new protectedData.\n *\n * @param _datasetOwner - The owner of the ProtectedData.\n * @param _datasetName - The name of the ProtectedData (metadata).\n * @param _datasetSchema - The schema of the data containing in the ProtectedData\n * @param _datasetMultiaddr - The multiaddress of the ProtectedData.\n * @param _datasetChecksum -The checksum of the ProtectedData.\n * @return IDataset - The ProtcetedData instance created.\n */\n function createDatasetWithSchema(\n address _datasetOwner,\n string calldata _datasetName,\n string calldata _datasetSchema,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (address);\n}\n" + }, + "contracts/interfaces/IDataProtectorSharing.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024-2025 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {ISubscription} from \"./ISubscription.sol\";\nimport {ICollection} from \"./ICollection.sol\";\nimport {IexecLibOrders_v5} from \"./IPoCo.sol\";\nimport {IRental} from \"./IRental.sol\";\nimport {ISale} from \"./ISale.sol\";\nimport {IAddOnlyAppWhitelist} from \"./IAddOnlyAppWhitelist.sol\";\n\ninterface IDataProtectorSharing is ICollection, ISubscription, IRental, ISale {\n /**\n * Custom revert error indicating that the workerpool order is not free.\n *\n * @param workerpoolOrder - The workerpool order that is not free.\n */\n error WorkerpoolOrderNotFree(IexecLibOrders_v5.WorkerpoolOrder workerpoolOrder);\n\n /**\n * Custom revert error indicating that there is no valid rental or subscription for the protected data.\n *\n * @param collectionTokenId - The ID of the collection for which there is no valid rental or subscription.\n * @param protectedDatas - The address of the protected data.\n */\n error NoValidRentalOrSubscription(uint256 collectionTokenId, address protectedDatas);\n\n /**\n * Custom revert error indicating that the application is not owned by the contract.\n *\n * @param app - The address of the application that is not owned by the contract.\n */\n error AppNotWhitelistedForProtectedData(address app);\n\n /**\n * Custom revert error indicating that an operator is not the app registry.\n *\n * @param _appWhitelist - The address of the AddOnlyAppWhitelist.\n */\n error InvalidAppWhitelist(address _appWhitelist);\n\n /**\n * Custom revert error that the caller is not the Poco.\n */\n error OnlyPocoCallerAuthorized(address _caller);\n\n /**\n * Custom revert error indicating that the extra data set are empty.\n */\n error EmptyCallData();\n\n /**\n * Event emitted when protected data is consumed under a specific deal, providing the unique deal ID and the mode of consumption.\n *\n * @param dealId - The unique identifier for the deal.\n * @param protectedData - protectedData used for the deal.\n * @param mode - The mode of consumption (either subscription or renting).\n */\n event ProtectedDataConsumed(bytes32 dealId, address protectedData, Mode mode);\n\n enum Mode {\n SUBSCRIPTION, // Indicates subscription-based consumption.\n RENTING // Indicates renting-based consumption.\n }\n\n /**\n * CollectionDetails struct contains details about a collection.\n *\n * @param size - number of protectedData inside the collection.\n * @param lastSubscriptionExpiration - The latest expiration timestamp among all subscriptions for the protected data.\n * @param subscriptionParams - Subscription pameters associated to the collection.\n * @param subscribers - Mapping of subscriber addresses to their subscription expiration timestamps.\n */\n struct CollectionDetails {\n uint256 size;\n uint48 lastSubscriptionExpiration;\n SubscriptionParams subscriptionParams;\n mapping(address => uint48) subscribers; // subscriberAddress => endTimestamp(48 bit for full timestamp)\n }\n\n /**\n * ProtectedDataDetails struct contains details about protected data.\n *\n * @param collection - The ID of the collection containing the protected data.\n * @param AddOnlyAppWhitelist - The address of the application whitelist that contains all th app that could consume the protected data.\n * @param lastRentalExpiration - The latest expiration timestamp among all rentals for the protected data.\n * @param renters - Mapping of renter addresses to their rental expiration timestamps.\n * @param inSubscription - Indicates whether the protected data is part of a subscription.\n * @param sellingParams - Selling parameters for to the sale of the protected data.\n * @param datasetOrder - Order published for the protectedData\n */\n struct ProtectedDataDetails {\n uint256 collection;\n IAddOnlyAppWhitelist addOnlyAppWhitelist;\n uint48 lastRentalExpiration;\n bool inSubscription;\n RentingParams rentingParams;\n mapping(address => uint48) renters; // renterAddress => endTimestamp(48 bit for full timestamp)\n SellingParams sellingParams;\n }\n\n /**\n * Consume protected data by creating a deal on the iExec platform.\n * Requires a valid subscription or rental for the protected data.\n *\n * @param _protectedData The address of the protected data.\n * @param _workerpoolOrder The workerpool order for the computation task.\n * @param _app The address of the app that will consume the protected data.\n * @return The unique identifier (deal ID) of the created deal on the iExec platform.\n */\n function consumeProtectedData(\n address _protectedData,\n IexecLibOrders_v5.WorkerpoolOrder calldata _workerpoolOrder,\n address _app\n ) external returns (bytes32);\n\n /**\n * Retrieves the rental expiration timestamp for a specific protected data and renter.\n * This function allows querying the expiration timestamp of a rental agreement\n * between a specific protected data item and a renter.\n *\n * @param _protectedData The address of the protected data item.\n * @param _renterAddress The address of the renter.\n * @return The rental expiration timestamp as a uint48.\n */\n function getProtectedDataRenter(\n address _protectedData,\n address _renterAddress\n ) external view returns (uint48);\n\n /**\n * Retrieves the subscription expiration timestamp for a specific collection and subscriber.\n * This function allows querying the expiration timestamp of a subscription\n * for a specific collection and a subscriber.\n *\n * @param _collectionTokenId The ID of the collection.\n * @param _subscriberAddress The address of the subscriber.\n * @return The subscription expiration timestamp as a uint48.\n */\n function getCollectionSubscriber(\n uint256 _collectionTokenId,\n address _subscriberAddress\n ) external view returns (uint48);\n\n /**\n * Callback function call after in the approveAndCall Poco function. It allows end user to approve\n * and call the desired function in the same transaction.\n *\n * @param _sender - The msg.sender that call the approveAndCall function in the Poco.\n * @param _value - The value set in approveAndCall function.\n * @param _extraData - The callData representing the encoded function with signature to call (eg: subscribeToCollection, rentProtectedData, buyProtectedData).\n */\n function receiveApproval(\n address _sender,\n uint256 _value,\n address,\n bytes calldata _extraData\n ) external returns (bool);\n}\n" + }, + "contracts/interfaces/IPoCo.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2025 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.24;\n\n// TODO import interfaces (IexecOrderManagement, IexecPoco1, ...) from @iexec/poco.\n\ninterface IPoCo {\n // IexecEscrowNative\n function deposit() external payable returns (bool); // Native mode\n\n // TODO support both token and native modes.\n // IexecEscrowToken\n // function deposit(uint256) external returns (bool); // Token mode\n\n // IexecERC20\n function approve(address spender, uint256 value) external returns (bool);\n function approveAndCall(\n address spender,\n uint256 value,\n bytes calldata extraData\n ) external returns (bool);\n function transferFrom(\n address sender,\n address recipient,\n uint256 amount\n ) external returns (bool);\n function balanceOf(address owner) external view returns (uint256);\n function allowance(address owner, address spender) external view returns (uint256);\n\n // IexecOrderManagement\n function manageAppOrder(IexecLibOrders_v5.AppOrderOperation calldata operation) external;\n function manageDatasetOrder(\n IexecLibOrders_v5.DatasetOrderOperation calldata operation\n ) external;\n function manageWorkerpoolOrder(\n IexecLibOrders_v5.WorkerpoolOrderOperation calldata operation\n ) external;\n function manageRequestOrder(\n IexecLibOrders_v5.RequestOrderOperation calldata operation\n ) external;\n\n // IexecPoco1\n function matchOrders(\n IexecLibOrders_v5.AppOrder calldata appOrder,\n IexecLibOrders_v5.DatasetOrder calldata datasetOrder,\n IexecLibOrders_v5.WorkerpoolOrder calldata workerpoolOrder,\n IexecLibOrders_v5.RequestOrder calldata requestOrder\n ) external returns (bytes32);\n}\n\n// TODO import from @iexec/poco\nlibrary IexecLibOrders_v5 {\n enum OrderOperationEnum {\n SIGN,\n CLOSE\n }\n\n struct AppOrder {\n address app;\n uint256 appprice;\n uint256 volume;\n bytes32 tag;\n address datasetrestrict;\n address workerpoolrestrict;\n address requesterrestrict;\n bytes32 salt;\n bytes sign;\n }\n\n struct DatasetOrder {\n address dataset;\n uint256 datasetprice;\n uint256 volume;\n bytes32 tag;\n address apprestrict;\n address workerpoolrestrict;\n address requesterrestrict;\n bytes32 salt;\n bytes sign;\n }\n\n struct WorkerpoolOrder {\n address workerpool;\n uint256 workerpoolprice;\n uint256 volume;\n bytes32 tag;\n uint256 category;\n uint256 trust;\n address apprestrict;\n address datasetrestrict;\n address requesterrestrict;\n bytes32 salt;\n bytes sign;\n }\n\n struct RequestOrder {\n address app;\n uint256 appmaxprice;\n address dataset;\n uint256 datasetmaxprice;\n address workerpool;\n uint256 workerpoolmaxprice;\n address requester;\n uint256 volume;\n bytes32 tag;\n uint256 category;\n uint256 trust;\n address beneficiary;\n address callback;\n string params;\n bytes32 salt;\n bytes sign;\n }\n\n struct AppOrderOperation {\n AppOrder order;\n OrderOperationEnum operation;\n bytes sign;\n }\n\n struct DatasetOrderOperation {\n DatasetOrder order;\n OrderOperationEnum operation;\n bytes sign;\n }\n\n struct WorkerpoolOrderOperation {\n WorkerpoolOrder order;\n OrderOperationEnum operation;\n bytes sign;\n }\n\n struct RequestOrderOperation {\n RequestOrder order;\n OrderOperationEnum operation;\n bytes sign;\n }\n}\n" + }, + "contracts/interfaces/IRegistry.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\ninterface IRegistry {\n /**\n * Return the owner of the specified token ID.\n *\n * @param tokenId The ID of the token to query the owner for.\n * @return The address of the owner of the token.\n */\n function ownerOf(uint256 tokenId) external view returns (address);\n\n /**\n * Safely transfers the ownership of a given token ID to another address.\n *\n * @param from The current owner of the token.\n * @param to The new owner.\n * @param tokenId The token ID to transfer.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * Check if an ERC-721 protectedData is registered.\n *\n * @param _entry The protected data address to check for registration.\n * @return True if the address is registered, false otherwise.\n */\n function isRegistered(address _entry) external view returns (bool);\n\n /**\n * Approve another address to transfer the given token ID.\n *\n * @param to The address to grant approval to.\n * @param tokenId The token ID to be approved for transfer.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * Gets the approved address for a token ID, or zero if no address is set.\n *\n * @param tokenId The ID of the token to query.\n * @return The approved address for the given token ID, or zero if no approval is set.\n */\n function getApproved(uint256 tokenId) external view returns (address);\n\n /**\n *Returns the account approved for tokenId token. TokenId must exist.\n *\n * @param owner - Owner of the tokenId\n * @param operator - Operator to check if it's authorized or not.\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n" + }, + "contracts/interfaces/IRental.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\ninterface IRental {\n /**\n * Custom revert error indicating that the protected data is currently being rented.\n *\n * @param protectedData - The address of the protected data currently being rented.\n */\n error ProtectedDataCurrentlyBeingRented(address protectedData);\n\n /**\n * Custom revert error indicating that the protected data is available for renting.\n *\n * @param collectionTokenId - The ID of the collection containing the protected data.\n * @param protectedData - The address of the protected data available for renting.\n */\n error ProtectedDataAvailableForRenting(uint256 collectionTokenId, address protectedData);\n\n /**\n * Custom revert error indicating that the protected data is not available for renting.\n *\n * @param protectedData - The address of the protected data not available for renting.\n */\n error ProtectedDataNotAvailableForRenting(address protectedData);\n\n /**\n * Custom revert error indicating that the duration is invalid.\n *\n * @param _duration - The invalid duration.\n */\n error DurationInvalid(uint48 _duration);\n\n /**\n * Custom revert error indicating that the renting params set are not valide.\n *\n * @param protectedData - The address of the protected data.\n * @param rentingParams - Current renting params.\n */\n error InvalidRentingParams(address protectedData, RentingParams rentingParams);\n\n /**\n * Renting parameters for a protected data item.\n *\n * @param price - The price in wei for renting the protected data.\n * @param duration - The duration in seconds for which the protected data can be rented.\n */\n struct RentingParams {\n uint72 price; // 72 bit allows for 4722_366_482_869 RLC (total supply is 87_000_000 RLC)\n uint40 duration; // 48 bit allows 34_865 years of delay\n }\n\n /**\n * Event emitted when protected data is added for renting in a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n * @param rentingParams - The renting params for the protected data.\n */\n event ProtectedDataAddedForRenting(\n uint256 collectionTokenId,\n address protectedData,\n RentingParams rentingParams\n );\n\n /**\n * Event emitted when protected data is removed from renting in a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n */\n event ProtectedDataRemovedFromRenting(uint256 collectionTokenId, address protectedData);\n\n /**\n * Event emitted when a new rental is created for protected data in a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n * @param renter - The address of the renter.\n * @param endDate - The end date of the rental.\n */\n event NewRental(\n uint256 collectionTokenId,\n address protectedData,\n address renter,\n uint48 endDate\n );\n\n /**\n * Enables renting of protected data using funds from the caller's iExec account.\n * Sufficient Stacked RLC must be available, and the contract must be authorized to\n * spend the required amount on the caller's behalf.\n *\n * @param _protectedData Address of the data to be rented.\n * @param _rentingParams In order to avoid the collection owner to front run renters.\n * @return uint48 Timestamp of the rental's expiration.\n */\n function rentProtectedData(\n address _protectedData,\n RentingParams memory _rentingParams\n ) external returns (uint48);\n\n /**\n * Set protected data from a collection available for renting with the\n * specified price and duration.\n *\n * @param _protectedData The address of the protected data to be added for renting.\n * @param _rentingParams The renting params for which the protected data will be available for renting.\n */\n function setProtectedDataToRenting(\n address _protectedData,\n RentingParams calldata _rentingParams\n ) external;\n\n /**\n * Remove protected data from the available list of renting.\n * Cannot be rented anymore, ongoing rental are still valid\n *\n * @param _protectedData The address of the protected data to be removed from renting.\n */\n function removeProtectedDataFromRenting(address _protectedData) external;\n}\n" + }, + "contracts/interfaces/ISale.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\ninterface ISale {\n /**\n * Custom revert error indicating that the protected data is for sale.\n *\n * @param protectedData - The address of the protected data for sale.\n */\n error ProtectedDataForSale(address protectedData);\n\n /**\n * Custom revert error indicating that the protected data is not for sale.\n *\n * @param protectedData - The address of the protected data not for sale.\n */\n error ProtectedDataNotForSale(address protectedData);\n\n /**\n * Custom revert error indicating that the protected data is not for sale.\n *\n * @param protectedData - The address of the protected data not for sale.\n * @param price - The price of the protected data set.\n */\n error InvalidPriceForPurchase(address protectedData, uint72 price);\n\n /**\n * Selling parameters for a protected data item.\n *\n * @param isForSale - Indicates whether the protected data is available for sale.\n * @param price - The price (in Gwei) for purchasing the protected data.\n */\n struct SellingParams {\n bool isForSale;\n uint72 price; // 72 bit allows for 10^21 nRLC\n }\n\n /**\n * Event emitted when protected data is added for sale in a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n * @param price - The price (in Gwei) for purchasing the protected data.\n */\n event ProtectedDataAddedForSale(uint256 collectionTokenId, address protectedData, uint72 price);\n\n /**\n * Event emitted when protected data is removed from sale in a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n */\n event ProtectedDataRemovedFromSale(uint256 collectionTokenId, address protectedData);\n\n /**\n * Event emitted when protected data is sold from one collection.\n *\n * @param collectionTokenIdFrom - The ID of the collection from which the protected data is sold.\n * @param protectedData - The address of the protected data.\n * @param to - The address to which the protected data is transferred. It could be the\n * smart contract itselft, it means that the protected data has moved to another ollection\n * or it can be the msg.sender\n */\n event ProtectedDataSold(uint256 collectionTokenIdFrom, address to, address protectedData);\n\n /**\n * Set protected data available for sale with the specified price.\n *\n * @param _protectedData The address of the protected data to be set for sale.\n * @param _price The price in wei for the protected data.\n */\n function setProtectedDataForSale(address _protectedData, uint72 _price) external;\n\n /**\n * Remove protected data from the list available for sale.\n *\n * @param _protectedData The address of the protected data to be removed from sale.\n */\n function removeProtectedDataForSale(address _protectedData) external;\n\n /**\n * Purchases protected data using the buyer's account balance within the platform and transfers ownership\n * to a specified address. This method requires the smart contract to be pre-authorized to use the necessary\n * funds from the buyer's account (sufficient Stacked RLC must be available). Upon completion, the smart contract will no longer manage the protected data.\n *\n * @param _protectedData The address of the protected data being purchased.\n * @param _to The recipient address to which the protected data will be transferred.\n * @param _price The price that the buyer filled out not to be front run.\n */\n function buyProtectedData(address _protectedData, address _to, uint72 _price) external;\n}\n" + }, + "contracts/interfaces/ISubscription.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\ninterface ISubscription {\n /**\n * Custom revert error indicating that the protected data is currently in a subscription.\n *\n * @param _collectionTokenId - The ID of the collection containing the protected data.\n * @param _protectedData - The address of the protected data.\n */\n error ProctedDataInSubscription(uint256 _collectionTokenId, address _protectedData);\n\n /**\n * Custom revert error indicating that there are ongoing subscriptions for the collection.\n *\n * @param collectionTokenId - The ID of the collection with ongoing subscriptions.\n */\n error OnGoingCollectionSubscriptions(uint256 collectionTokenId);\n\n /**\n * Custom revert error indicating that the protected data is available for subscription.\n *\n * @param collectionTokenId - The ID of the collection containing the protected data.\n * @param protectedData - The address of the protected data available for subscription.\n */\n error ProtectedDataAvailableInSubscription(uint256 collectionTokenId, address protectedData);\n\n /**\n * Custom revert error indicating that the subscription params set are not valide.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param subscriptionParams - Current subscription params\n */\n error InvalidSubscriptionParams(\n uint256 collectionTokenId,\n SubscriptionParams subscriptionParams\n );\n\n /**\n * Subscription parameters for a collection.\n *\n * @param price - The price (in Gwei) for the subscription.\n * @param duration - The duration in seconds for the subscription.\n */\n struct SubscriptionParams {\n uint72 price; // 72 bit allows for 10^21 nRLC\n uint40 duration; // 48 bit allows 34_865 years of delay\n }\n\n /**\n * Event emitted when new subscription parameters are set for a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param subscriptionParams - The subscription parameters set for the collection.\n */\n event NewSubscriptionParams(uint256 collectionTokenId, SubscriptionParams subscriptionParams);\n\n /**\n * Event emitted when a new subscription is created for a collection.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param subscriber - The address of the subscriber.\n * @param endDate - The end date of the subscription.\n */\n event NewSubscription(uint256 collectionTokenId, address indexed subscriber, uint48 endDate);\n\n /**\n * Event emitted when protected data is added to pool of protected data\n * among the collection available for the subscription.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n */\n event ProtectedDataAddedForSubscription(uint256 collectionTokenId, address protectedData);\n\n /**\n * Event emitted when protected data is removed from a subscription.\n *\n * @param collectionTokenId - The ID of the collection.\n * @param protectedData - The address of the protected data.\n */\n event ProtectedDataRemovedFromSubscription(uint256 collectionTokenId, address protectedData);\n\n /**\n * Subscribes to a collection using funds from the caller's account balance within the platform\n * (Stacked RLC). Requires prior approval for this contract to spend the subscription amount on\n * behalf of the caller.\n *\n * @param _collectionTokenId The unique identifier of the collection to subscribe to.\n * @param _subscriptionParams Additional parameter to prevent front-running attacks, ensuring fair subscription execution.\n * @return endDate The timestamp when the subscription will expire, indicating the end of access.\n */\n function subscribeToCollection(\n uint256 _collectionTokenId,\n SubscriptionParams memory _subscriptionParams\n ) external returns (uint48);\n\n /**\n * Set protected data available in the subscription for the specified collection.\n *\n * @param _protectedData The address of the protected data to be added to the subscription.\n */\n function setProtectedDataToSubscription(address _protectedData) external;\n\n /**\n * Remove protected data from the subscription for the specified collection.\n * Subcribers cannot consume the protected data anymore\n *\n * @param _protectedData The address of the protected data to be removed from the subscription.\n */\n function removeProtectedDataFromSubscription(address _protectedData) external;\n\n /**\n * Set the subscription parameters for a collection.\n *\n * @param _collectionTokenId The ID of the collection.\n * @param _subscriptionParams The subscription parameters to be set.\n */\n function setSubscriptionParams(\n uint256 _collectionTokenId,\n SubscriptionParams calldata _subscriptionParams\n ) external;\n}\n" + }, + "contracts/ManageOrders.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024-2025 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {IexecLibOrders_v5} from \"./interfaces/IPoCo.sol\";\nimport {IPoCo} from \"./interfaces/IPoCo.sol\";\n\n/// @custom:oz-upgrades-unsafe-allow state-variable-immutable\n// eslint-disable-next-line quotes\nabstract contract ManageOrders {\n using IexecLibOrders_v5 for IexecLibOrders_v5.OrderOperationEnum;\n using IexecLibOrders_v5 for IexecLibOrders_v5.AppOrder;\n using IexecLibOrders_v5 for IexecLibOrders_v5.WorkerpoolOrder;\n using IexecLibOrders_v5 for IexecLibOrders_v5.DatasetOrder;\n using IexecLibOrders_v5 for IexecLibOrders_v5.RequestOrder;\n using IexecLibOrders_v5 for IexecLibOrders_v5.AppOrderOperation;\n using IexecLibOrders_v5 for IexecLibOrders_v5.DatasetOrderOperation;\n using IexecLibOrders_v5 for IexecLibOrders_v5.RequestOrderOperation;\n\n // ---------------------ManageOrders state----------------------------------\n IPoCo internal immutable POCO_DELEGATE;\n bytes32 internal constant TAG =\n 0x0000000000000000000000000000000000000000000000000000000000000003; // [tee,scone]\n uint256 internal constant TRUST = 0; // No replication\n string internal _iexecResultStorageProvider;\n // [WARNING] This value is not used anymore but it must be kept\n // to not break deployed proxies when upgrading them.\n string internal _iexecResultStorageProxy;\n uint256 private _salt;\n\n /***************************************************************************\n * Constructor *\n **************************************************************************/\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor(address pocoAddress) {\n POCO_DELEGATE = IPoCo(pocoAddress);\n }\n\n /***************************************************************************\n * Functions *\n **************************************************************************/\n function _createAppOrder(\n address _appAddress\n ) internal view returns (IexecLibOrders_v5.AppOrder memory) {\n //create AppOrderOperation\n return\n IexecLibOrders_v5.AppOrder({\n app: _appAddress,\n appprice: 0,\n volume: type(uint256).max,\n tag: TAG,\n datasetrestrict: address(0),\n workerpoolrestrict: address(0),\n requesterrestrict: address(this), // this\n salt: bytes32(0),\n sign: new bytes(0)\n });\n }\n\n function _createPreSignAppOrder(\n address _appAddress\n ) internal returns (IexecLibOrders_v5.AppOrder memory _appOrder) {\n _appOrder = _createAppOrder(_appAddress);\n // presign\n POCO_DELEGATE.manageAppOrder(\n IexecLibOrders_v5.AppOrderOperation({\n order: _appOrder,\n operation: IexecLibOrders_v5.OrderOperationEnum.SIGN, //OrderOperationEnum\n sign: new bytes(0)\n })\n );\n }\n\n function _createDatasetOrder(\n address _protectedData,\n address _appWhitelist\n ) internal view returns (IexecLibOrders_v5.DatasetOrder memory) {\n //create DatasetOrderOperation\n return\n IexecLibOrders_v5.DatasetOrder({\n dataset: _protectedData,\n datasetprice: 0,\n volume: type(uint256).max,\n tag: TAG,\n apprestrict: _appWhitelist,\n workerpoolrestrict: address(0),\n requesterrestrict: address(this),\n salt: bytes32(0),\n sign: new bytes(0)\n });\n }\n\n function _createPreSignDatasetOrder(\n address _protectedData,\n address _appWhitelist\n ) internal returns (IexecLibOrders_v5.DatasetOrder memory _datasetOrder) {\n _datasetOrder = _createDatasetOrder(_protectedData, _appWhitelist);\n // presign\n POCO_DELEGATE.manageDatasetOrder(\n IexecLibOrders_v5.DatasetOrderOperation({\n order: _datasetOrder,\n operation: IexecLibOrders_v5.OrderOperationEnum.SIGN, //OrderOperationEnum\n sign: new bytes(0)\n })\n );\n }\n\n function _createPreSignRequestOrder(\n address _protectedData,\n address _appAddress,\n address _workerpoolAddress,\n uint256 _category\n ) internal returns (IexecLibOrders_v5.RequestOrder memory) {\n //create RequestOrderOperation\n IexecLibOrders_v5.RequestOrderOperation memory requestOrderOperation = IexecLibOrders_v5\n .RequestOrderOperation({\n order: IexecLibOrders_v5.RequestOrder({\n app: _appAddress, //address\n appmaxprice: 0, //uint256\n dataset: _protectedData, //address\n datasetmaxprice: 0, //uint256\n workerpool: _workerpoolAddress, //address\n workerpoolmaxprice: 0, //uint256\n requester: address(this), //address\n volume: 1, //uint256\n tag: TAG, //bytes32\n category: _category, //uint256\n trust: TRUST, //uint256\n beneficiary: msg.sender, //address\n callback: address(0), //address\n params: generateParams(), //string\n salt: getSalt(), //bytes32\n sign: new bytes(0)\n }),\n operation: IexecLibOrders_v5.OrderOperationEnum.SIGN, //OrderOperationEnum\n sign: new bytes(0)\n });\n\n // presign\n POCO_DELEGATE.manageRequestOrder(requestOrderOperation);\n\n return requestOrderOperation.order;\n }\n\n function getSalt() private returns (bytes32) {\n return bytes32(++_salt);\n }\n\n function generateParams() private view returns (string memory) {\n return\n string.concat(\n // eslint-disable-next-line quotes\n '{\"iexec_result_encryption\":true', // solhint-disable-line quotes\n ',\"iexec_result_storage_provider\":\"', // solhint-disable-line quotes\n _iexecResultStorageProvider,\n '\"}' // solhint-disable-line quotes\n );\n }\n}\n" + }, + "contracts/registry/AddOnlyAppWhitelist.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {AddOnlyAppWhitelistRegistry} from \"./AddOnlyAppWhitelistRegistry.sol\";\nimport {IAddOnlyAppWhitelist} from \"../interfaces/IAddOnlyAppWhitelist.sol\";\nimport {ERC734} from \"./ERC734.sol\";\n\ncontract AddOnlyAppWhitelist is IAddOnlyAppWhitelist, ERC734 {\n AddOnlyAppWhitelistRegistry public immutable APP_WHITELIST_REGISTRY =\n AddOnlyAppWhitelistRegistry(msg.sender);\n\n // ---------------------AddOnlyAppWhitelist state------------------------------------\n uint256 internal constant GROUP_MEMBER_PURPOSE = 4;\n\n modifier onlyOperator() {\n if (!APP_WHITELIST_REGISTRY.isAuthorized(msg.sender, uint256(uint160(address(this))))) {\n revert NotAddOnlyAppWhitelistOperator();\n }\n _;\n }\n\n /***************************************************************************\n * Functions *\n **************************************************************************/\n function addApp(address _app) public onlyOperator {\n _setKeyHasPurpose(bytes32(uint256(uint160(_app))), GROUP_MEMBER_PURPOSE, true);\n emit NewAppAddedToAddOnlyAppWhitelist(_app);\n }\n\n function isRegistered(address _app) public view returns (bool) {\n return keyHasPurpose(bytes32(uint256(uint160(_app))), GROUP_MEMBER_PURPOSE);\n }\n\n function owner() public view returns (address) {\n return APP_WHITELIST_REGISTRY.ownerOf(uint256(uint160(address(this))));\n }\n\n function transferOwnership(address newOwner) public onlyOperator {\n APP_WHITELIST_REGISTRY.transferFrom(owner(), newOwner, uint256(uint160(address(this))));\n }\n}\n" + }, + "contracts/registry/AddOnlyAppWhitelistRegistry.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {ERC721Upgradeable} from \"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\";\nimport {Initializable} from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport {Clones} from \"@openzeppelin/contracts/proxy/Clones.sol\";\nimport {IAddOnlyAppWhitelistRegistry} from \"../interfaces/IAddOnlyAppWhitelistRegistry.sol\";\nimport {AddOnlyAppWhitelist, IAddOnlyAppWhitelist} from \"./AddOnlyAppWhitelist.sol\";\n\n/// @custom:oz-upgrades-unsafe-allow state-variable-immutable\ncontract AddOnlyAppWhitelistRegistry is\n IAddOnlyAppWhitelistRegistry,\n Initializable,\n ERC721Upgradeable\n{\n // ---------------------AddOnlyAppWhitelistRegistry state------------------------------------\n AddOnlyAppWhitelist public _implementationAddress;\n\n /***************************************************************************\n * Constructor *\n **************************************************************************/\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n\n function initialize() public initializer {\n __ERC721_init(\n \"iExec DataProtectorSharing Application Whitelist Registry\",\n \"iExecDataProtectorSharingAddOnlyAppWhitelist\"\n );\n _implementationAddress = new AddOnlyAppWhitelist();\n }\n\n /***************************************************************************\n * Functions *\n **************************************************************************/\n function createAddOnlyAppWhitelist(address owner) external returns (IAddOnlyAppWhitelist) {\n address clone = Clones.clone(address(_implementationAddress));\n _safeMint(owner, uint256(uint160(clone)));\n return IAddOnlyAppWhitelist(clone);\n }\n\n function _isAuthorized(\n address owner,\n address spender,\n uint256 tokenId\n ) internal view virtual override returns (bool) {\n // super call will revert of tokenId does not exist\n return super._isAuthorized(owner, spender, tokenId) || uint256(uint160(spender)) == tokenId;\n }\n\n function isAuthorized(address spender, uint256 tokenId) public view returns (bool) {\n return _isAuthorized(ownerOf(tokenId), spender, tokenId);\n }\n}\n" + }, + "contracts/registry/ERC734.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2024 IEXEC BLOCKCHAIN TECH *\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 ******************************************************************************/\npragma solidity ^0.8.24;\n\nimport {BitMaps} from \"@openzeppelin/contracts/utils/structs/BitMaps.sol\";\n\ncontract ERC734 {\n using BitMaps for BitMaps.BitMap;\n mapping(bytes32 => BitMaps.BitMap) internal _store;\n\n // should respect the Poco interface & be public\n function keyHasPurpose(bytes32 key, uint256 purpose) public view returns (bool) {\n return _store[key].get(purpose);\n }\n\n function _setKeyHasPurpose(bytes32 key, uint256 purpose, bool enable) internal {\n _store[key].setTo(purpose, enable);\n }\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "exportedSymbols": { + "AccessControlUpgradeable": [ + 362 + ], + "ContextUpgradeable": [ + 1801 + ], + "ERC165Upgradeable": [ + 1944 + ], + "IAccessControl": [ + 2027 + ], + "Initializable": [ + 630 + ] + }, + "id": 363, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "@openzeppelin/contracts/access/IAccessControl.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 363, + "sourceUnit": 2028, + "src": "134:81:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "142:14:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 5, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 363, + "sourceUnit": 1802, + "src": "216:67:0", + "symbolAliases": [ + { + "foreign": { + "id": 4, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1801, + "src": "224:18:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "file": "../utils/introspection/ERC165Upgradeable.sol", + "id": 7, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 363, + "sourceUnit": 1945, + "src": "284:79:0", + "symbolAliases": [ + { + "foreign": { + "id": 6, + "name": "ERC165Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1944, + "src": "292:17:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 9, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 363, + "sourceUnit": 631, + "src": "364:63:0", + "symbolAliases": [ + { + "foreign": { + "id": 8, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "372:13:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 11, + "name": "Initializable", + "nameLocations": [ + "2136:13:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "2136:13:0" + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "2136:13:0" + }, + { + "baseName": { + "id": 13, + "name": "ContextUpgradeable", + "nameLocations": [ + "2151:18:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1801, + "src": "2151:18:0" + }, + "id": 14, + "nodeType": "InheritanceSpecifier", + "src": "2151:18:0" + }, + { + "baseName": { + "id": 15, + "name": "IAccessControl", + "nameLocations": [ + "2171:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2027, + "src": "2171:14:0" + }, + "id": 16, + "nodeType": "InheritanceSpecifier", + "src": "2171:14:0" + }, + { + "baseName": { + "id": 17, + "name": "ERC165Upgradeable", + "nameLocations": [ + "2187:17:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1944, + "src": "2187:17:0" + }, + "id": 18, + "nodeType": "InheritanceSpecifier", + "src": "2187:17:0" + } + ], + "canonicalName": "AccessControlUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 10, + "nodeType": "StructuredDocumentation", + "src": "429:1660:0", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role." + }, + "fullyImplemented": true, + "id": 362, + "linearizedBaseContracts": [ + 362, + 1944, + 5562, + 2027, + 1801, + 630 + ], + "name": "AccessControlUpgradeable", + "nameLocation": "2108:24:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AccessControlUpgradeable.RoleData", + "id": 25, + "members": [ + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "hasRole", + "nameLocation": "2270:7:0", + "nodeType": "VariableDeclaration", + "scope": 25, + "src": "2237:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 21, + "keyName": "account", + "keyNameLocation": "2253:7:0", + "keyType": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2245:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2237:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 20, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2264:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "2295:9:0", + "nodeType": "VariableDeclaration", + "scope": 25, + "src": "2287:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 23, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2287:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "2218:8:0", + "nodeType": "StructDefinition", + "scope": 362, + "src": "2211:100:0", + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 28, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2341:18:0", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "2317:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 26, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2317:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2362:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "canonicalName": "AccessControlUpgradeable.AccessControlStorage", + "documentation": { + "id": 29, + "nodeType": "StructuredDocumentation", + "src": "2374:71:0", + "text": "@custom:storage-location erc7201:openzeppelin.storage.AccessControl" + }, + "id": 35, + "members": [ + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "2522:6:0", + "nodeType": "VariableDeclaration", + "scope": 35, + "src": "2488:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)" + }, + "typeName": { + "id": 33, + "keyName": "role", + "keyNameLocation": "2504:4:0", + "keyType": { + "id": 30, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2496:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2488:33:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 32, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 31, + "name": "RoleData", + "nameLocations": [ + "2512:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 25, + "src": "2512:8:0" + }, + "referencedDeclaration": 25, + "src": "2512:8:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$25_storage_ptr", + "typeString": "struct AccessControlUpgradeable.RoleData" + } + } + }, + "visibility": "internal" + } + ], + "name": "AccessControlStorage", + "nameLocation": "2457:20:0", + "nodeType": "StructDefinition", + "scope": 362, + "src": "2450:85:0", + "visibility": "public" + }, + { + "constant": true, + "id": 38, + "mutability": "constant", + "name": "AccessControlStorageLocation", + "nameLocation": "2683:28:0", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "2658:122:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 36, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2658:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307830326464376263376465633464636565646461373735653538646435343165303861313136633663353338313563306264303238313932663762363236383030", + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2714:66:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1295953201772911215391058989745868821651057887752387839782086074958115661824_by_1", + "typeString": "int_const 1295...(68 digits omitted)...1824" + }, + "value": "0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800" + }, + "visibility": "private" + }, + { + "body": { + "id": 45, + "nodeType": "Block", + "src": "2877:87:0", + "statements": [ + { + "AST": { + "nativeSrc": "2896:62:0", + "nodeType": "YulBlock", + "src": "2896:62:0", + "statements": [ + { + "nativeSrc": "2910:38:0", + "nodeType": "YulAssignment", + "src": "2910:38:0", + "value": { + "name": "AccessControlStorageLocation", + "nativeSrc": "2920:28:0", + "nodeType": "YulIdentifier", + "src": "2920:28:0" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "2910:6:0", + "nodeType": "YulIdentifier", + "src": "2910:6:0" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 42, + "isOffset": false, + "isSlot": true, + "src": "2910:6:0", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 38, + "isOffset": false, + "isSlot": false, + "src": "2920:28:0", + "valueSize": 1 + } + ], + "id": 44, + "nodeType": "InlineAssembly", + "src": "2887:71:0" + } + ] + }, + "id": 46, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getAccessControlStorage", + "nameLocation": "2796:24:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [], + "src": "2820:2:0" + }, + "returnParameters": { + "id": 43, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "$", + "nameLocation": "2874:1:0", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "2845:30:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + }, + "typeName": { + "id": 41, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 40, + "name": "AccessControlStorage", + "nameLocations": [ + "2845:20:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "2845:20:0" + }, + "referencedDeclaration": 35, + "src": "2845:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + } + }, + "visibility": "internal" + } + ], + "src": "2844:32:0" + }, + "scope": 362, + "src": "2787:177:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 56, + "nodeType": "Block", + "src": "3181:44:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 52, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49, + "src": "3202:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 51, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 129, + 150 + ], + "referencedDeclaration": 129, + "src": "3191:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3191:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 54, + "nodeType": "ExpressionStatement", + "src": "3191:16:0" + }, + { + "id": 55, + "nodeType": "PlaceholderStatement", + "src": "3217:1:0" + } + ] + }, + "documentation": { + "id": 47, + "nodeType": "StructuredDocumentation", + "src": "2970:174:0", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role." + }, + "id": 57, + "name": "onlyRole", + "nameLocation": "3158:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "role", + "nameLocation": "3175:4:0", + "nodeType": "VariableDeclaration", + "scope": 57, + "src": "3167:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 48, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3167:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3166:14:0" + }, + "src": "3149:76:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 62, + "nodeType": "Block", + "src": "3289:7:0", + "statements": [] + }, + "id": 63, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 60, + "kind": "modifierInvocation", + "modifierName": { + "id": 59, + "name": "onlyInitializing", + "nameLocations": [ + "3272:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "3272:16:0" + }, + "nodeType": "ModifierInvocation", + "src": "3272:16:0" + } + ], + "name": "__AccessControl_init", + "nameLocation": "3240:20:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 58, + "nodeType": "ParameterList", + "parameters": [], + "src": "3260:2:0" + }, + "returnParameters": { + "id": 61, + "nodeType": "ParameterList", + "parameters": [], + "src": "3289:0:0" + }, + "scope": 362, + "src": "3231:65:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 68, + "nodeType": "Block", + "src": "3370:7:0", + "statements": [] + }, + "id": 69, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 66, + "kind": "modifierInvocation", + "modifierName": { + "id": 65, + "name": "onlyInitializing", + "nameLocations": [ + "3353:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "3353:16:0" + }, + "nodeType": "ModifierInvocation", + "src": "3353:16:0" + } + ], + "name": "__AccessControl_init_unchained", + "nameLocation": "3311:30:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 64, + "nodeType": "ParameterList", + "parameters": [], + "src": "3341:2:0" + }, + "returnParameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [], + "src": "3370:0:0" + }, + "scope": 362, + "src": "3302:75:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1943 + ], + "body": { + "id": 90, + "nodeType": "Block", + "src": "3534:111:0", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 78, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "3551:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 80, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "3571:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$2027_$", + "typeString": "type(contract IAccessControl)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$2027_$", + "typeString": "type(contract IAccessControl)" + } + ], + "id": 79, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3566:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3566:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$2027", + "typeString": "type(contract IAccessControl)" + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3587:11:0", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "3566:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "3551:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 86, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "3626:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 84, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3602:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControlUpgradeable_$362_$", + "typeString": "type(contract super AccessControlUpgradeable)" + } + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3608:17:0", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1943, + "src": "3602:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3602:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3551:87:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 77, + "id": 89, + "nodeType": "Return", + "src": "3544:94:0" + } + ] + }, + "documentation": { + "id": 70, + "nodeType": "StructuredDocumentation", + "src": "3382:56:0", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 91, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "3452:17:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 74, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3510:8:0" + }, + "parameters": { + "id": 73, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 72, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "3477:11:0", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "3470:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 71, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3470:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "3469:20:0" + }, + "returnParameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 91, + "src": "3528:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 75, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3528:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3527:6:0" + }, + "scope": 362, + "src": "3443:202:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 1994 + ], + "body": { + "id": 115, + "nodeType": "Block", + "src": "3815:124:0", + "statements": [ + { + "assignments": [ + 103 + ], + "declarations": [ + { + "constant": false, + "id": 103, + "mutability": "mutable", + "name": "$", + "nameLocation": "3854:1:0", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "3825:30:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + }, + "typeName": { + "id": 102, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 101, + "name": "AccessControlStorage", + "nameLocations": [ + "3825:20:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "3825:20:0" + }, + "referencedDeclaration": 35, + "src": "3825:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + } + }, + "visibility": "internal" + } + ], + "id": 106, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 104, + "name": "_getAccessControlStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "3858:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$", + "typeString": "function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)" + } + }, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3858:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3825:59:0" + }, + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 107, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "3901:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "id": 108, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3903:6:0", + "memberName": "_roles", + "nodeType": "MemberAccess", + "referencedDeclaration": 34, + "src": "3901:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 110, + "indexExpression": { + "id": 109, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "3910:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$25_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 111, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3916:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "3901:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 113, + "indexExpression": { + "id": 112, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3924:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 100, + "id": 114, + "nodeType": "Return", + "src": "3894:38:0" + } + ] + }, + "documentation": { + "id": 92, + "nodeType": "StructuredDocumentation", + "src": "3651:76:0", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 116, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "3741:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 94, + "mutability": "mutable", + "name": "role", + "nameLocation": "3757:4:0", + "nodeType": "VariableDeclaration", + "scope": 116, + "src": "3749:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 93, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3749:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "account", + "nameLocation": "3771:7:0", + "nodeType": "VariableDeclaration", + "scope": 116, + "src": "3763:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 95, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3763:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3748:31:0" + }, + "returnParameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 116, + "src": "3809:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 98, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3809:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3808:6:0" + }, + "scope": 362, + "src": "3732:207:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 128, + "nodeType": "Block", + "src": "4204:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 123, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "4225:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 124, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "4231:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4231:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 122, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 129, + 150 + ], + "referencedDeclaration": 150, + "src": "4214:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4214:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 127, + "nodeType": "ExpressionStatement", + "src": "4214:30:0" + } + ] + }, + "documentation": { + "id": 117, + "nodeType": "StructuredDocumentation", + "src": "3945:198:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier." + }, + "id": 129, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "4157:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 119, + "mutability": "mutable", + "name": "role", + "nameLocation": "4176:4:0", + "nodeType": "VariableDeclaration", + "scope": 129, + "src": "4168:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 118, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4168:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4167:14:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [], + "src": "4204:0:0" + }, + "scope": 362, + "src": "4148:103:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 149, + "nodeType": "Block", + "src": "4454:124:0", + "statements": [ + { + "condition": { + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4468:23:0", + "subExpression": { + "arguments": [ + { + "id": 138, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "4477:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 139, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "4483:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 137, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "4469:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4469:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 148, + "nodeType": "IfStatement", + "src": "4464:108:0", + "trueBody": { + "id": 147, + "nodeType": "Block", + "src": "4493:79:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 143, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "4547:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 144, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 132, + "src": "4556:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 142, + "name": "AccessControlUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1954, + "src": "4514:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$__$", + "typeString": "function (address,bytes32) pure" + } + }, + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4514:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 146, + "nodeType": "RevertStatement", + "src": "4507:54:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 130, + "nodeType": "StructuredDocumentation", + "src": "4257:119:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`." + }, + "id": 150, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "4390:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "role", + "nameLocation": "4409:4:0", + "nodeType": "VariableDeclaration", + "scope": 150, + "src": "4401:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 131, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4401:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 134, + "mutability": "mutable", + "name": "account", + "nameLocation": "4423:7:0", + "nodeType": "VariableDeclaration", + "scope": 150, + "src": "4415:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 133, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4415:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4400:31:0" + }, + "returnParameters": { + "id": 136, + "nodeType": "ParameterList", + "parameters": [], + "src": "4454:0:0" + }, + "scope": 362, + "src": "4381:197:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 2002 + ], + "body": { + "id": 170, + "nodeType": "Block", + "src": "4833:117:0", + "statements": [ + { + "assignments": [ + 160 + ], + "declarations": [ + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "$", + "nameLocation": "4872:1:0", + "nodeType": "VariableDeclaration", + "scope": 170, + "src": "4843:30:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + }, + "typeName": { + "id": 159, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 158, + "name": "AccessControlStorage", + "nameLocations": [ + "4843:20:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "4843:20:0" + }, + "referencedDeclaration": 35, + "src": "4843:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + } + }, + "visibility": "internal" + } + ], + "id": 163, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 161, + "name": "_getAccessControlStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "4876:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$", + "typeString": "function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)" + } + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4876:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4843:59:0" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 164, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "4919:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "id": 165, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4921:6:0", + "memberName": "_roles", + "nodeType": "MemberAccess", + "referencedDeclaration": 34, + "src": "4919:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 167, + "indexExpression": { + "id": 166, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "4928:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4919:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$25_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 168, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4934:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 24, + "src": "4919:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 157, + "id": 169, + "nodeType": "Return", + "src": "4912:31:0" + } + ] + }, + "documentation": { + "id": 151, + "nodeType": "StructuredDocumentation", + "src": "4584:170:0", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "4768:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "role", + "nameLocation": "4789:4:0", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "4781:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 152, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4781:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4780:14:0" + }, + "returnParameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "4824:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 155, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4824:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4823:9:0" + }, + "scope": 362, + "src": "4759:191:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2010 + ], + "body": { + "id": 189, + "nodeType": "Block", + "src": "5340:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 185, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "5361:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 186, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "5367:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 184, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "5350:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5350:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 188, + "nodeType": "ExpressionStatement", + "src": "5350:25:0" + } + ] + }, + "documentation": { + "id": 172, + "nodeType": "StructuredDocumentation", + "src": "4956:285:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event." + }, + "functionSelector": "2f2ff15d", + "id": 190, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 180, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 174, + "src": "5333:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 179, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5320:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5320:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 182, + "kind": "modifierInvocation", + "modifierName": { + "id": 178, + "name": "onlyRole", + "nameLocations": [ + "5311:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 57, + "src": "5311:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "5311:28:0" + } + ], + "name": "grantRole", + "nameLocation": "5255:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "role", + "nameLocation": "5273:4:0", + "nodeType": "VariableDeclaration", + "scope": 190, + "src": "5265:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 173, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5265:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "account", + "nameLocation": "5287:7:0", + "nodeType": "VariableDeclaration", + "scope": 190, + "src": "5279:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 175, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5279:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5264:31:0" + }, + "returnParameters": { + "id": 183, + "nodeType": "ParameterList", + "parameters": [], + "src": "5340:0:0" + }, + "scope": 362, + "src": "5246:136:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2018 + ], + "body": { + "id": 208, + "nodeType": "Block", + "src": "5757:43:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 204, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "5779:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 205, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "5785:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 203, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 361, + "src": "5767:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5767:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 207, + "nodeType": "ExpressionStatement", + "src": "5767:26:0" + } + ] + }, + "documentation": { + "id": 191, + "nodeType": "StructuredDocumentation", + "src": "5388:269:0", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "d547741f", + "id": 209, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 199, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "5750:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 198, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5737:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5737:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 201, + "kind": "modifierInvocation", + "modifierName": { + "id": 197, + "name": "onlyRole", + "nameLocations": [ + "5728:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 57, + "src": "5728:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "5728:28:0" + } + ], + "name": "revokeRole", + "nameLocation": "5671:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 193, + "mutability": "mutable", + "name": "role", + "nameLocation": "5690:4:0", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "5682:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 195, + "mutability": "mutable", + "name": "account", + "nameLocation": "5704:7:0", + "nodeType": "VariableDeclaration", + "scope": 209, + "src": "5696:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5696:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5681:31:0" + }, + "returnParameters": { + "id": 202, + "nodeType": "ParameterList", + "parameters": [], + "src": "5757:0:0" + }, + "scope": 362, + "src": "5662:138:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 2026 + ], + "body": { + "id": 231, + "nodeType": "Block", + "src": "6427:166:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 217, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "6441:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 218, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "6463:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6463:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6441:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 225, + "nodeType": "IfStatement", + "src": "6437:102:0", + "trueBody": { + "id": 224, + "nodeType": "Block", + "src": "6477:62:0", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 221, + "name": "AccessControlBadConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1957, + "src": "6498:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6498:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "RevertStatement", + "src": "6491:37:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 227, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 212, + "src": "6561:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 228, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "6567:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 226, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 361, + "src": "6549:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6549:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 230, + "nodeType": "ExpressionStatement", + "src": "6549:37:0" + } + ] + }, + "documentation": { + "id": 210, + "nodeType": "StructuredDocumentation", + "src": "5806:537:0", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "36568abe", + "id": 232, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "6357:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "role", + "nameLocation": "6378:4:0", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "6370:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 211, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6370:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "6392:18:0", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "6384:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6384:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6369:42:0" + }, + "returnParameters": { + "id": 216, + "nodeType": "ParameterList", + "parameters": [], + "src": "6427:0:0" + }, + "scope": 362, + "src": "6348:245:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 267, + "nodeType": "Block", + "src": "6791:245:0", + "statements": [ + { + "assignments": [ + 242 + ], + "declarations": [ + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "$", + "nameLocation": "6830:1:0", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "6801:30:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + }, + "typeName": { + "id": 241, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 240, + "name": "AccessControlStorage", + "nameLocations": [ + "6801:20:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "6801:20:0" + }, + "referencedDeclaration": 35, + "src": "6801:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + } + }, + "visibility": "internal" + } + ], + "id": 245, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 243, + "name": "_getAccessControlStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "6834:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$", + "typeString": "function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6834:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6801:59:0" + }, + { + "assignments": [ + 247 + ], + "declarations": [ + { + "constant": false, + "id": 247, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "6878:17:0", + "nodeType": "VariableDeclaration", + "scope": 267, + "src": "6870:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 246, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6870:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 251, + "initialValue": { + "arguments": [ + { + "id": 249, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "6911:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 248, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "6898:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6898:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6870:46:0" + }, + { + "expression": { + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 252, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "6926:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "id": 255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6928:6:0", + "memberName": "_roles", + "nodeType": "MemberAccess", + "referencedDeclaration": 34, + "src": "6926:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 256, + "indexExpression": { + "id": 254, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "6935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6926:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$25_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6941:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 24, + "src": "6926:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 258, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "6953:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6926:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 260, + "nodeType": "ExpressionStatement", + "src": "6926:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 262, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 235, + "src": "6994:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 263, + "name": "previousAdminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 247, + "src": "7000:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 264, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "7019:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 261, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1966, + "src": "6977:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6977:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 266, + "nodeType": "EmitStatement", + "src": "6972:57:0" + } + ] + }, + "documentation": { + "id": 233, + "nodeType": "StructuredDocumentation", + "src": "6599:114:0", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 268, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "6727:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 235, + "mutability": "mutable", + "name": "role", + "nameLocation": "6749:4:0", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "6741:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 234, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6741:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "6763:9:0", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "6755:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 236, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6755:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6740:33:0" + }, + "returnParameters": { + "id": 239, + "nodeType": "ParameterList", + "parameters": [], + "src": "6791:0:0" + }, + "scope": 362, + "src": "6718:318:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 314, + "nodeType": "Block", + "src": "7353:304:0", + "statements": [ + { + "assignments": [ + 280 + ], + "declarations": [ + { + "constant": false, + "id": 280, + "mutability": "mutable", + "name": "$", + "nameLocation": "7392:1:0", + "nodeType": "VariableDeclaration", + "scope": 314, + "src": "7363:30:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + }, + "typeName": { + "id": 279, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 278, + "name": "AccessControlStorage", + "nameLocations": [ + "7363:20:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "7363:20:0" + }, + "referencedDeclaration": 35, + "src": "7363:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + } + }, + "visibility": "internal" + } + ], + "id": 283, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 281, + "name": "_getAccessControlStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "7396:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$", + "typeString": "function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7396:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7363:59:0" + }, + { + "condition": { + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7436:23:0", + "subExpression": { + "arguments": [ + { + "id": 285, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "7445:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 286, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "7451:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 284, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "7437:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7437:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 312, + "nodeType": "Block", + "src": "7614:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7635:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 277, + "id": 311, + "nodeType": "Return", + "src": "7628:12:0" + } + ] + }, + "id": 313, + "nodeType": "IfStatement", + "src": "7432:219:0", + "trueBody": { + "id": 309, + "nodeType": "Block", + "src": "7461:147:0", + "statements": [ + { + "expression": { + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 289, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 280, + "src": "7475:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "id": 292, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7477:6:0", + "memberName": "_roles", + "nodeType": "MemberAccess", + "referencedDeclaration": 34, + "src": "7475:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 293, + "indexExpression": { + "id": 291, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "7484:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7475:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$25_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 294, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7490:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "7475:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 296, + "indexExpression": { + "id": 295, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "7498:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7475:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7509:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "7475:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 299, + "nodeType": "ExpressionStatement", + "src": "7475:38:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 301, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "7544:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 302, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 273, + "src": "7550:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 303, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "7559:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7559:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 300, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1975, + "src": "7532:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7532:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 306, + "nodeType": "EmitStatement", + "src": "7527:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 277, + "id": 308, + "nodeType": "Return", + "src": "7586:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 269, + "nodeType": "StructuredDocumentation", + "src": "7042:223:0", + "text": " @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event." + }, + "id": 315, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "7279:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 271, + "mutability": "mutable", + "name": "role", + "nameLocation": "7298:4:0", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "7290:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 270, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "account", + "nameLocation": "7312:7:0", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "7304:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 272, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7304:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7289:31:0" + }, + "returnParameters": { + "id": 277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 276, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "7347:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 275, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7346:6:0" + }, + "scope": 362, + "src": "7270:387:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 360, + "nodeType": "Block", + "src": "7978:304:0", + "statements": [ + { + "assignments": [ + 327 + ], + "declarations": [ + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "$", + "nameLocation": "8017:1:0", + "nodeType": "VariableDeclaration", + "scope": 360, + "src": "7988:30:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + }, + "typeName": { + "id": 326, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 325, + "name": "AccessControlStorage", + "nameLocations": [ + "7988:20:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 35, + "src": "7988:20:0" + }, + "referencedDeclaration": 35, + "src": "7988:20:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage" + } + }, + "visibility": "internal" + } + ], + "id": 330, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 328, + "name": "_getAccessControlStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "8021:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AccessControlStorage_$35_storage_ptr_$", + "typeString": "function () pure returns (struct AccessControlUpgradeable.AccessControlStorage storage pointer)" + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8021:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7988:59:0" + }, + { + "condition": { + "arguments": [ + { + "id": 332, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "8069:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 333, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "8075:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 331, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "8061:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8061:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 358, + "nodeType": "Block", + "src": "8239:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8260:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 324, + "id": 357, + "nodeType": "Return", + "src": "8253:12:0" + } + ] + }, + "id": 359, + "nodeType": "IfStatement", + "src": "8057:219:0", + "trueBody": { + "id": 355, + "nodeType": "Block", + "src": "8085:148:0", + "statements": [ + { + "expression": { + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 335, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "8099:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AccessControlStorage_$35_storage_ptr", + "typeString": "struct AccessControlUpgradeable.AccessControlStorage storage pointer" + } + }, + "id": 338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8101:6:0", + "memberName": "_roles", + "nodeType": "MemberAccess", + "referencedDeclaration": 34, + "src": "8099:8:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$25_storage_$", + "typeString": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData storage ref)" + } + }, + "id": 339, + "indexExpression": { + "id": 337, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "8108:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8099:14:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$25_storage", + "typeString": "struct AccessControlUpgradeable.RoleData storage ref" + } + }, + "id": 340, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8114:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "8099:22:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 342, + "indexExpression": { + "id": 341, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "8122:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8099:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8133:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "8099:39:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 345, + "nodeType": "ExpressionStatement", + "src": "8099:39:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 347, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "8169:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 348, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "8175:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 349, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "8184:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8184:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 346, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1984, + "src": "8157:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8157:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 352, + "nodeType": "EmitStatement", + "src": "8152:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8218:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 324, + "id": 354, + "nodeType": "Return", + "src": "8211:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 316, + "nodeType": "StructuredDocumentation", + "src": "7663:226:0", + "text": " @dev Attempts to revoke `role` from `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event." + }, + "id": 361, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "7903:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "role", + "nameLocation": "7923:4:0", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "7915:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 317, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7915:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "account", + "nameLocation": "7937:7:0", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "7929:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7929:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7914:31:0" + }, + "returnParameters": { + "id": 324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "7972:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 322, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7972:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7971:6:0" + }, + "scope": 362, + "src": "7894:388:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 363, + "src": "2090:6194:0", + "usedErrors": [ + 379, + 382, + 1954, + 1957 + ], + "usedEvents": [ + 387, + 1966, + 1975, + 1984 + ] + } + ], + "src": "108:8177:0" + }, + "id": 0 + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 630 + ] + }, + "id": 631, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 364, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:1" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 365, + "nodeType": "StructuredDocumentation", + "src": "139:2209:1", + "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": 630, + "linearizedBaseContracts": [ + 630 + ], + "name": "Initializable", + "nameLocation": "2367:13:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Initializable.InitializableStorage", + "documentation": { + "id": 366, + "nodeType": "StructuredDocumentation", + "src": "2387:293:1", + "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": 373, + "members": [ + { + "constant": false, + "id": 369, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "2820:12:1", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "2813:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 368, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2813:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "2955:13:1", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "2950:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 371, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "InitializableStorage", + "nameLocation": "2692:20:1", + "nodeType": "StructDefinition", + "scope": 630, + "src": "2685:290:1", + "visibility": "public" + }, + { + "constant": true, + "id": 376, + "mutability": "constant", + "name": "INITIALIZABLE_STORAGE", + "nameLocation": "3123:21:1", + "nodeType": "VariableDeclaration", + "scope": 630, + "src": "3098:115:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 374, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030", + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:66:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1", + "typeString": "int_const 1089...(70 digits omitted)...9600" + }, + "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 377, + "nodeType": "StructuredDocumentation", + "src": "3220:60:1", + "text": " @dev The contract is already initialized." + }, + "errorSelector": "f92ee8a9", + "id": 379, + "name": "InvalidInitialization", + "nameLocation": "3291:21:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:2:1" + }, + "src": "3285:30:1" + }, + { + "documentation": { + "id": 380, + "nodeType": "StructuredDocumentation", + "src": "3321:57:1", + "text": " @dev The contract is not initializing." + }, + "errorSelector": "d7e6bcf8", + "id": 382, + "name": "NotInitializing", + "nameLocation": "3389:15:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 381, + "nodeType": "ParameterList", + "parameters": [], + "src": "3404:2:1" + }, + "src": "3383:24:1" + }, + { + "anonymous": false, + "documentation": { + "id": 383, + "nodeType": "StructuredDocumentation", + "src": "3413:90:1", + "text": " @dev Triggered when the contract has been initialized or reinitialized." + }, + "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2", + "id": 387, + "name": "Initialized", + "nameLocation": "3514:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 385, + "indexed": false, + "mutability": "mutable", + "name": "version", + "nameLocation": "3533:7:1", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "3526:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 384, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3526:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3525:16:1" + }, + "src": "3508:34:1" + }, + { + "body": { + "id": 469, + "nodeType": "Block", + "src": "4092:1079:1", + "statements": [ + { + "assignments": [ + 392 + ], + "declarations": [ + { + "constant": false, + "id": 392, + "mutability": "mutable", + "name": "$", + "nameLocation": "4187:1:1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "4158:30:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 391, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 390, + "name": "InitializableStorage", + "nameLocations": [ + "4158:20:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 373, + "src": "4158:20:1" + }, + "referencedDeclaration": 373, + "src": "4158:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 393, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "4191:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$373_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4191:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4158:59:1" + }, + { + "assignments": [ + 397 + ], + "declarations": [ + { + "constant": false, + "id": 397, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "4284:14:1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "4279:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 396, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4279:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 401, + "initialValue": { + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4301:16:1", + "subExpression": { + "expression": { + "id": 398, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "4302:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 399, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4304:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "4302:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4279:38:1" + }, + { + "assignments": [ + 403 + ], + "declarations": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "initialized", + "nameLocation": "4334:11:1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "4327:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 402, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4327:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 406, + "initialValue": { + "expression": { + "id": 404, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "4348:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 405, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4350:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "4348:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4327:35:1" + }, + { + "assignments": [ + 408 + ], + "declarations": [ + { + "constant": false, + "id": 408, + "mutability": "mutable", + "name": "initialSetup", + "nameLocation": "4709:12:1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "4704:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 407, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4704:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 414, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 409, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "4724:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4739:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4724:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 412, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "4744:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4724:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4704:54:1" + }, + { + "assignments": [ + 416 + ], + "declarations": [ + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "construction", + "nameLocation": "4773:12:1", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "4768:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 429, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 417, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "4788:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4803:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4788:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 422, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4816:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$630", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$630", + "typeString": "contract Initializable" + } + ], + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4808:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4808:7:1", + "typeDescriptions": {} + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4808:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4822:4:1", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4808:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4827:6:1", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4808:25:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4837:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4808:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4788:50:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4768:70:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4853:13:1", + "subExpression": { + "id": 430, + "name": "initialSetup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "4854:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4870:13:1", + "subExpression": { + "id": 432, + "name": "construction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "4871:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4853:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 439, + "nodeType": "IfStatement", + "src": "4849:91:1", + "trueBody": { + "id": 438, + "nodeType": "Block", + "src": "4885:55:1", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 435, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "4906:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4906:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 437, + "nodeType": "RevertStatement", + "src": "4899:30:1" + } + ] + } + }, + { + "expression": { + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 440, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "4949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 442, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4951:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "4949:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4966:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4949:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 445, + "nodeType": "ExpressionStatement", + "src": "4949:18:1" + }, + { + "condition": { + "id": 446, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "4981:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 454, + "nodeType": "IfStatement", + "src": "4977:67:1", + "trueBody": { + "id": 453, + "nodeType": "Block", + "src": "4997:47:1", + "statements": [ + { + "expression": { + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 447, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "5011:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 449, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5013:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "5011:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5029:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5011:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 452, + "nodeType": "ExpressionStatement", + "src": "5011:22:1" + } + ] + } + }, + { + "id": 455, + "nodeType": "PlaceholderStatement", + "src": "5053:1:1" + }, + { + "condition": { + "id": 456, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "5068:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 468, + "nodeType": "IfStatement", + "src": "5064:101:1", + "trueBody": { + "id": 467, + "nodeType": "Block", + "src": "5084:81:1", + "statements": [ + { + "expression": { + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 457, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 392, + "src": "5098:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5100:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "5098:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5116:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5098:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 462, + "nodeType": "ExpressionStatement", + "src": "5098:23:1" + }, + { + "eventCall": { + "arguments": [ + { + "hexValue": "31", + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5152:1:1", + "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": 463, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "5140:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5140:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 466, + "nodeType": "EmitStatement", + "src": "5135:19:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 388, + "nodeType": "StructuredDocumentation", + "src": "3548:516:1", + "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": 470, + "name": "initializer", + "nameLocation": "4078:11:1", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [], + "src": "4089:2:1" + }, + "src": "4069:1102:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 516, + "nodeType": "Block", + "src": "6289:392:1", + "statements": [ + { + "assignments": [ + 477 + ], + "declarations": [ + { + "constant": false, + "id": 477, + "mutability": "mutable", + "name": "$", + "nameLocation": "6384:1:1", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "6355:30:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 476, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 475, + "name": "InitializableStorage", + "nameLocations": [ + "6355:20:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 373, + "src": "6355:20:1" + }, + "referencedDeclaration": 373, + "src": "6355:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 480, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 478, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "6388:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$373_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6388:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6355:59:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 481, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "6429:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 482, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6431:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "6429:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 483, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "6448:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 484, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6450:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "6448:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 485, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "6466:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6448:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6429:44:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 492, + "nodeType": "IfStatement", + "src": "6425:105:1", + "trueBody": { + "id": 491, + "nodeType": "Block", + "src": "6475:55:1", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 488, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "6496:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6496:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 490, + "nodeType": "RevertStatement", + "src": "6489:30:1" + } + ] + } + }, + { + "expression": { + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 493, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "6539:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 495, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6541:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "6539:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 496, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "6556:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6539:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 498, + "nodeType": "ExpressionStatement", + "src": "6539:24:1" + }, + { + "expression": { + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 499, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "6573:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 501, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6575:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "6573:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6591:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6573:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 504, + "nodeType": "ExpressionStatement", + "src": "6573:22:1" + }, + { + "id": 505, + "nodeType": "PlaceholderStatement", + "src": "6605:1:1" + }, + { + "expression": { + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 506, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "6616:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 508, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6618:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "6616:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6634:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6616:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 511, + "nodeType": "ExpressionStatement", + "src": "6616:23:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 513, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "6666:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 512, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "6654:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6654:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 515, + "nodeType": "EmitStatement", + "src": "6649:25:1" + } + ] + }, + "documentation": { + "id": 471, + "nodeType": "StructuredDocumentation", + "src": "5177:1068:1", + "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": 517, + "name": "reinitializer", + "nameLocation": "6259:13:1", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 473, + "mutability": "mutable", + "name": "version", + "nameLocation": "6280:7:1", + "nodeType": "VariableDeclaration", + "scope": 517, + "src": "6273:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 472, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6273:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6272:16:1" + }, + "src": "6250:431:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 524, + "nodeType": "Block", + "src": "6919:48:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 520, + "name": "_checkInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 538, + "src": "6929:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6929:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "6929:20:1" + }, + { + "id": 523, + "nodeType": "PlaceholderStatement", + "src": "6959:1:1" + } + ] + }, + "documentation": { + "id": 518, + "nodeType": "StructuredDocumentation", + "src": "6687:199:1", + "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": 525, + "name": "onlyInitializing", + "nameLocation": "6900:16:1", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "6916:2:1" + }, + "src": "6891:76:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 537, + "nodeType": "Block", + "src": "7134:89:1", + "statements": [ + { + "condition": { + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7148:18:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 529, + "name": "_isInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 606, + "src": "7149:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7149:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 536, + "nodeType": "IfStatement", + "src": "7144:73:1", + "trueBody": { + "id": 535, + "nodeType": "Block", + "src": "7168:49:1", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 532, + "name": "NotInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 382, + "src": "7189:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7189:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 534, + "nodeType": "RevertStatement", + "src": "7182:24:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 526, + "nodeType": "StructuredDocumentation", + "src": "6973:104:1", + "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}." + }, + "id": 538, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkInitializing", + "nameLocation": "7091:18:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [], + "src": "7109:2:1" + }, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "7134:0:1" + }, + "scope": 630, + "src": "7082:141:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 583, + "nodeType": "Block", + "src": "7758:373:1", + "statements": [ + { + "assignments": [ + 544 + ], + "declarations": [ + { + "constant": false, + "id": 544, + "mutability": "mutable", + "name": "$", + "nameLocation": "7853:1:1", + "nodeType": "VariableDeclaration", + "scope": 583, + "src": "7824:30:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 543, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 542, + "name": "InitializableStorage", + "nameLocations": [ + "7824:20:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 373, + "src": "7824:20:1" + }, + "referencedDeclaration": 373, + "src": "7824:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 547, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 545, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "7857:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$373_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7857:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7824:59:1" + }, + { + "condition": { + "expression": { + "id": 548, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "7898:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 549, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7900:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "7898:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 554, + "nodeType": "IfStatement", + "src": "7894:76:1", + "trueBody": { + "id": 553, + "nodeType": "Block", + "src": "7915:55:1", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 550, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "7936:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7936:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 552, + "nodeType": "RevertStatement", + "src": "7929:30:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 555, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "7983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 556, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7985:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "7983:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8006:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 558, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8006:6:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 557, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8001:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8001:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8014:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8001:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "7983:34:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 582, + "nodeType": "IfStatement", + "src": "7979:146:1", + "trueBody": { + "id": 581, + "nodeType": "Block", + "src": "8019:106:1", + "statements": [ + { + "expression": { + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 563, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "8033:1:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 565, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8035:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "8033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "arguments": [ + { + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8055:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 567, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8055:6:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 566, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8050:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8050:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8063:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8050:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8033:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 572, + "nodeType": "ExpressionStatement", + "src": "8033:33:1" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8102:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 575, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8102:6:1", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 574, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8097:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8097:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8110:3:1", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8097:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 573, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "8085:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8085:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 580, + "nodeType": "EmitStatement", + "src": "8080:34:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 539, + "nodeType": "StructuredDocumentation", + "src": "7229:475:1", + "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": 584, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disableInitializers", + "nameLocation": "7718:20:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 540, + "nodeType": "ParameterList", + "parameters": [], + "src": "7738:2:1" + }, + "returnParameters": { + "id": 541, + "nodeType": "ParameterList", + "parameters": [], + "src": "7758:0:1" + }, + "scope": 630, + "src": "7709:422:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 594, + "nodeType": "Block", + "src": "8306:63:1", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 590, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8323:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$373_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8323:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8350:12:1", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 369, + "src": "8323:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 589, + "id": 593, + "nodeType": "Return", + "src": "8316:46:1" + } + ] + }, + "documentation": { + "id": 585, + "nodeType": "StructuredDocumentation", + "src": "8137:99:1", + "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." + }, + "id": 595, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializedVersion", + "nameLocation": "8250:22:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 586, + "nodeType": "ParameterList", + "parameters": [], + "src": "8272:2:1" + }, + "returnParameters": { + "id": 589, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 588, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 595, + "src": "8298:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 587, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8298:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8297:8:1" + }, + "scope": 630, + "src": "8241:128:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 605, + "nodeType": "Block", + "src": "8541:64:1", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 601, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 629, + "src": "8558:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$373_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8558:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 603, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8585:13:1", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 372, + "src": "8558:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 600, + "id": 604, + "nodeType": "Return", + "src": "8551:47:1" + } + ] + }, + "documentation": { + "id": 596, + "nodeType": "StructuredDocumentation", + "src": "8375:105:1", + "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." + }, + "id": 606, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isInitializing", + "nameLocation": "8494:15:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "8509:2:1" + }, + "returnParameters": { + "id": 600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 599, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 606, + "src": "8535:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 598, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8535:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8534:6:1" + }, + "scope": 630, + "src": "8485:120:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 614, + "nodeType": "Block", + "src": "8896:45:1", + "statements": [ + { + "expression": { + "id": 612, + "name": "INITIALIZABLE_STORAGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 376, + "src": "8913:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 611, + "id": 613, + "nodeType": "Return", + "src": "8906:28:1" + } + ] + }, + "documentation": { + "id": 607, + "nodeType": "StructuredDocumentation", + "src": "8611:203:1", + "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": 615, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_initializableStorageSlot", + "nameLocation": "8828:25:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 608, + "nodeType": "ParameterList", + "parameters": [], + "src": "8853:2:1" + }, + "returnParameters": { + "id": 611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 610, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 615, + "src": "8887:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 609, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8886:9:1" + }, + "scope": 630, + "src": "8819:122:1", + "stateMutability": "pure", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 628, + "nodeType": "Block", + "src": "9161:115:1", + "statements": [ + { + "assignments": [ + 623 + ], + "declarations": [ + { + "constant": false, + "id": 623, + "mutability": "mutable", + "name": "slot", + "nameLocation": "9179:4:1", + "nodeType": "VariableDeclaration", + "scope": 628, + "src": "9171:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 622, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9171:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 626, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 624, + "name": "_initializableStorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "9186:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9186:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9171:42:1" + }, + { + "AST": { + "nativeSrc": "9232:38:1", + "nodeType": "YulBlock", + "src": "9232:38:1", + "statements": [ + { + "nativeSrc": "9246:14:1", + "nodeType": "YulAssignment", + "src": "9246:14:1", + "value": { + "name": "slot", + "nativeSrc": "9256:4:1", + "nodeType": "YulIdentifier", + "src": "9256:4:1" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "9246:6:1", + "nodeType": "YulIdentifier", + "src": "9246:6:1" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 620, + "isOffset": false, + "isSlot": true, + "src": "9246:6:1", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 623, + "isOffset": false, + "isSlot": false, + "src": "9256:4:1", + "valueSize": 1 + } + ], + "id": 627, + "nodeType": "InlineAssembly", + "src": "9223:47:1" + } + ] + }, + "documentation": { + "id": 616, + "nodeType": "StructuredDocumentation", + "src": "8947:67:1", + "text": " @dev Returns a pointer to the storage namespace." + }, + "id": 629, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializableStorage", + "nameLocation": "9080:24:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 617, + "nodeType": "ParameterList", + "parameters": [], + "src": "9104:2:1" + }, + "returnParameters": { + "id": 621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 620, + "mutability": "mutable", + "name": "$", + "nameLocation": "9158:1:1", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "9129:30:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 619, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 618, + "name": "InitializableStorage", + "nameLocations": [ + "9129:20:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 373, + "src": "9129:20:1" + }, + "referencedDeclaration": 373, + "src": "9129:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$373_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "9128:32:1" + }, + "scope": 630, + "src": "9071:205:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 631, + "src": "2349:6929:1", + "usedErrors": [ + 379, + 382 + ], + "usedEvents": [ + 387 + ] + } + ], + "src": "113:9166:1" + }, + "id": 1 + }, + "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 1801 + ], + "ERC165Upgradeable": [ + 1944 + ], + "ERC721Upgradeable": [ + 1710 + ], + "ERC721Utils": [ + 3561 + ], + "IERC165": [ + 5562 + ], + "IERC721": [ + 3411 + ], + "IERC721Errors": [ + 2286 + ], + "IERC721Metadata": [ + 3457 + ], + "Initializable": [ + 630 + ], + "Strings": [ + 5550 + ] + }, + "id": 1711, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 632, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:2" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "id": 634, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 3412, + "src": "133:73:2", + "symbolAliases": [ + { + "foreign": { + "id": 633, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "141:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "file": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "id": 636, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 3458, + "src": "207:100:2", + "symbolAliases": [ + { + "foreign": { + "id": 635, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3457, + "src": "215:15:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol", + "file": "@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol", + "id": 638, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 3562, + "src": "308:87:2", + "symbolAliases": [ + { + "foreign": { + "id": 637, + "name": "ERC721Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "316:11:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../../utils/ContextUpgradeable.sol", + "id": 640, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 1802, + "src": "396:70:2", + "symbolAliases": [ + { + "foreign": { + "id": 639, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1801, + "src": "404:18:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "id": 642, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 5551, + "src": "467:66:2", + "symbolAliases": [ + { + "foreign": { + "id": 641, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5550, + "src": "475:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "id": 644, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 5563, + "src": "534:80:2", + "symbolAliases": [ + { + "foreign": { + "id": 643, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5562, + "src": "542:7:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "file": "../../utils/introspection/ERC165Upgradeable.sol", + "id": 646, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 1945, + "src": "615:82:2", + "symbolAliases": [ + { + "foreign": { + "id": 645, + "name": "ERC165Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1944, + "src": "623:17:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "id": 648, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 2334, + "src": "698:84:2", + "symbolAliases": [ + { + "foreign": { + "id": 647, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2286, + "src": "706:13:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../../proxy/utils/Initializable.sol", + "id": 650, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1711, + "sourceUnit": 631, + "src": "783:66:2", + "symbolAliases": [ + { + "foreign": { + "id": 649, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "791:13:2", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 652, + "name": "Initializable", + "nameLocations": [ + "1138:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "1138:13:2" + }, + "id": 653, + "nodeType": "InheritanceSpecifier", + "src": "1138:13:2" + }, + { + "baseName": { + "id": 654, + "name": "ContextUpgradeable", + "nameLocations": [ + "1153:18:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1801, + "src": "1153:18:2" + }, + "id": 655, + "nodeType": "InheritanceSpecifier", + "src": "1153:18:2" + }, + { + "baseName": { + "id": 656, + "name": "ERC165Upgradeable", + "nameLocations": [ + "1173:17:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1944, + "src": "1173:17:2" + }, + "id": 657, + "nodeType": "InheritanceSpecifier", + "src": "1173:17:2" + }, + { + "baseName": { + "id": 658, + "name": "IERC721", + "nameLocations": [ + "1192:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3411, + "src": "1192:7:2" + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "1192:7:2" + }, + { + "baseName": { + "id": 660, + "name": "IERC721Metadata", + "nameLocations": [ + "1201:15:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3457, + "src": "1201:15:2" + }, + "id": 661, + "nodeType": "InheritanceSpecifier", + "src": "1201:15:2" + }, + { + "baseName": { + "id": 662, + "name": "IERC721Errors", + "nameLocations": [ + "1218:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2286, + "src": "1218:13:2" + }, + "id": 663, + "nodeType": "InheritanceSpecifier", + "src": "1218:13:2" + } + ], + "canonicalName": "ERC721Upgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 651, + "nodeType": "StructuredDocumentation", + "src": "851:247:2", + "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." + }, + "fullyImplemented": true, + "id": 1710, + "linearizedBaseContracts": [ + 1710, + 2286, + 3457, + 3411, + 1944, + 5562, + 1801, + 630 + ], + "name": "ERC721Upgradeable", + "nameLocation": "1117:17:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 666, + "libraryName": { + "id": 664, + "name": "Strings", + "nameLocations": [ + "1244:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5550, + "src": "1244:7:2" + }, + "nodeType": "UsingForDirective", + "src": "1238:26:2", + "typeName": { + "id": 665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1256:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "ERC721Upgradeable.ERC721Storage", + "documentation": { + "id": 667, + "nodeType": "StructuredDocumentation", + "src": "1270:64:2", + "text": "@custom:storage-location erc7201:openzeppelin.storage.ERC721" + }, + "id": 690, + "members": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "_name", + "nameLocation": "1399:5:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "1392:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1392:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 671, + "mutability": "mutable", + "name": "_symbol", + "nameLocation": "1446:7:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "1439:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 670, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1439:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 675, + "mutability": "mutable", + "name": "_owners", + "nameLocation": "1500:7:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "1464:43:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 674, + "keyName": "tokenId", + "keyNameLocation": "1480:7:2", + "keyType": { + "id": 672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1472:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1464:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1491:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 679, + "mutability": "mutable", + "name": "_balances", + "nameLocation": "1552:9:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "1518:43:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 678, + "keyName": "owner", + "keyNameLocation": "1534:5:2", + "keyType": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1526:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1518:33:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1543:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 683, + "mutability": "mutable", + "name": "_tokenApprovals", + "nameLocation": "1608:15:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "1572:51:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 682, + "keyName": "tokenId", + "keyNameLocation": "1588:7:2", + "keyType": { + "id": 680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1580:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1572:35:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 681, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1599:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "_operatorApprovals", + "nameLocation": "1694:18:2", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "1634:78:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 688, + "keyName": "owner", + "keyNameLocation": "1650:5:2", + "keyType": { + "id": 684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1642:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1634:59:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 687, + "keyName": "operator", + "keyNameLocation": "1675:8:2", + "keyType": { + "id": 685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1667:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1659:33:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 686, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1687:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "internal" + } + ], + "name": "ERC721Storage", + "nameLocation": "1346:13:2", + "nodeType": "StructDefinition", + "scope": 1710, + "src": "1339:380:2", + "visibility": "public" + }, + { + "constant": true, + "id": 693, + "mutability": "constant", + "name": "ERC721StorageLocation", + "nameLocation": "1860:21:2", + "nodeType": "VariableDeclaration", + "scope": 1710, + "src": "1835:115:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 691, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1835:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307838306262326236333863633230626334643061363064363639343066336162346130306331643762333133343937636138326662306234616230303739333030", + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1884:66:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_58226744478722834339948329933988999792353370511964151963072532422914231210752_by_1", + "typeString": "int_const 5822...(69 digits omitted)...0752" + }, + "value": "0x80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300" + }, + "visibility": "private" + }, + { + "body": { + "id": 700, + "nodeType": "Block", + "src": "2033:80:2", + "statements": [ + { + "AST": { + "nativeSrc": "2052:55:2", + "nodeType": "YulBlock", + "src": "2052:55:2", + "statements": [ + { + "nativeSrc": "2066:31:2", + "nodeType": "YulAssignment", + "src": "2066:31:2", + "value": { + "name": "ERC721StorageLocation", + "nativeSrc": "2076:21:2", + "nodeType": "YulIdentifier", + "src": "2076:21:2" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "2066:6:2", + "nodeType": "YulIdentifier", + "src": "2066:6:2" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 697, + "isOffset": false, + "isSlot": true, + "src": "2066:6:2", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 693, + "isOffset": false, + "isSlot": false, + "src": "2076:21:2", + "valueSize": 1 + } + ], + "id": 699, + "nodeType": "InlineAssembly", + "src": "2043:64:2" + } + ] + }, + "id": 701, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getERC721Storage", + "nameLocation": "1966:17:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [], + "src": "1983:2:2" + }, + "returnParameters": { + "id": 698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "$", + "nameLocation": "2030:1:2", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "2008:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 696, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 695, + "name": "ERC721Storage", + "nameLocations": [ + "2008:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "2008:13:2" + }, + "referencedDeclaration": 690, + "src": "2008:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "src": "2007:25:2" + }, + "scope": 1710, + "src": "1957:156:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 716, + "nodeType": "Block", + "src": "2325:56:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 712, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 704, + "src": "2359:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 713, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "2366:7:2", + "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": 711, + "name": "__ERC721_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 745, + "src": "2335:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2335:39:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 715, + "nodeType": "ExpressionStatement", + "src": "2335:39:2" + } + ] + }, + "documentation": { + "id": 702, + "nodeType": "StructuredDocumentation", + "src": "2119:108:2", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 717, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 709, + "kind": "modifierInvocation", + "modifierName": { + "id": 708, + "name": "onlyInitializing", + "nameLocations": [ + "2308:16:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "2308:16:2" + }, + "nodeType": "ModifierInvocation", + "src": "2308:16:2" + } + ], + "name": "__ERC721_init", + "nameLocation": "2241:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "name_", + "nameLocation": "2269:5:2", + "nodeType": "VariableDeclaration", + "scope": 717, + "src": "2255:19:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 703, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2255:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "2290:7:2", + "nodeType": "VariableDeclaration", + "scope": 717, + "src": "2276:21:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 705, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2276:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2254:44:2" + }, + "returnParameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [], + "src": "2325:0:2" + }, + "scope": 1710, + "src": "2232:149:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 744, + "nodeType": "Block", + "src": "2490:116:2", + "statements": [ + { + "assignments": [ + 728 + ], + "declarations": [ + { + "constant": false, + "id": 728, + "mutability": "mutable", + "name": "$", + "nameLocation": "2522:1:2", + "nodeType": "VariableDeclaration", + "scope": 744, + "src": "2500:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 727, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 726, + "name": "ERC721Storage", + "nameLocations": [ + "2500:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "2500:13:2" + }, + "referencedDeclaration": 690, + "src": "2500:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 731, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 729, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "2526:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2526:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2500:45:2" + }, + { + "expression": { + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 732, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "2555:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2557:5:2", + "memberName": "_name", + "nodeType": "MemberAccess", + "referencedDeclaration": 669, + "src": "2555:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 735, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 719, + "src": "2565:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2555:15:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 737, + "nodeType": "ExpressionStatement", + "src": "2555:15:2" + }, + { + "expression": { + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 738, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 728, + "src": "2580:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 740, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2582:7:2", + "memberName": "_symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 671, + "src": "2580:9:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 741, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 721, + "src": "2592:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2580:19:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 743, + "nodeType": "ExpressionStatement", + "src": "2580:19:2" + } + ] + }, + "id": 745, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 724, + "kind": "modifierInvocation", + "modifierName": { + "id": 723, + "name": "onlyInitializing", + "nameLocations": [ + "2473:16:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "2473:16:2" + }, + "nodeType": "ModifierInvocation", + "src": "2473:16:2" + } + ], + "name": "__ERC721_init_unchained", + "nameLocation": "2396:23:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 719, + "mutability": "mutable", + "name": "name_", + "nameLocation": "2434:5:2", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "2420:19:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 718, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2420:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 721, + "mutability": "mutable", + "name": "symbol_", + "nameLocation": "2455:7:2", + "nodeType": "VariableDeclaration", + "scope": 745, + "src": "2441:21:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 720, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2441:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2419:44:2" + }, + "returnParameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [], + "src": "2490:0:2" + }, + "scope": 1710, + "src": "2387:219:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 1943, + 5561 + ], + "body": { + "id": 775, + "nodeType": "Block", + "src": "2792:192:2", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "2821:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 758, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "2841:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721_$3411_$", + "typeString": "type(contract IERC721)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721_$3411_$", + "typeString": "type(contract IERC721)" + } + ], + "id": 757, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2836:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2836:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$3411", + "typeString": "type(contract IERC721)" + } + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2850:11:2", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2836:25:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2821:40:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 762, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "2877:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 764, + "name": "IERC721Metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3457, + "src": "2897:15:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$3457_$", + "typeString": "type(contract IERC721Metadata)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$3457_$", + "typeString": "type(contract IERC721Metadata)" + } + ], + "id": 763, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2892:4:2", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2892:21:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$3457", + "typeString": "type(contract IERC721Metadata)" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2914:11:2", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2892:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2877:48:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2821:104:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 771, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "2965:11:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 769, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2941:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_ERC721Upgradeable_$1710_$", + "typeString": "type(contract super ERC721Upgradeable)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2947:17:2", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 1943, + "src": "2941:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2941:36:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2821:156:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 755, + "id": 774, + "nodeType": "Return", + "src": "2802:175:2" + } + ] + }, + "documentation": { + "id": 746, + "nodeType": "StructuredDocumentation", + "src": "2612:56:2", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 776, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2682:17:2", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 752, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 750, + "name": "ERC165Upgradeable", + "nameLocations": [ + "2749:17:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1944, + "src": "2749:17:2" + }, + { + "id": 751, + "name": "IERC165", + "nameLocations": [ + "2768:7:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5562, + "src": "2768:7:2" + } + ], + "src": "2740:36:2" + }, + "parameters": { + "id": 749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 748, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2707:11:2", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2700:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 747, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2700:6:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2699:20:2" + }, + "returnParameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 754, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2786:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 753, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2786:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2785:6:2" + }, + "scope": 1710, + "src": "2673:311:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3336 + ], + "body": { + "id": 810, + "nodeType": "Block", + "src": "3115:193:2", + "statements": [ + { + "assignments": [ + 786 + ], + "declarations": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "$", + "nameLocation": "3147:1:2", + "nodeType": "VariableDeclaration", + "scope": 810, + "src": "3125:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 785, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 784, + "name": "ERC721Storage", + "nameLocations": [ + "3125:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "3125:13:2" + }, + "referencedDeclaration": 690, + "src": "3125:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 789, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 787, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "3151:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3151:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3125:45:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 790, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "3184:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3201:1:2", + "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": 792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3193:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 791, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3193:7:2", + "typeDescriptions": {} + } + }, + "id": 794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3193:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3184:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 804, + "nodeType": "IfStatement", + "src": "3180:87:2", + "trueBody": { + "id": 803, + "nodeType": "Block", + "src": "3205:62:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3253:1:2", + "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": 798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3245:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3245:7:2", + "typeDescriptions": {} + } + }, + "id": 800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3245:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 796, + "name": "ERC721InvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "3226:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3226:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 802, + "nodeType": "RevertStatement", + "src": "3219:37:2" + } + ] + } + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 805, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "3283:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 806, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3285:9:2", + "memberName": "_balances", + "nodeType": "MemberAccess", + "referencedDeclaration": 679, + "src": "3283:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 808, + "indexExpression": { + "id": 807, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "3295:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3283:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 783, + "id": 809, + "nodeType": "Return", + "src": "3276:25:2" + } + ] + }, + "documentation": { + "id": 777, + "nodeType": "StructuredDocumentation", + "src": "2990:48:2", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 811, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "3052:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3070:5:2", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "3062:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3062:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3061:15:2" + }, + "returnParameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 782, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 811, + "src": "3106:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3106:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3105:9:2" + }, + "scope": 1710, + "src": "3043:265:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3344 + ], + "body": { + "id": 823, + "nodeType": "Block", + "src": "3437:46:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 820, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 814, + "src": "3468:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 819, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "3454:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3454:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 818, + "id": 822, + "nodeType": "Return", + "src": "3447:29:2" + } + ] + }, + "documentation": { + "id": 812, + "nodeType": "StructuredDocumentation", + "src": "3314:46:2", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 824, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "3374:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 814, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3390:7:2", + "nodeType": "VariableDeclaration", + "scope": 824, + "src": "3382:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3382:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3381:17:2" + }, + "returnParameters": { + "id": 818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 824, + "src": "3428:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 816, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3428:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3427:9:2" + }, + "scope": 1710, + "src": "3365:118:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3442 + ], + "body": { + "id": 839, + "nodeType": "Block", + "src": "3605:86:2", + "statements": [ + { + "assignments": [ + 832 + ], + "declarations": [ + { + "constant": false, + "id": 832, + "mutability": "mutable", + "name": "$", + "nameLocation": "3637:1:2", + "nodeType": "VariableDeclaration", + "scope": 839, + "src": "3615:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 831, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 830, + "name": "ERC721Storage", + "nameLocations": [ + "3615:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "3615:13:2" + }, + "referencedDeclaration": 690, + "src": "3615:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 835, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 833, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "3641:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3641:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3615:45:2" + }, + { + "expression": { + "expression": { + "id": 836, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 832, + "src": "3677:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 837, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3679:5:2", + "memberName": "_name", + "nodeType": "MemberAccess", + "referencedDeclaration": 669, + "src": "3677:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 829, + "id": 838, + "nodeType": "Return", + "src": "3670:14:2" + } + ] + }, + "documentation": { + "id": 825, + "nodeType": "StructuredDocumentation", + "src": "3489:51:2", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 840, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "3554:4:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 826, + "nodeType": "ParameterList", + "parameters": [], + "src": "3558:2:2" + }, + "returnParameters": { + "id": 829, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 828, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 840, + "src": "3590:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 827, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3590:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3589:15:2" + }, + "scope": 1710, + "src": "3545:146:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3448 + ], + "body": { + "id": 855, + "nodeType": "Block", + "src": "3817:88:2", + "statements": [ + { + "assignments": [ + 848 + ], + "declarations": [ + { + "constant": false, + "id": 848, + "mutability": "mutable", + "name": "$", + "nameLocation": "3849:1:2", + "nodeType": "VariableDeclaration", + "scope": 855, + "src": "3827:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 847, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 846, + "name": "ERC721Storage", + "nameLocations": [ + "3827:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "3827:13:2" + }, + "referencedDeclaration": 690, + "src": "3827:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 849, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "3853:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3853:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3827:45:2" + }, + { + "expression": { + "expression": { + "id": 852, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 848, + "src": "3889:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 853, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3891:7:2", + "memberName": "_symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 671, + "src": "3889:9:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 845, + "id": 854, + "nodeType": "Return", + "src": "3882:16:2" + } + ] + }, + "documentation": { + "id": 841, + "nodeType": "StructuredDocumentation", + "src": "3697:53:2", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 856, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "3764:6:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 842, + "nodeType": "ParameterList", + "parameters": [], + "src": "3770:2:2" + }, + "returnParameters": { + "id": 845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 856, + "src": "3802:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 843, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3802:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3801:15:2" + }, + "scope": 1710, + "src": "3755:150:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3456 + ], + "body": { + "id": 891, + "nodeType": "Block", + "src": "4050:176:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 865, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 859, + "src": "4074:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 864, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "4060:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4060:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 867, + "nodeType": "ExpressionStatement", + "src": "4060:22:2" + }, + { + "assignments": [ + 869 + ], + "declarations": [ + { + "constant": false, + "id": 869, + "mutability": "mutable", + "name": "baseURI", + "nameLocation": "4107:7:2", + "nodeType": "VariableDeclaration", + "scope": 891, + "src": "4093:21:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 868, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4093:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 872, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 870, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "4117:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4117:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4093:34:2" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 875, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4150:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4144:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 873, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4144:5:2", + "typeDescriptions": {} + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4144:14:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4159:6:2", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4144:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4168:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4144:25:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4217:2:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4144:75:2", + "trueExpression": { + "arguments": [ + { + "id": 883, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "4186:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 884, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 859, + "src": "4195:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4203:8:2", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 4262, + "src": "4195:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4195:18:2", + "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": 881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4172:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 880, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4172:6:2", + "typeDescriptions": {} + } + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4179:6:2", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "4172:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4172:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 863, + "id": 890, + "nodeType": "Return", + "src": "4137:82:2" + } + ] + }, + "documentation": { + "id": 857, + "nodeType": "StructuredDocumentation", + "src": "3911:55:2", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 892, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "3980:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3997:7:2", + "nodeType": "VariableDeclaration", + "scope": 892, + "src": "3989:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3989:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3988:17:2" + }, + "returnParameters": { + "id": 863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 892, + "src": "4035:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 861, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4035:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4034:15:2" + }, + "scope": 1710, + "src": "3971:255:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 900, + "nodeType": "Block", + "src": "4534:26:2", + "statements": [ + { + "expression": { + "hexValue": "", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4551:2:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "functionReturnParameters": 897, + "id": 899, + "nodeType": "Return", + "src": "4544:9:2" + } + ] + }, + "documentation": { + "id": 893, + "nodeType": "StructuredDocumentation", + "src": "4232:231:2", + "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." + }, + "id": 901, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseURI", + "nameLocation": "4477:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 894, + "nodeType": "ParameterList", + "parameters": [], + "src": "4485:2:2" + }, + "returnParameters": { + "id": 897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 896, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 901, + "src": "4519:13:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 895, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4519:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4518:15:2" + }, + "scope": 1710, + "src": "4468:92:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3384 + ], + "body": { + "id": 916, + "nodeType": "Block", + "src": "4678:52:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 910, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 904, + "src": "4697:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 911, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 906, + "src": "4701:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 912, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "4710:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4710:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 909, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1561, + 1635 + ], + "referencedDeclaration": 1561, + "src": "4688:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4688:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 915, + "nodeType": "ExpressionStatement", + "src": "4688:35:2" + } + ] + }, + "documentation": { + "id": 902, + "nodeType": "StructuredDocumentation", + "src": "4566:46:2", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 917, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4626:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 907, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "to", + "nameLocation": "4642:2:2", + "nodeType": "VariableDeclaration", + "scope": 917, + "src": "4634:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 903, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4634:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 906, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4654:7:2", + "nodeType": "VariableDeclaration", + "scope": 917, + "src": "4646:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4646:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4633:29:2" + }, + "returnParameters": { + "id": 908, + "nodeType": "ParameterList", + "parameters": [], + "src": "4678:0:2" + }, + "scope": 1710, + "src": "4617:113:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3400 + ], + "body": { + "id": 933, + "nodeType": "Block", + "src": "4867:78:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 926, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 920, + "src": "4891:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 925, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "4877:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4877:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "4877:22:2" + }, + { + "expression": { + "arguments": [ + { + "id": 930, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 920, + "src": "4930:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 929, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "4917:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4917:21:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 924, + "id": 932, + "nodeType": "Return", + "src": "4910:28:2" + } + ] + }, + "documentation": { + "id": 918, + "nodeType": "StructuredDocumentation", + "src": "4736:50:2", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4800:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 920, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4820:7:2", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "4812:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4812:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4811:17:2" + }, + "returnParameters": { + "id": 924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 923, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 934, + "src": "4858:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 922, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4858:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4857:9:2" + }, + "scope": 1710, + "src": "4791:154:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3392 + ], + "body": { + "id": 949, + "nodeType": "Block", + "src": "5087:69:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 943, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "5116:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5116:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 945, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "5130:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 946, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "5140:8:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 942, + "name": "_setApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1680, + "src": "5097:18:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5097:52:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 948, + "nodeType": "ExpressionStatement", + "src": "5097:52:2" + } + ] + }, + "documentation": { + "id": 935, + "nodeType": "StructuredDocumentation", + "src": "4951:56:2", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 950, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "5021:17:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5047:8:2", + "nodeType": "VariableDeclaration", + "scope": 950, + "src": "5039:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 936, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5039:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "approved", + "nameLocation": "5062:8:2", + "nodeType": "VariableDeclaration", + "scope": 950, + "src": "5057:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 938, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5057:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5038:33:2" + }, + "returnParameters": { + "id": 941, + "nodeType": "ParameterList", + "parameters": [], + "src": "5087:0:2" + }, + "scope": 1710, + "src": "5012:144:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3410 + ], + "body": { + "id": 973, + "nodeType": "Block", + "src": "5316:116:2", + "statements": [ + { + "assignments": [ + 962 + ], + "declarations": [ + { + "constant": false, + "id": 962, + "mutability": "mutable", + "name": "$", + "nameLocation": "5348:1:2", + "nodeType": "VariableDeclaration", + "scope": 973, + "src": "5326:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 961, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 960, + "name": "ERC721Storage", + "nameLocations": [ + "5326:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "5326:13:2" + }, + "referencedDeclaration": 690, + "src": "5326:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 965, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 963, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "5352:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5352:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5326:45:2" + }, + { + "expression": { + "baseExpression": { + "baseExpression": { + "expression": { + "id": 966, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 962, + "src": "5388:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 967, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5390:18:2", + "memberName": "_operatorApprovals", + "nodeType": "MemberAccess", + "referencedDeclaration": 689, + "src": "5388:20:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 969, + "indexExpression": { + "id": 968, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 953, + "src": "5409:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5388:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 971, + "indexExpression": { + "id": 970, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "5416:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5388:37:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 959, + "id": 972, + "nodeType": "Return", + "src": "5381:44:2" + } + ] + }, + "documentation": { + "id": 951, + "nodeType": "StructuredDocumentation", + "src": "5162:55:2", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "5231:16:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 953, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5256:5:2", + "nodeType": "VariableDeclaration", + "scope": 974, + "src": "5248:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5248:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 955, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5271:8:2", + "nodeType": "VariableDeclaration", + "scope": 974, + "src": "5263:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 954, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5263:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5247:33:2" + }, + "returnParameters": { + "id": 959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 958, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 974, + "src": "5310:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 957, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5310:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5309:6:2" + }, + "scope": 1710, + "src": "5222:210:2", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3376 + ], + "body": { + "id": 1019, + "nodeType": "Block", + "src": "5574:498:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 984, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "5588:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5602:1:2", + "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": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5594:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5594:7:2", + "typeDescriptions": {} + } + }, + "id": 988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5594:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5588:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 998, + "nodeType": "IfStatement", + "src": "5584:87:2", + "trueBody": { + "id": 997, + "nodeType": "Block", + "src": "5606:65:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5657:1:2", + "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": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5649:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5649:7:2", + "typeDescriptions": {} + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5649:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 990, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "5627:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5627:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 996, + "nodeType": "RevertStatement", + "src": "5620:40:2" + } + ] + } + }, + { + "assignments": [ + 1000 + ], + "declarations": [ + { + "constant": false, + "id": 1000, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "5897:13:2", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "5889:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 999, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5889:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1007, + "initialValue": { + "arguments": [ + { + "id": 1002, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "5921:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1003, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "5925:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1004, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "5934:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1001, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "5913:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5913:34:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5889:58:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1008, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1000, + "src": "5961:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1009, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "5978:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5961:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1018, + "nodeType": "IfStatement", + "src": "5957:109:2", + "trueBody": { + "id": 1017, + "nodeType": "Block", + "src": "5984:82:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1012, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "6026:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1013, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "6032:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1014, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1000, + "src": "6041:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1011, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2258, + "src": "6005:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address) pure" + } + }, + "id": 1015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6005:50:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1016, + "nodeType": "RevertStatement", + "src": "5998:57:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 975, + "nodeType": "StructuredDocumentation", + "src": "5438:51:2", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 1020, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "5503:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 977, + "mutability": "mutable", + "name": "from", + "nameLocation": "5524:4:2", + "nodeType": "VariableDeclaration", + "scope": 1020, + "src": "5516:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 976, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5516:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 979, + "mutability": "mutable", + "name": "to", + "nameLocation": "5538:2:2", + "nodeType": "VariableDeclaration", + "scope": 1020, + "src": "5530:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5530:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 981, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "5550:7:2", + "nodeType": "VariableDeclaration", + "scope": 1020, + "src": "5542:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5542:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5515:43:2" + }, + "returnParameters": { + "id": 983, + "nodeType": "ParameterList", + "parameters": [], + "src": "5574:0:2" + }, + "scope": 1710, + "src": "5494:578:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 3366 + ], + "body": { + "id": 1037, + "nodeType": "Block", + "src": "6214:56:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1031, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "6241:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1032, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1025, + "src": "6247:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1033, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1027, + "src": "6251:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6260:2:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1030, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1038, + 1068 + ], + "referencedDeclaration": 1068, + "src": "6224:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6224:39:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1036, + "nodeType": "ExpressionStatement", + "src": "6224:39:2" + } + ] + }, + "documentation": { + "id": 1021, + "nodeType": "StructuredDocumentation", + "src": "6078:55:2", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 1038, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "6147:16:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "from", + "nameLocation": "6172:4:2", + "nodeType": "VariableDeclaration", + "scope": 1038, + "src": "6164:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6164:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1025, + "mutability": "mutable", + "name": "to", + "nameLocation": "6186:2:2", + "nodeType": "VariableDeclaration", + "scope": 1038, + "src": "6178:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6178:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1027, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6198:7:2", + "nodeType": "VariableDeclaration", + "scope": 1038, + "src": "6190:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6190:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6163:43:2" + }, + "returnParameters": { + "id": 1029, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:2" + }, + "scope": 1710, + "src": "6138:132:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 3356 + ], + "body": { + "id": 1067, + "nodeType": "Block", + "src": "6439:130:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1051, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "6462:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1052, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "6468:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1053, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "6472:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1050, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "6449:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6449:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1055, + "nodeType": "ExpressionStatement", + "src": "6449:31:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1059, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "6524:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6524:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1061, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1041, + "src": "6538:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1062, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "6544:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1063, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "6548:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1064, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "6557:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1056, + "name": "ERC721Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "6490:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Utils_$3561_$", + "typeString": "type(library ERC721Utils)" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6502:21:2", + "memberName": "checkOnERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 3560, + "src": "6490:33:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,bytes memory)" + } + }, + "id": 1065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6490:72:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1066, + "nodeType": "ExpressionStatement", + "src": "6490:72:2" + } + ] + }, + "documentation": { + "id": 1039, + "nodeType": "StructuredDocumentation", + "src": "6276:55:2", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 1068, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "6345:16:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1041, + "mutability": "mutable", + "name": "from", + "nameLocation": "6370:4:2", + "nodeType": "VariableDeclaration", + "scope": 1068, + "src": "6362:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1040, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6362:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "to", + "nameLocation": "6384:2:2", + "nodeType": "VariableDeclaration", + "scope": 1068, + "src": "6376:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6376:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "6396:7:2", + "nodeType": "VariableDeclaration", + "scope": 1068, + "src": "6388:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6388:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1047, + "mutability": "mutable", + "name": "data", + "nameLocation": "6418:4:2", + "nodeType": "VariableDeclaration", + "scope": 1068, + "src": "6405:17:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1046, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6405:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6361:62:2" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [], + "src": "6439:0:2" + }, + "scope": 1710, + "src": "6336:233:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1087, + "nodeType": "Block", + "src": "7159:97:2", + "statements": [ + { + "assignments": [ + 1078 + ], + "declarations": [ + { + "constant": false, + "id": 1078, + "mutability": "mutable", + "name": "$", + "nameLocation": "7191:1:2", + "nodeType": "VariableDeclaration", + "scope": 1087, + "src": "7169:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 1077, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1076, + "name": "ERC721Storage", + "nameLocations": [ + "7169:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "7169:13:2" + }, + "referencedDeclaration": 690, + "src": "7169:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 1081, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1079, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7195:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7195:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7169:45:2" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1082, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1078, + "src": "7231:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1083, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7233:7:2", + "memberName": "_owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 675, + "src": "7231:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1085, + "indexExpression": { + "id": 1084, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1071, + "src": "7241:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7231:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1075, + "id": 1086, + "nodeType": "Return", + "src": "7224:25:2" + } + ] + }, + "documentation": { + "id": 1069, + "nodeType": "StructuredDocumentation", + "src": "6575:504:2", + "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n IMPORTANT: Any overrides to this function that add ownership of tokens not tracked by the\n core ERC-721 logic MUST be matched with the use of {_increaseBalance} to keep balances\n consistent with ownership. The invariant to preserve is that for any address `a` the value returned by\n `balanceOf(a)` must be equal to the number of tokens such that `_ownerOf(tokenId)` is `a`." + }, + "id": 1088, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ownerOf", + "nameLocation": "7093:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1071, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7110:7:2", + "nodeType": "VariableDeclaration", + "scope": 1088, + "src": "7102:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7102:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7101:17:2" + }, + "returnParameters": { + "id": 1075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1074, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1088, + "src": "7150:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7150:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7149:9:2" + }, + "scope": 1710, + "src": "7084:172:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1107, + "nodeType": "Block", + "src": "7451:105:2", + "statements": [ + { + "assignments": [ + 1098 + ], + "declarations": [ + { + "constant": false, + "id": 1098, + "mutability": "mutable", + "name": "$", + "nameLocation": "7483:1:2", + "nodeType": "VariableDeclaration", + "scope": 1107, + "src": "7461:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 1097, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1096, + "name": "ERC721Storage", + "nameLocations": [ + "7461:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "7461:13:2" + }, + "referencedDeclaration": 690, + "src": "7461:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 1101, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1099, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "7487:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7487:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7461:45:2" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1102, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1098, + "src": "7523:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7525:15:2", + "memberName": "_tokenApprovals", + "nodeType": "MemberAccess", + "referencedDeclaration": 683, + "src": "7523:17:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1105, + "indexExpression": { + "id": 1104, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "7541:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7523:26:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1095, + "id": 1106, + "nodeType": "Return", + "src": "7516:33:2" + } + ] + }, + "documentation": { + "id": 1089, + "nodeType": "StructuredDocumentation", + "src": "7262:105:2", + "text": " @dev Returns the approved address for `tokenId`. Returns 0 if `tokenId` is not minted." + }, + "id": 1108, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getApproved", + "nameLocation": "7381:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1092, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7402:7:2", + "nodeType": "VariableDeclaration", + "scope": 1108, + "src": "7394:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7394:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7393:17:2" + }, + "returnParameters": { + "id": 1095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1094, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1108, + "src": "7442:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7442:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7441:9:2" + }, + "scope": 1710, + "src": "7372:184:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1143, + "nodeType": "Block", + "src": "7976:163:2", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1120, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "8005:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8024:1:2", + "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": 1122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8016:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8016:7:2", + "typeDescriptions": {} + } + }, + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8016:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8005:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1126, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1111, + "src": "8043:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1127, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "8052:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8043:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1130, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1111, + "src": "8080:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1131, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "8087:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1129, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8063:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8063:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8043:52:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1135, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "8112:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1134, + "name": "_getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "8099:12:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8099:21:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1137, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "8124:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8099:32:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8043:88:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1140, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8042:90:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8005:127:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1119, + "id": 1142, + "nodeType": "Return", + "src": "7986:146:2" + } + ] + }, + "documentation": { + "id": 1109, + "nodeType": "StructuredDocumentation", + "src": "7562:300:2", + "text": " @dev Returns whether `spender` is allowed to manage `owner`'s tokens, or `tokenId` in\n particular (ignoring whether it is owned by `owner`).\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 1144, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isAuthorized", + "nameLocation": "7876:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1111, + "mutability": "mutable", + "name": "owner", + "nameLocation": "7898:5:2", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "7890:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7890:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "spender", + "nameLocation": "7913:7:2", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "7905:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7905:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "7930:7:2", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "7922:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7922:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7889:49:2" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1144, + "src": "7970:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1117, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7970:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7969:6:2" + }, + "scope": 1710, + "src": "7867:272:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1180, + "nodeType": "Block", + "src": "8668:271:2", + "statements": [ + { + "condition": { + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8682:39:2", + "subExpression": { + "arguments": [ + { + "id": 1155, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "8697:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1156, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "8704:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1157, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "8713:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1154, + "name": "_isAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1144, + "src": "8683:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8683:38:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1179, + "nodeType": "IfStatement", + "src": "8678:255:2", + "trueBody": { + "id": 1178, + "nodeType": "Block", + "src": "8723:210:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1160, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "8741:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8758:1:2", + "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": 1162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8750:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8750:7:2", + "typeDescriptions": {} + } + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8750:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8741:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1176, + "nodeType": "Block", + "src": "8839:84:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1172, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "8891:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1173, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "8900:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1171, + "name": "ERC721InsufficientApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "8864:26:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) pure" + } + }, + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8864:44:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1175, + "nodeType": "RevertStatement", + "src": "8857:51:2" + } + ] + }, + "id": 1177, + "nodeType": "IfStatement", + "src": "8737:186:2", + "trueBody": { + "id": 1170, + "nodeType": "Block", + "src": "8762:71:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1167, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "8810:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1166, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2249, + "src": "8787:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8787:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1169, + "nodeType": "RevertStatement", + "src": "8780:38:2" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 1145, + "nodeType": "StructuredDocumentation", + "src": "8145:421:2", + "text": " @dev Checks if `spender` can operate on `tokenId`, assuming the provided `owner` is the actual owner.\n Reverts if:\n - `spender` does not have approval from `owner` for `tokenId`.\n - `spender` does not have approval to manage all of `owner`'s assets.\n WARNING: This function assumes that `owner` is the actual owner of `tokenId` and does not verify this\n assumption." + }, + "id": 1181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkAuthorized", + "nameLocation": "8580:16:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1147, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8605:5:2", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "8597:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8597:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8620:7:2", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "8612:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8612:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "8637:7:2", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "8629:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8629:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8596:49:2" + }, + "returnParameters": { + "id": 1153, + "nodeType": "ParameterList", + "parameters": [], + "src": "8668:0:2" + }, + "scope": 1710, + "src": "8571:368:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "9656:135:2", + "statements": [ + { + "assignments": [ + 1191 + ], + "declarations": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "$", + "nameLocation": "9688:1:2", + "nodeType": "VariableDeclaration", + "scope": 1204, + "src": "9666:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 1190, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1189, + "name": "ERC721Storage", + "nameLocations": [ + "9666:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "9666:13:2" + }, + "referencedDeclaration": 690, + "src": "9666:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 1194, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1192, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "9692:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9692:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9666:45:2" + }, + { + "id": 1203, + "nodeType": "UncheckedBlock", + "src": "9721:64:2", + "statements": [ + { + "expression": { + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1195, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "9745:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9747:9:2", + "memberName": "_balances", + "nodeType": "MemberAccess", + "referencedDeclaration": 679, + "src": "9745:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1199, + "indexExpression": { + "id": 1197, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "9757:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9745:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1200, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1186, + "src": "9769:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "9745:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1202, + "nodeType": "ExpressionStatement", + "src": "9745:29:2" + } + ] + } + ] + }, + "documentation": { + "id": 1182, + "nodeType": "StructuredDocumentation", + "src": "8945:631:2", + "text": " @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n NOTE: the value is limited to type(uint128).max. This protect against _balance overflow. It is unrealistic that\n a uint256 would ever overflow from increments when these increments are bounded to uint128 values.\n WARNING: Increasing an account's balance using this function tends to be paired with an override of the\n {_ownerOf} function to resolve the ownership of the corresponding tokens so that balances and ownership\n remain consistent with one another." + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_increaseBalance", + "nameLocation": "9590:16:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1184, + "mutability": "mutable", + "name": "account", + "nameLocation": "9615:7:2", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "9607:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9607:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1186, + "mutability": "mutable", + "name": "value", + "nameLocation": "9632:5:2", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "9624:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 1185, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9624:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "9606:32:2" + }, + "returnParameters": { + "id": 1188, + "nodeType": "ParameterList", + "parameters": [], + "src": "9656:0:2" + }, + "scope": 1710, + "src": "9581:210:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1306, + "nodeType": "Block", + "src": "10479:761:2", + "statements": [ + { + "assignments": [ + 1219 + ], + "declarations": [ + { + "constant": false, + "id": 1219, + "mutability": "mutable", + "name": "$", + "nameLocation": "10511:1:2", + "nodeType": "VariableDeclaration", + "scope": 1306, + "src": "10489:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 1218, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1217, + "name": "ERC721Storage", + "nameLocations": [ + "10489:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "10489:13:2" + }, + "referencedDeclaration": 690, + "src": "10489:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 1222, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1220, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "10515:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10515:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10489:45:2" + }, + { + "assignments": [ + 1224 + ], + "declarations": [ + { + "constant": false, + "id": 1224, + "mutability": "mutable", + "name": "from", + "nameLocation": "10552:4:2", + "nodeType": "VariableDeclaration", + "scope": 1306, + "src": "10544:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10544:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1228, + "initialValue": { + "arguments": [ + { + "id": 1226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "10568:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1225, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1088, + "src": "10559:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10559:17:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10544:32:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1229, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "10636:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10652:1:2", + "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": 1231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10644:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1230, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10644:7:2", + "typeDescriptions": {} + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10644:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10636:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1242, + "nodeType": "IfStatement", + "src": "10632:86:2", + "trueBody": { + "id": 1241, + "nodeType": "Block", + "src": "10656:62:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1236, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "10687:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1237, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "10693:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1238, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "10699:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1235, + "name": "_checkAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1181, + "src": "10670:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) view" + } + }, + "id": 1239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10670:37:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1240, + "nodeType": "ExpressionStatement", + "src": "10670:37:2" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1243, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "10762:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10778:1:2", + "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": 1245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10770:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10770:7:2", + "typeDescriptions": {} + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10770:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10762:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1272, + "nodeType": "IfStatement", + "src": "10758:258:2", + "trueBody": { + "id": 1271, + "nodeType": "Block", + "src": "10782:234:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10895:1:2", + "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": 1251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10887:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1250, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10887:7:2", + "typeDescriptions": {} + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10887:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1254, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "10899:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10916:1:2", + "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": 1256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10908:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10908:7:2", + "typeDescriptions": {} + } + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10908:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "66616c7365", + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10920:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1249, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1561, + 1635 + ], + "referencedDeclaration": 1635, + "src": "10878:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10878:48:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1261, + "nodeType": "ExpressionStatement", + "src": "10878:48:2" + }, + { + "id": 1270, + "nodeType": "UncheckedBlock", + "src": "10941:65:2", + "statements": [ + { + "expression": { + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1262, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "10969:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1265, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10971:9:2", + "memberName": "_balances", + "nodeType": "MemberAccess", + "referencedDeclaration": 679, + "src": "10969:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1266, + "indexExpression": { + "id": 1264, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "10981:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10969:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10990:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10969:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "10969:22:2" + } + ] + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1273, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "11030:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11044:1:2", + "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": 1275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11036:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11036:7:2", + "typeDescriptions": {} + } + }, + "id": 1277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11036:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11030:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1289, + "nodeType": "IfStatement", + "src": "11026:109:2", + "trueBody": { + "id": 1288, + "nodeType": "Block", + "src": "11048:87:2", + "statements": [ + { + "id": 1287, + "nodeType": "UncheckedBlock", + "src": "11062:63:2", + "statements": [ + { + "expression": { + "id": 1285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1279, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "11090:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11092:9:2", + "memberName": "_balances", + "nodeType": "MemberAccess", + "referencedDeclaration": 679, + "src": "11090:11:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1283, + "indexExpression": { + "id": 1281, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "11102:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11090:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11109:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11090:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1286, + "nodeType": "ExpressionStatement", + "src": "11090:20:2" + } + ] + } + ] + } + }, + { + "expression": { + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1290, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "11145:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11147:7:2", + "memberName": "_owners", + "nodeType": "MemberAccess", + "referencedDeclaration": 675, + "src": "11145:9:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1294, + "indexExpression": { + "id": 1292, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "11155:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11145:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1295, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "11166:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11145:23:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1297, + "nodeType": "ExpressionStatement", + "src": "11145:23:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1299, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "11193:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "11199:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1301, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "11203:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1298, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3310, + "src": "11184:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11184:27:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1303, + "nodeType": "EmitStatement", + "src": "11179:32:2" + }, + { + "expression": { + "id": 1304, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "11229:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1216, + "id": 1305, + "nodeType": "Return", + "src": "11222:11:2" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "9797:582:2", + "text": " @dev Transfers `tokenId` from its current owner to `to`, or alternatively mints (or burns) if the current owner\n (or `to`) is the zero address. Returns the owner of the `tokenId` before the update.\n The `auth` argument is optional. If the value passed is non 0, then this function will check that\n `auth` is either the owner of the token, or approved to operate on the token (by the owner).\n Emits a {Transfer} event.\n NOTE: If overriding this function in a way that tracks balances, see also {_increaseBalance}." + }, + "id": 1307, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "10393:7:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "to", + "nameLocation": "10409:2:2", + "nodeType": "VariableDeclaration", + "scope": 1307, + "src": "10401:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10401:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "10421:7:2", + "nodeType": "VariableDeclaration", + "scope": 1307, + "src": "10413:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10413:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "auth", + "nameLocation": "10438:4:2", + "nodeType": "VariableDeclaration", + "scope": 1307, + "src": "10430:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10430:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10400:43:2" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1307, + "src": "10470:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10470:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10469:9:2" + }, + "scope": 1710, + "src": "10384:856:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1356, + "nodeType": "Block", + "src": "11615:274:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1315, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "11629:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11643:1:2", + "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": 1317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11635:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1316, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11635:7:2", + "typeDescriptions": {} + } + }, + "id": 1319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11635:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11629:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1329, + "nodeType": "IfStatement", + "src": "11625:87:2", + "trueBody": { + "id": 1328, + "nodeType": "Block", + "src": "11647:65:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11698:1:2", + "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": 1323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11690:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11690:7:2", + "typeDescriptions": {} + } + }, + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11690:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1321, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "11668:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11668:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1327, + "nodeType": "RevertStatement", + "src": "11661:40:2" + } + ] + } + }, + { + "assignments": [ + 1331 + ], + "declarations": [ + { + "constant": false, + "id": 1331, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "11729:13:2", + "nodeType": "VariableDeclaration", + "scope": 1356, + "src": "11721:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11721:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1340, + "initialValue": { + "arguments": [ + { + "id": 1333, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1310, + "src": "11753:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1334, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1312, + "src": "11757:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11774:1:2", + "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": 1336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11766:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11766:7:2", + "typeDescriptions": {} + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11766:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1332, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "11745:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11745:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11721:56:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1341, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1331, + "src": "11791:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11816:1:2", + "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": 1343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11808:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11808:7:2", + "typeDescriptions": {} + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11808:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11791:27:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1355, + "nodeType": "IfStatement", + "src": "11787:96:2", + "trueBody": { + "id": 1354, + "nodeType": "Block", + "src": "11820:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11869:1:2", + "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": 1349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11861:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11861:7:2", + "typeDescriptions": {} + } + }, + "id": 1351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11861:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1347, + "name": "ERC721InvalidSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2263, + "src": "11841:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11841:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1353, + "nodeType": "RevertStatement", + "src": "11834:38:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 1308, + "nodeType": "StructuredDocumentation", + "src": "11246:311:2", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 1357, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nameLocation": "11571:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1310, + "mutability": "mutable", + "name": "to", + "nameLocation": "11585:2:2", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "11577:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11577:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1312, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "11597:7:2", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "11589:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11589:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11576:29:2" + }, + "returnParameters": { + "id": 1314, + "nodeType": "ParameterList", + "parameters": [], + "src": "11615:0:2" + }, + "scope": 1710, + "src": "11562:327:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1371, + "nodeType": "Block", + "src": "12297:43:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1360, + "src": "12317:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1362, + "src": "12321:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12330:2:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1365, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1372, + 1402 + ], + "referencedDeclaration": 1402, + "src": "12307:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12307:26:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1370, + "nodeType": "ExpressionStatement", + "src": "12307:26:2" + } + ] + }, + "documentation": { + "id": 1358, + "nodeType": "StructuredDocumentation", + "src": "11895:340:2", + "text": " @dev Mints `tokenId`, transfers it to `to` and checks for `to` acceptance.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "12249:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1360, + "mutability": "mutable", + "name": "to", + "nameLocation": "12267:2:2", + "nodeType": "VariableDeclaration", + "scope": 1372, + "src": "12259:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12259:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1362, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12279:7:2", + "nodeType": "VariableDeclaration", + "scope": 1372, + "src": "12271:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12271:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12258:29:2" + }, + "returnParameters": { + "id": 1364, + "nodeType": "ParameterList", + "parameters": [], + "src": "12297:0:2" + }, + "scope": 1710, + "src": "12240:100:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1401, + "nodeType": "Block", + "src": "12645:123:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1383, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "12661:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1384, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1377, + "src": "12665:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1382, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "12655:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12655:18:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1386, + "nodeType": "ExpressionStatement", + "src": "12655:18:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1390, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "12717:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12717:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12739:1:2", + "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": 1393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12731:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12731:7:2", + "typeDescriptions": {} + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12731:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1396, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "12743:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1397, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1377, + "src": "12747:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1398, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1379, + "src": "12756:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "ERC721Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "12683:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Utils_$3561_$", + "typeString": "type(library ERC721Utils)" + } + }, + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12695:21:2", + "memberName": "checkOnERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 3560, + "src": "12683:33:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,bytes memory)" + } + }, + "id": 1399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12683:78:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1400, + "nodeType": "ExpressionStatement", + "src": "12683:78:2" + } + ] + }, + "documentation": { + "id": 1373, + "nodeType": "StructuredDocumentation", + "src": "12346:210:2", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1402, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nameLocation": "12570:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1375, + "mutability": "mutable", + "name": "to", + "nameLocation": "12588:2:2", + "nodeType": "VariableDeclaration", + "scope": 1402, + "src": "12580:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12580:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1377, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12600:7:2", + "nodeType": "VariableDeclaration", + "scope": 1402, + "src": "12592:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12592:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1379, + "mutability": "mutable", + "name": "data", + "nameLocation": "12622:4:2", + "nodeType": "VariableDeclaration", + "scope": 1402, + "src": "12609:17:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1378, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12609:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "12579:48:2" + }, + "returnParameters": { + "id": 1381, + "nodeType": "ParameterList", + "parameters": [], + "src": "12645:0:2" + }, + "scope": 1710, + "src": "12561:207:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1434, + "nodeType": "Block", + "src": "13135:186:2", + "statements": [ + { + "assignments": [ + 1409 + ], + "declarations": [ + { + "constant": false, + "id": 1409, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "13153:13:2", + "nodeType": "VariableDeclaration", + "scope": 1434, + "src": "13145:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13145:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1421, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13185:1:2", + "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": 1412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13177:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1411, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13177:7:2", + "typeDescriptions": {} + } + }, + "id": 1414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13177:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1415, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "13189:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13206:1:2", + "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": 1417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13198:7:2", + "typeDescriptions": {} + } + }, + "id": 1419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13198:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1410, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "13169:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13169:40:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13145:64:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1422, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "13223:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13248:1:2", + "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": 1424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13240:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1423, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13240:7:2", + "typeDescriptions": {} + } + }, + "id": 1426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13240:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13223:27:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1433, + "nodeType": "IfStatement", + "src": "13219:96:2", + "trueBody": { + "id": 1432, + "nodeType": "Block", + "src": "13252:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1429, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "13296:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1428, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2249, + "src": "13273:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13273:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1431, + "nodeType": "RevertStatement", + "src": "13266:38:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 1403, + "nodeType": "StructuredDocumentation", + "src": "12774:315:2", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 1435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nameLocation": "13103:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13117:7:2", + "nodeType": "VariableDeclaration", + "scope": 1435, + "src": "13109:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13109:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13108:17:2" + }, + "returnParameters": { + "id": 1407, + "nodeType": "ParameterList", + "parameters": [], + "src": "13135:0:2" + }, + "scope": 1710, + "src": "13094:227:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1494, + "nodeType": "Block", + "src": "13716:389:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1445, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1440, + "src": "13730:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13744:1:2", + "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": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13736:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13736:7:2", + "typeDescriptions": {} + } + }, + "id": 1449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13736:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13730:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1459, + "nodeType": "IfStatement", + "src": "13726:87:2", + "trueBody": { + "id": 1458, + "nodeType": "Block", + "src": "13748:65:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13799:1:2", + "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": 1453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13791:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13791:7:2", + "typeDescriptions": {} + } + }, + "id": 1455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13791:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1451, + "name": "ERC721InvalidReceiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "13769:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13769:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1457, + "nodeType": "RevertStatement", + "src": "13762:40:2" + } + ] + } + }, + { + "assignments": [ + 1461 + ], + "declarations": [ + { + "constant": false, + "id": 1461, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "13830:13:2", + "nodeType": "VariableDeclaration", + "scope": 1494, + "src": "13822:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13822:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1470, + "initialValue": { + "arguments": [ + { + "id": 1463, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1440, + "src": "13854:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1464, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "13858:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13875:1:2", + "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": 1466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13867:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1465, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13867:7:2", + "typeDescriptions": {} + } + }, + "id": 1468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13867:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1462, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "13846:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13846:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13822:56:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1471, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "13892:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13917:1:2", + "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": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13909:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13909:7:2", + "typeDescriptions": {} + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13909:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13892:27:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1482, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "13994:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1483, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1438, + "src": "14011:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13994:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1492, + "nodeType": "IfStatement", + "src": "13990:109:2", + "trueBody": { + "id": 1491, + "nodeType": "Block", + "src": "14017:82:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1486, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1438, + "src": "14059:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1487, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "14065:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1488, + "name": "previousOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "14074:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1485, + "name": "ERC721IncorrectOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2258, + "src": "14038:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address) pure" + } + }, + "id": 1489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14038:50:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1490, + "nodeType": "RevertStatement", + "src": "14031:57:2" + } + ] + } + }, + "id": 1493, + "nodeType": "IfStatement", + "src": "13888:211:2", + "trueBody": { + "id": 1481, + "nodeType": "Block", + "src": "13921:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1478, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1442, + "src": "13965:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1477, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2249, + "src": "13942:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13942:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "RevertStatement", + "src": "13935:38:2" + } + ] + } + } + ] + }, + "documentation": { + "id": 1436, + "nodeType": "StructuredDocumentation", + "src": "13327:313:2", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 1495, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nameLocation": "13654:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1438, + "mutability": "mutable", + "name": "from", + "nameLocation": "13672:4:2", + "nodeType": "VariableDeclaration", + "scope": 1495, + "src": "13664:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13664:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1440, + "mutability": "mutable", + "name": "to", + "nameLocation": "13686:2:2", + "nodeType": "VariableDeclaration", + "scope": 1495, + "src": "13678:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1439, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13678:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1442, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "13698:7:2", + "nodeType": "VariableDeclaration", + "scope": 1495, + "src": "13690:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13690:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13663:43:2" + }, + "returnParameters": { + "id": 1444, + "nodeType": "ParameterList", + "parameters": [], + "src": "13716:0:2" + }, + "scope": 1710, + "src": "13645:460:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1512, + "nodeType": "Block", + "src": "15114:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1506, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1498, + "src": "15138:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1507, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1500, + "src": "15144:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1508, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "15148:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15157:2:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 1505, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1513, + 1543 + ], + "referencedDeclaration": 1543, + "src": "15124:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15124:36:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1511, + "nodeType": "ExpressionStatement", + "src": "15124:36:2" + } + ] + }, + "documentation": { + "id": 1496, + "nodeType": "StructuredDocumentation", + "src": "14111:923:2", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking that contract recipients\n are aware of the ERC-721 standard to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is like {safeTransferFrom} in the sense that it invokes\n {IERC721Receiver-onERC721Received} on the receiver, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `tokenId` token must exist and be owned by `from`.\n - `to` cannot be the zero address.\n - `from` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 1513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "15048:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1498, + "mutability": "mutable", + "name": "from", + "nameLocation": "15070:4:2", + "nodeType": "VariableDeclaration", + "scope": 1513, + "src": "15062:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15062:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1500, + "mutability": "mutable", + "name": "to", + "nameLocation": "15084:2:2", + "nodeType": "VariableDeclaration", + "scope": 1513, + "src": "15076:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15076:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "15096:7:2", + "nodeType": "VariableDeclaration", + "scope": 1513, + "src": "15088:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15088:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15061:43:2" + }, + "returnParameters": { + "id": 1504, + "nodeType": "ParameterList", + "parameters": [], + "src": "15114:0:2" + }, + "scope": 1710, + "src": "15039:128:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1542, + "nodeType": "Block", + "src": "15506:127:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1526, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "15526:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1527, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1518, + "src": "15532:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1528, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1520, + "src": "15536:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1525, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1495, + "src": "15516:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15516:28:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1530, + "nodeType": "ExpressionStatement", + "src": "15516:28:2" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1534, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "15588:10:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15588:12:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1536, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "15602:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1537, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1518, + "src": "15608:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1538, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1520, + "src": "15612:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1539, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1522, + "src": "15621:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1531, + "name": "ERC721Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "15554:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Utils_$3561_$", + "typeString": "type(library ERC721Utils)" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15566:21:2", + "memberName": "checkOnERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 3560, + "src": "15554:33:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,address,uint256,bytes memory)" + } + }, + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15554:72:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1541, + "nodeType": "ExpressionStatement", + "src": "15554:72:2" + } + ] + }, + "documentation": { + "id": 1514, + "nodeType": "StructuredDocumentation", + "src": "15173:226:2", + "text": " @dev Same as {xref-ERC721-_safeTransfer-address-address-uint256-}[`_safeTransfer`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 1543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nameLocation": "15413:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "from", + "nameLocation": "15435:4:2", + "nodeType": "VariableDeclaration", + "scope": 1543, + "src": "15427:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15427:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1518, + "mutability": "mutable", + "name": "to", + "nameLocation": "15449:2:2", + "nodeType": "VariableDeclaration", + "scope": 1543, + "src": "15441:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15441:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1520, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "15461:7:2", + "nodeType": "VariableDeclaration", + "scope": 1543, + "src": "15453:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15453:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1522, + "mutability": "mutable", + "name": "data", + "nameLocation": "15483:4:2", + "nodeType": "VariableDeclaration", + "scope": 1543, + "src": "15470:17:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1521, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15470:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "15426:62:2" + }, + "returnParameters": { + "id": 1524, + "nodeType": "ParameterList", + "parameters": [], + "src": "15506:0:2" + }, + "scope": 1710, + "src": "15404:229:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "16146:50:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1554, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1546, + "src": "16165:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1555, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "16169:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1556, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1550, + "src": "16178:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "74727565", + "id": 1557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16184:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1553, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1561, + 1635 + ], + "referencedDeclaration": 1635, + "src": "16156:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16156:33:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1559, + "nodeType": "ExpressionStatement", + "src": "16156:33:2" + } + ] + }, + "documentation": { + "id": 1544, + "nodeType": "StructuredDocumentation", + "src": "15639:432:2", + "text": " @dev Approve `to` to operate on `tokenId`\n The `auth` argument is optional. If the value passed is non 0, then this function will check that `auth` is\n either the owner of the token, or approved to operate on all tokens held by this owner.\n Emits an {Approval} event.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "16085:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1546, + "mutability": "mutable", + "name": "to", + "nameLocation": "16102:2:2", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "16094:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16094:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1548, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16114:7:2", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "16106:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16106:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1550, + "mutability": "mutable", + "name": "auth", + "nameLocation": "16131:4:2", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "16123:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16123:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16093:43:2" + }, + "returnParameters": { + "id": 1552, + "nodeType": "ParameterList", + "parameters": [], + "src": "16146:0:2" + }, + "scope": 1710, + "src": "16076:120:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "16472:625:2", + "statements": [ + { + "assignments": [ + 1575 + ], + "declarations": [ + { + "constant": false, + "id": 1575, + "mutability": "mutable", + "name": "$", + "nameLocation": "16504:1:2", + "nodeType": "VariableDeclaration", + "scope": 1634, + "src": "16482:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 1574, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1573, + "name": "ERC721Storage", + "nameLocations": [ + "16482:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "16482:13:2" + }, + "referencedDeclaration": 690, + "src": "16482:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 1578, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1576, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "16508:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16508:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16482:45:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1579, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "16593:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1580, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "16606:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16622:1:2", + "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": 1582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16614:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1581, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16614:7:2", + "typeDescriptions": {} + } + }, + "id": 1584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16614:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16606:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16593:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1625, + "nodeType": "IfStatement", + "src": "16589:460:2", + "trueBody": { + "id": 1624, + "nodeType": "Block", + "src": "16626:423:2", + "statements": [ + { + "assignments": [ + 1588 + ], + "declarations": [ + { + "constant": false, + "id": 1588, + "mutability": "mutable", + "name": "owner", + "nameLocation": "16648:5:2", + "nodeType": "VariableDeclaration", + "scope": 1624, + "src": "16640:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16640:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1592, + "initialValue": { + "arguments": [ + { + "id": 1590, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "16670:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1589, + "name": "_requireOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1709, + "src": "16656:13:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16656:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16640:38:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1593, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "16806:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16822:1:2", + "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": 1595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16814:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1594, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16814:7:2", + "typeDescriptions": {} + } + }, + "id": 1597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16814:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16806:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1599, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "16828:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1600, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "16837:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "16828:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16806:35:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16845:30:2", + "subExpression": { + "arguments": [ + { + "id": 1604, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "16863:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1605, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "16870:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1603, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "16846:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16846:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16806:69:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1614, + "nodeType": "IfStatement", + "src": "16802:142:2", + "trueBody": { + "id": 1613, + "nodeType": "Block", + "src": "16877:67:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1610, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1568, + "src": "16924:4:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1609, + "name": "ERC721InvalidApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2280, + "src": "16902:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16902:27:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1612, + "nodeType": "RevertStatement", + "src": "16895:34:2" + } + ] + } + }, + { + "condition": { + "id": 1615, + "name": "emitEvent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1570, + "src": "16962:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1623, + "nodeType": "IfStatement", + "src": "16958:81:2", + "trueBody": { + "id": 1622, + "nodeType": "Block", + "src": "16973:66:2", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 1617, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "17005:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1618, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "17012:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1619, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "17016:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1616, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "16996:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16996:28:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1621, + "nodeType": "EmitStatement", + "src": "16991:33:2" + } + ] + } + } + ] + } + }, + { + "expression": { + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1626, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1575, + "src": "17059:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1629, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17061:15:2", + "memberName": "_tokenApprovals", + "nodeType": "MemberAccess", + "referencedDeclaration": 683, + "src": "17059:17:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 1630, + "indexExpression": { + "id": 1628, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "17077:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17059:26:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1631, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "17088:2:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17059:31:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "17059:31:2" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "16202:171:2", + "text": " @dev Variant of `_approve` with an optional flag to enable or disable the {Approval} event. The event is not\n emitted in the context of transfers." + }, + "id": 1635, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nameLocation": "16387:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "to", + "nameLocation": "16404:2:2", + "nodeType": "VariableDeclaration", + "scope": 1635, + "src": "16396:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16396:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "16416:7:2", + "nodeType": "VariableDeclaration", + "scope": 1635, + "src": "16408:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16408:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1568, + "mutability": "mutable", + "name": "auth", + "nameLocation": "16433:4:2", + "nodeType": "VariableDeclaration", + "scope": 1635, + "src": "16425:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16425:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1570, + "mutability": "mutable", + "name": "emitEvent", + "nameLocation": "16444:9:2", + "nodeType": "VariableDeclaration", + "scope": 1635, + "src": "16439:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16439:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16395:59:2" + }, + "returnParameters": { + "id": 1572, + "nodeType": "ParameterList", + "parameters": [], + "src": "16472:0:2" + }, + "scope": 1710, + "src": "16378:719:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1679, + "nodeType": "Block", + "src": "17399:276:2", + "statements": [ + { + "assignments": [ + 1647 + ], + "declarations": [ + { + "constant": false, + "id": 1647, + "mutability": "mutable", + "name": "$", + "nameLocation": "17431:1:2", + "nodeType": "VariableDeclaration", + "scope": 1679, + "src": "17409:23:2", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + }, + "typeName": { + "id": 1646, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1645, + "name": "ERC721Storage", + "nameLocations": [ + "17409:13:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 690, + "src": "17409:13:2" + }, + "referencedDeclaration": 690, + "src": "17409:13:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage" + } + }, + "visibility": "internal" + } + ], + "id": 1650, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1648, + "name": "_getERC721Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 701, + "src": "17435:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ERC721Storage_$690_storage_ptr_$", + "typeString": "function () pure returns (struct ERC721Upgradeable.ERC721Storage storage pointer)" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17435:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17409:45:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1651, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "17468:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17488:1:2", + "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": 1653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17480:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17480:7:2", + "typeDescriptions": {} + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17480:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17468:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1662, + "nodeType": "IfStatement", + "src": "17464:91:2", + "trueBody": { + "id": 1661, + "nodeType": "Block", + "src": "17492:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1658, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "17535:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1657, + "name": "ERC721InvalidOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2285, + "src": "17513:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17513:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1660, + "nodeType": "RevertStatement", + "src": "17506:38:2" + } + ] + } + }, + { + "expression": { + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "expression": { + "id": 1663, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1647, + "src": "17564:1:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ERC721Storage_$690_storage_ptr", + "typeString": "struct ERC721Upgradeable.ERC721Storage storage pointer" + } + }, + "id": 1667, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17566:18:2", + "memberName": "_operatorApprovals", + "nodeType": "MemberAccess", + "referencedDeclaration": 689, + "src": "17564:20:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 1668, + "indexExpression": { + "id": 1665, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "17585:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17564:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1669, + "indexExpression": { + "id": 1666, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "17592:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17564:37:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1670, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "17604:8:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17564:48:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1672, + "nodeType": "ExpressionStatement", + "src": "17564:48:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1674, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "17642:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1675, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "17649:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1676, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "17659:8:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1673, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3328, + "src": "17627:14:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17627:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1678, + "nodeType": "EmitStatement", + "src": "17622:46:2" + } + ] + }, + "documentation": { + "id": 1636, + "nodeType": "StructuredDocumentation", + "src": "17103:198:2", + "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Requirements:\n - operator can't be the address zero.\n Emits an {ApprovalForAll} event." + }, + "id": 1680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setApprovalForAll", + "nameLocation": "17315:18:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1638, + "mutability": "mutable", + "name": "owner", + "nameLocation": "17342:5:2", + "nodeType": "VariableDeclaration", + "scope": 1680, + "src": "17334:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1637, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17334:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "operator", + "nameLocation": "17357:8:2", + "nodeType": "VariableDeclaration", + "scope": 1680, + "src": "17349:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17349:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "approved", + "nameLocation": "17372:8:2", + "nodeType": "VariableDeclaration", + "scope": 1680, + "src": "17367:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1641, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17367:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "17333:48:2" + }, + "returnParameters": { + "id": 1644, + "nodeType": "ParameterList", + "parameters": [], + "src": "17399:0:2" + }, + "scope": 1710, + "src": "17306:369:2", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1708, + "nodeType": "Block", + "src": "17982:169:2", + "statements": [ + { + "assignments": [ + 1689 + ], + "declarations": [ + { + "constant": false, + "id": 1689, + "mutability": "mutable", + "name": "owner", + "nameLocation": "18000:5:2", + "nodeType": "VariableDeclaration", + "scope": 1708, + "src": "17992:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17992:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 1693, + "initialValue": { + "arguments": [ + { + "id": 1691, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1683, + "src": "18017:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1690, + "name": "_ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1088, + "src": "18008:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 1692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18008:17:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17992:33:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1694, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "18039:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18056:1:2", + "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": 1696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18048:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1695, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18048:7:2", + "typeDescriptions": {} + } + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18048:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18039:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1705, + "nodeType": "IfStatement", + "src": "18035:88:2", + "trueBody": { + "id": 1704, + "nodeType": "Block", + "src": "18060:63:2", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 1701, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1683, + "src": "18104:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1700, + "name": "ERC721NonexistentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2249, + "src": "18081:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 1702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18081:31:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1703, + "nodeType": "RevertStatement", + "src": "18074:38:2" + } + ] + } + }, + { + "expression": { + "id": 1706, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1689, + "src": "18139:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1687, + "id": 1707, + "nodeType": "Return", + "src": "18132:12:2" + } + ] + }, + "documentation": { + "id": 1681, + "nodeType": "StructuredDocumentation", + "src": "17681:224:2", + "text": " @dev Reverts if the `tokenId` doesn't have a current owner (it hasn't been minted, or it has been burned).\n Returns the owner.\n Overrides to ownership logic should be done to {_ownerOf}." + }, + "id": 1709, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_requireOwned", + "nameLocation": "17919:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1683, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "17941:7:2", + "nodeType": "VariableDeclaration", + "scope": 1709, + "src": "17933:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17933:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17932:17:2" + }, + "returnParameters": { + "id": 1687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1686, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1709, + "src": "17973:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17973:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "17972:9:2" + }, + "scope": 1710, + "src": "17910:241:2", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1711, + "src": "1099:17054:2", + "usedErrors": [ + 379, + 382, + 2244, + 2249, + 2258, + 2263, + 2268, + 2275, + 2280, + 2285 + ], + "usedEvents": [ + 387, + 3310, + 3319, + 3328 + ] + } + ], + "src": "107:18047:2" + }, + "id": 2 + }, + "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 1801 + ], + "ERC721BurnableUpgradeable": [ + 1755 + ], + "ERC721Upgradeable": [ + 1710 + ], + "Initializable": [ + 630 + ] + }, + "id": 1756, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1712, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "126:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", + "file": "../ERC721Upgradeable.sol", + "id": 1714, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1756, + "sourceUnit": 1711, + "src": "152:59:3", + "symbolAliases": [ + { + "foreign": { + "id": 1713, + "name": "ERC721Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "160:17:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../../../utils/ContextUpgradeable.sol", + "id": 1716, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1756, + "sourceUnit": 1802, + "src": "212:73:3", + "symbolAliases": [ + { + "foreign": { + "id": 1715, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1801, + "src": "220:18:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../../../proxy/utils/Initializable.sol", + "id": 1718, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1756, + "sourceUnit": 631, + "src": "286:69:3", + "symbolAliases": [ + { + "foreign": { + "id": 1717, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "294:13:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1720, + "name": "Initializable", + "nameLocations": [ + "499:13:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "499:13:3" + }, + "id": 1721, + "nodeType": "InheritanceSpecifier", + "src": "499:13:3" + }, + { + "baseName": { + "id": 1722, + "name": "ContextUpgradeable", + "nameLocations": [ + "514:18:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1801, + "src": "514:18:3" + }, + "id": 1723, + "nodeType": "InheritanceSpecifier", + "src": "514:18:3" + }, + { + "baseName": { + "id": 1724, + "name": "ERC721Upgradeable", + "nameLocations": [ + "534:17:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1710, + "src": "534:17:3" + }, + "id": 1725, + "nodeType": "InheritanceSpecifier", + "src": "534:17:3" + } + ], + "canonicalName": "ERC721BurnableUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1719, + "nodeType": "StructuredDocumentation", + "src": "357:94:3", + "text": " @title ERC-721 Burnable Token\n @dev ERC-721 Token that can be burned (destroyed)." + }, + "fullyImplemented": true, + "id": 1755, + "linearizedBaseContracts": [ + 1755, + 1710, + 2286, + 3457, + 3411, + 1944, + 5562, + 1801, + 630 + ], + "name": "ERC721BurnableUpgradeable", + "nameLocation": "470:25:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "617:7:3", + "statements": [] + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1728, + "kind": "modifierInvocation", + "modifierName": { + "id": 1727, + "name": "onlyInitializing", + "nameLocations": [ + "600:16:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "600:16:3" + }, + "nodeType": "ModifierInvocation", + "src": "600:16:3" + } + ], + "name": "__ERC721Burnable_init", + "nameLocation": "567:21:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1726, + "nodeType": "ParameterList", + "parameters": [], + "src": "588:2:3" + }, + "returnParameters": { + "id": 1729, + "nodeType": "ParameterList", + "parameters": [], + "src": "617:0:3" + }, + "scope": 1755, + "src": "558:66:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1736, + "nodeType": "Block", + "src": "699:7:3", + "statements": [] + }, + "id": 1737, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1734, + "kind": "modifierInvocation", + "modifierName": { + "id": 1733, + "name": "onlyInitializing", + "nameLocations": [ + "682:16:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "682:16:3" + }, + "nodeType": "ModifierInvocation", + "src": "682:16:3" + } + ], + "name": "__ERC721Burnable_init_unchained", + "nameLocation": "639:31:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1732, + "nodeType": "ParameterList", + "parameters": [], + "src": "670:2:3" + }, + "returnParameters": { + "id": 1735, + "nodeType": "ParameterList", + "parameters": [], + "src": "699:0:3" + }, + "scope": 1755, + "src": "630:76:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1753, + "nodeType": "Block", + "src": "924:268:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1159:1:3", + "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": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1151:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1744, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1151:7:3", + "typeDescriptions": {} + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1151:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1748, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "1163:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1749, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "1172:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1172:12:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1743, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "1143:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1143:42:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1752, + "nodeType": "ExpressionStatement", + "src": "1143:42:3" + } + ] + }, + "documentation": { + "id": 1738, + "nodeType": "StructuredDocumentation", + "src": "711:162:3", + "text": " @dev Burns `tokenId`. See {ERC721-_burn}.\n Requirements:\n - The caller must own `tokenId` or be an approved operator." + }, + "functionSelector": "42966c68", + "id": 1754, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nameLocation": "887:4:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1740, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "900:7:3", + "nodeType": "VariableDeclaration", + "scope": 1754, + "src": "892:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1739, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "891:17:3" + }, + "returnParameters": { + "id": 1742, + "nodeType": "ParameterList", + "parameters": [], + "src": "924:0:3" + }, + "scope": 1755, + "src": "878:314:3", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 1756, + "src": "452:742:3", + "usedErrors": [ + 379, + 382, + 2244, + 2249, + 2258, + 2263, + 2268, + 2275, + 2280, + 2285 + ], + "usedEvents": [ + 387, + 3310, + 3319, + 3328 + ] + } + ], + "src": "126:1069:3" + }, + "id": 3 + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 1801 + ], + "Initializable": [ + 630 + ] + }, + "id": 1802, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1757, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:4" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 1759, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1802, + "sourceUnit": 631, + "src": "126:63:4", + "symbolAliases": [ + { + "foreign": { + "id": 1758, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "134:13:4", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1761, + "name": "Initializable", + "nameLocations": [ + "728:13:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "728:13:4" + }, + "id": 1762, + "nodeType": "InheritanceSpecifier", + "src": "728:13:4" + } + ], + "canonicalName": "ContextUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1760, + "nodeType": "StructuredDocumentation", + "src": "191:496:4", + "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": 1801, + "linearizedBaseContracts": [ + 1801, + 630 + ], + "name": "ContextUpgradeable", + "nameLocation": "706:18:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1767, + "nodeType": "Block", + "src": "800:7:4", + "statements": [] + }, + "id": 1768, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1765, + "kind": "modifierInvocation", + "modifierName": { + "id": 1764, + "name": "onlyInitializing", + "nameLocations": [ + "783:16:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "783:16:4" + }, + "nodeType": "ModifierInvocation", + "src": "783:16:4" + } + ], + "name": "__Context_init", + "nameLocation": "757:14:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [], + "src": "771:2:4" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:4" + }, + "scope": 1801, + "src": "748:59:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1773, + "nodeType": "Block", + "src": "875:7:4", + "statements": [] + }, + "id": 1774, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1771, + "kind": "modifierInvocation", + "modifierName": { + "id": 1770, + "name": "onlyInitializing", + "nameLocations": [ + "858:16:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "858:16:4" + }, + "nodeType": "ModifierInvocation", + "src": "858:16:4" + } + ], + "name": "__Context_init_unchained", + "nameLocation": "822:24:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1769, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:2:4" + }, + "returnParameters": { + "id": 1772, + "nodeType": "ParameterList", + "parameters": [], + "src": "875:0:4" + }, + "scope": 1801, + "src": "813:69:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "949:34:4", + "statements": [ + { + "expression": { + "expression": { + "id": 1779, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "966:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:6:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "966:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1778, + "id": 1781, + "nodeType": "Return", + "src": "959:17:4" + } + ] + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "896:10:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1775, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:2:4" + }, + "returnParameters": { + "id": 1778, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1777, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "940:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1776, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "940:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:4" + }, + "scope": 1801, + "src": "887:96:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1791, + "nodeType": "Block", + "src": "1056:32:4", + "statements": [ + { + "expression": { + "expression": { + "id": 1788, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1073:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1077:4:4", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1073:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 1787, + "id": 1790, + "nodeType": "Return", + "src": "1066:15:4" + } + ] + }, + "id": 1792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "998:8:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1784, + "nodeType": "ParameterList", + "parameters": [], + "src": "1006:2:4" + }, + "returnParameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1792, + "src": "1040:14:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1785, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1039:16:4" + }, + "scope": 1801, + "src": "989:99:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 1799, + "nodeType": "Block", + "src": "1166:25:4", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 1797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1183:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1796, + "id": 1798, + "nodeType": "Return", + "src": "1176:8:4" + } + ] + }, + "id": 1800, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "1103:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1793, + "nodeType": "ParameterList", + "parameters": [], + "src": "1123:2:4" + }, + "returnParameters": { + "id": 1796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1795, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1800, + "src": "1157:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1794, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1157:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1156:9:4" + }, + "scope": 1801, + "src": "1094:97:4", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 1802, + "src": "688:505:4", + "usedErrors": [ + 379, + 382 + ], + "usedEvents": [ + 387 + ] + } + ], + "src": "101:1093:4" + }, + "id": 4 + }, + "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", + "exportedSymbols": { + "Address": [ + 3821 + ], + "ContextUpgradeable": [ + 1801 + ], + "Initializable": [ + 630 + ], + "MulticallUpgradeable": [ + 1904 + ] + }, + "id": 1905, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1803, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "@openzeppelin/contracts/utils/Address.sol", + "id": 1805, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1905, + "sourceUnit": 3822, + "src": "129:66:5", + "symbolAliases": [ + { + "foreign": { + "id": 1804, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "137:7:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "./ContextUpgradeable.sol", + "id": 1807, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1905, + "sourceUnit": 1802, + "src": "196:60:5", + "symbolAliases": [ + { + "foreign": { + "id": 1806, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1801, + "src": "204:18:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 1809, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1905, + "sourceUnit": 631, + "src": "257:63:5", + "symbolAliases": [ + { + "foreign": { + "id": 1808, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "265:13:5", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1811, + "name": "Initializable", + "nameLocations": [ + "1178:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "1178:13:5" + }, + "id": 1812, + "nodeType": "InheritanceSpecifier", + "src": "1178:13:5" + }, + { + "baseName": { + "id": 1813, + "name": "ContextUpgradeable", + "nameLocations": [ + "1193:18:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1801, + "src": "1193:18:5" + }, + "id": 1814, + "nodeType": "InheritanceSpecifier", + "src": "1193:18:5" + } + ], + "canonicalName": "MulticallUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1810, + "nodeType": "StructuredDocumentation", + "src": "322:813:5", + "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": 1904, + "linearizedBaseContracts": [ + 1904, + 1801, + 630 + ], + "name": "MulticallUpgradeable", + "nameLocation": "1154:20:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1819, + "nodeType": "Block", + "src": "1272:7:5", + "statements": [] + }, + "id": 1820, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1817, + "kind": "modifierInvocation", + "modifierName": { + "id": 1816, + "name": "onlyInitializing", + "nameLocations": [ + "1255:16:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "1255:16:5" + }, + "nodeType": "ModifierInvocation", + "src": "1255:16:5" + } + ], + "name": "__Multicall_init", + "nameLocation": "1227:16:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1815, + "nodeType": "ParameterList", + "parameters": [], + "src": "1243:2:5" + }, + "returnParameters": { + "id": 1818, + "nodeType": "ParameterList", + "parameters": [], + "src": "1272:0:5" + }, + "scope": 1904, + "src": "1218:61:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1825, + "nodeType": "Block", + "src": "1349:7:5", + "statements": [] + }, + "id": 1826, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1823, + "kind": "modifierInvocation", + "modifierName": { + "id": 1822, + "name": "onlyInitializing", + "nameLocations": [ + "1332:16:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "1332:16:5" + }, + "nodeType": "ModifierInvocation", + "src": "1332:16:5" + } + ], + "name": "__Multicall_init_unchained", + "nameLocation": "1294:26:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1821, + "nodeType": "ParameterList", + "parameters": [], + "src": "1320:2:5" + }, + "returnParameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [], + "src": "1349:0:5" + }, + "scope": 1904, + "src": "1285:71:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1902, + "nodeType": "Block", + "src": "1610:392:5", + "statements": [ + { + "assignments": [ + 1837 + ], + "declarations": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "context", + "nameLocation": "1633:7:5", + "nodeType": "VariableDeclaration", + "scope": 1902, + "src": "1620:20:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1836, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1620:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1857, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1838, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1643:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1647:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1643:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1840, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1783, + "src": "1657:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1657:12:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1643:26:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "baseExpression": { + "expression": { + "id": 1847, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1711:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1715:4:5", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1711:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "1711:51:5", + "startExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1849, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1720:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1724:4:5", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1720:8:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 1851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1729:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1720:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1852, + "name": "_contextSuffixLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "1738:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1738:22:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1720:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1643:119:5", + "trueExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1694:1:5", + "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": 1844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1684:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 1843, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1688:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1684:12:5", + "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:5" + }, + { + "expression": { + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1858, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "1773:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 1862, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "1795:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1800:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1795:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1783:11:5", + "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": 1859, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1787:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 1860, + "nodeType": "ArrayTypeName", + "src": "1787:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + } + }, + "id": 1864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1783:24:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "src": "1773:34:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 1866, + "nodeType": "ExpressionStatement", + "src": "1773:34:5" + }, + { + "body": { + "id": 1898, + "nodeType": "Block", + "src": "1859:113:5", + "statements": [ + { + "expression": { + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1878, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "1873:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "id": 1880, + "indexExpression": { + "id": 1879, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "1881:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1873:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 1885, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1923:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MulticallUpgradeable_$1904", + "typeString": "contract MulticallUpgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MulticallUpgradeable_$1904", + "typeString": "contract MulticallUpgradeable" + } + ], + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1915:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1883, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1915:7:5", + "typeDescriptions": {} + } + }, + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1915:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "baseExpression": { + "id": 1890, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "1943:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 1892, + "indexExpression": { + "id": 1891, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "1948:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1943:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "id": 1893, + "name": "context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "1952:7:5", + "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": 1888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1930:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1887, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1930:5:5", + "typeDescriptions": {} + } + }, + "id": 1889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1936:6:5", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "1930:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1930:30:5", + "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": 1881, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "1886:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$3821_$", + "typeString": "type(library Address)" + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1894:20:5", + "memberName": "functionDelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3738, + "src": "1886:28:5", + "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": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1886:75:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "1873:88:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1897, + "nodeType": "ExpressionStatement", + "src": "1873:88:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1871, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "1837:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 1872, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "1841:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes calldata[] calldata" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1846:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1841:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1837:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1899, + "initializationExpression": { + "assignments": [ + 1868 + ], + "declarations": [ + { + "constant": false, + "id": 1868, + "mutability": "mutable", + "name": "i", + "nameLocation": "1830:1:5", + "nodeType": "VariableDeclaration", + "scope": 1899, + "src": "1822:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1867, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1822:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1870, + "initialValue": { + "hexValue": "30", + "id": 1869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1834:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1822:13:5" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1854:3:5", + "subExpression": { + "id": 1875, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "1854:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1877, + "nodeType": "ExpressionStatement", + "src": "1854:3:5" + }, + "nodeType": "ForStatement", + "src": "1817:155:5" + }, + { + "expression": { + "id": 1900, + "name": "results", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "1988:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes memory[] memory" + } + }, + "functionReturnParameters": 1835, + "id": 1901, + "nodeType": "Return", + "src": "1981:14:5" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "1361:152:5", + "text": " @dev Receives and executes a batch of function calls on this contract.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall" + }, + "functionSelector": "ac9650d8", + "id": 1903, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "multicall", + "nameLocation": "1527:9:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1830, + "mutability": "mutable", + "name": "data", + "nameLocation": "1554:4:5", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "1537:21:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 1828, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1537:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 1829, + "nodeType": "ArrayTypeName", + "src": "1537:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "1536:23:5" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "results", + "nameLocation": "1601:7:5", + "nodeType": "VariableDeclaration", + "scope": 1903, + "src": "1586:22:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 1832, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1586:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 1833, + "nodeType": "ArrayTypeName", + "src": "1586:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "1585:24:5" + }, + "scope": 1904, + "src": "1518:484:5", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "external" + } + ], + "scope": 1905, + "src": "1136:868:5", + "usedErrors": [ + 379, + 382, + 3571, + 3963 + ], + "usedEvents": [ + 387 + ] + } + ], + "src": "103:1902:5" + }, + "id": 5 + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol", + "exportedSymbols": { + "ERC165Upgradeable": [ + 1944 + ], + "IERC165": [ + 5562 + ], + "Initializable": [ + 630 + ] + }, + "id": 1945, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1906, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:6" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "id": 1908, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1945, + "sourceUnit": 5563, + "src": "140:80:6", + "symbolAliases": [ + { + "foreign": { + "id": 1907, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5562, + "src": "148:7:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../../proxy/utils/Initializable.sol", + "id": 1910, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1945, + "sourceUnit": 631, + "src": "221:66:6", + "symbolAliases": [ + { + "foreign": { + "id": 1909, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "229:13:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 1912, + "name": "Initializable", + "nameLocations": [ + "808:13:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "808:13:6" + }, + "id": 1913, + "nodeType": "InheritanceSpecifier", + "src": "808:13:6" + }, + { + "baseName": { + "id": 1914, + "name": "IERC165", + "nameLocations": [ + "823:7:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5562, + "src": "823:7:6" + }, + "id": 1915, + "nodeType": "InheritanceSpecifier", + "src": "823:7:6" + } + ], + "canonicalName": "ERC165Upgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 1911, + "nodeType": "StructuredDocumentation", + "src": "289:479:6", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 1944, + "linearizedBaseContracts": [ + 1944, + 5562, + 630 + ], + "name": "ERC165Upgradeable", + "nameLocation": "787:17:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1920, + "nodeType": "Block", + "src": "888:7:6", + "statements": [] + }, + "id": 1921, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1918, + "kind": "modifierInvocation", + "modifierName": { + "id": 1917, + "name": "onlyInitializing", + "nameLocations": [ + "871:16:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "871:16:6" + }, + "nodeType": "ModifierInvocation", + "src": "871:16:6" + } + ], + "name": "__ERC165_init", + "nameLocation": "846:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1916, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:6" + }, + "returnParameters": { + "id": 1919, + "nodeType": "ParameterList", + "parameters": [], + "src": "888:0:6" + }, + "scope": 1944, + "src": "837:58:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1926, + "nodeType": "Block", + "src": "962:7:6", + "statements": [] + }, + "id": 1927, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1924, + "kind": "modifierInvocation", + "modifierName": { + "id": 1923, + "name": "onlyInitializing", + "nameLocations": [ + "945:16:6" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 525, + "src": "945:16:6" + }, + "nodeType": "ModifierInvocation", + "src": "945:16:6" + } + ], + "name": "__ERC165_init_unchained", + "nameLocation": "910:23:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1922, + "nodeType": "ParameterList", + "parameters": [], + "src": "933:2:6" + }, + "returnParameters": { + "id": 1925, + "nodeType": "ParameterList", + "parameters": [], + "src": "962:0:6" + }, + "scope": 1944, + "src": "901:68:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 5561 + ], + "body": { + "id": 1942, + "nodeType": "Block", + "src": "1117:64:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1935, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1930, + "src": "1134:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1937, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5562, + "src": "1154:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$5562_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$5562_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 1936, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1149:4:6", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1149:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$5562", + "typeString": "type(contract IERC165)" + } + }, + "id": 1939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1163:11:6", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1149:25:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1134:40:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1934, + "id": 1941, + "nodeType": "Return", + "src": "1127:47:6" + } + ] + }, + "documentation": { + "id": 1928, + "nodeType": "StructuredDocumentation", + "src": "974:56:6", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 1943, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "1044:17:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1930, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "1069:11:6", + "nodeType": "VariableDeclaration", + "scope": 1943, + "src": "1062:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1929, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1062:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1061:20:6" + }, + "returnParameters": { + "id": 1934, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1933, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1943, + "src": "1111:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1932, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1111:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1110:6:6" + }, + "scope": 1944, + "src": "1035:146:6", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 1945, + "src": "769:414:6", + "usedErrors": [ + 379, + 382 + ], + "usedEvents": [ + 387 + ] + } + ], + "src": "114:1070:6" + }, + "id": 6 + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "exportedSymbols": { + "IAccessControl": [ + 2027 + ] + }, + "id": 2028, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1946, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:7" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAccessControl", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 1947, + "nodeType": "StructuredDocumentation", + "src": "135:90:7", + "text": " @dev External interface of AccessControl declared to support ERC-165 detection." + }, + "fullyImplemented": false, + "id": 2027, + "linearizedBaseContracts": [ + 2027 + ], + "name": "IAccessControl", + "nameLocation": "236:14:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 1948, + "nodeType": "StructuredDocumentation", + "src": "257:56:7", + "text": " @dev The `account` is missing a role." + }, + "errorSelector": "e2517d3f", + "id": 1954, + "name": "AccessControlUnauthorizedAccount", + "nameLocation": "324:32:7", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1950, + "mutability": "mutable", + "name": "account", + "nameLocation": "365:7:7", + "nodeType": "VariableDeclaration", + "scope": 1954, + "src": "357:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1949, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "357:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1952, + "mutability": "mutable", + "name": "neededRole", + "nameLocation": "382:10:7", + "nodeType": "VariableDeclaration", + "scope": 1954, + "src": "374:18:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1951, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "374:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "356:37:7" + }, + "src": "318:76:7" + }, + { + "documentation": { + "id": 1955, + "nodeType": "StructuredDocumentation", + "src": "400:148:7", + "text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}." + }, + "errorSelector": "6697b232", + "id": 1957, + "name": "AccessControlBadConfirmation", + "nameLocation": "559:28:7", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 1956, + "nodeType": "ParameterList", + "parameters": [], + "src": "587:2:7" + }, + "src": "553:37:7" + }, + { + "anonymous": false, + "documentation": { + "id": 1958, + "nodeType": "StructuredDocumentation", + "src": "596:254:7", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted to signal this." + }, + "eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", + "id": 1966, + "name": "RoleAdminChanged", + "nameLocation": "861:16:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1960, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "894:4:7", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "878:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1959, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "878:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1962, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "916:17:7", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "900:33:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1961, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "900:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1964, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nameLocation": "951:12:7", + "nodeType": "VariableDeclaration", + "scope": 1966, + "src": "935:28:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1963, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "935:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "877:87:7" + }, + "src": "855:110:7" + }, + { + "anonymous": false, + "documentation": { + "id": 1967, + "nodeType": "StructuredDocumentation", + "src": "971:295:7", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}." + }, + "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "id": 1975, + "name": "RoleGranted", + "nameLocation": "1277:11:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1969, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1305:4:7", + "nodeType": "VariableDeclaration", + "scope": 1975, + "src": "1289:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1968, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1289:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1971, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1327:7:7", + "nodeType": "VariableDeclaration", + "scope": 1975, + "src": "1311:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1311:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1973, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1352:6:7", + "nodeType": "VariableDeclaration", + "scope": 1975, + "src": "1336:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1336:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1288:71:7" + }, + "src": "1271:89:7" + }, + { + "anonymous": false, + "documentation": { + "id": 1976, + "nodeType": "StructuredDocumentation", + "src": "1366:275:7", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b", + "id": 1984, + "name": "RoleRevoked", + "nameLocation": "1652:11:7", + "nodeType": "EventDefinition", + "parameters": { + "id": 1983, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1978, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1680:4:7", + "nodeType": "VariableDeclaration", + "scope": 1984, + "src": "1664:20:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1977, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1664:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1980, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1702:7:7", + "nodeType": "VariableDeclaration", + "scope": 1984, + "src": "1686:23:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1686:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1982, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1727:6:7", + "nodeType": "VariableDeclaration", + "scope": 1984, + "src": "1711:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1981, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1711:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1663:71:7" + }, + "src": "1646:89:7" + }, + { + "documentation": { + "id": 1985, + "nodeType": "StructuredDocumentation", + "src": "1741:76:7", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 1994, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "1831:7:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1987, + "mutability": "mutable", + "name": "role", + "nameLocation": "1847:4:7", + "nodeType": "VariableDeclaration", + "scope": 1994, + "src": "1839:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1986, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1839:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1989, + "mutability": "mutable", + "name": "account", + "nameLocation": "1861:7:7", + "nodeType": "VariableDeclaration", + "scope": 1994, + "src": "1853:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1988, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1838:31:7" + }, + "returnParameters": { + "id": 1993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1992, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1994, + "src": "1893:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1991, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1893:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1892:6:7" + }, + "scope": 2027, + "src": "1822:77:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 1995, + "nodeType": "StructuredDocumentation", + "src": "1905:184:7", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 2002, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "2103:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "role", + "nameLocation": "2124:4:7", + "nodeType": "VariableDeclaration", + "scope": 2002, + "src": "2116:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1996, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2116:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2115:14:7" + }, + "returnParameters": { + "id": 2001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2002, + "src": "2153:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1999, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2153:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2152:9:7" + }, + "scope": 2027, + "src": "2094:68:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2003, + "nodeType": "StructuredDocumentation", + "src": "2168:239:7", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 2010, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "2421:9:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2005, + "mutability": "mutable", + "name": "role", + "nameLocation": "2439:4:7", + "nodeType": "VariableDeclaration", + "scope": 2010, + "src": "2431:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2004, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2431:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "account", + "nameLocation": "2453:7:7", + "nodeType": "VariableDeclaration", + "scope": 2010, + "src": "2445:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2430:31:7" + }, + "returnParameters": { + "id": 2009, + "nodeType": "ParameterList", + "parameters": [], + "src": "2470:0:7" + }, + "scope": 2027, + "src": "2412:59:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2011, + "nodeType": "StructuredDocumentation", + "src": "2477:223:7", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 2018, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "2714:10:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2013, + "mutability": "mutable", + "name": "role", + "nameLocation": "2733:4:7", + "nodeType": "VariableDeclaration", + "scope": 2018, + "src": "2725:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2012, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2725:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2015, + "mutability": "mutable", + "name": "account", + "nameLocation": "2747:7:7", + "nodeType": "VariableDeclaration", + "scope": 2018, + "src": "2739:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2739:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2724:31:7" + }, + "returnParameters": { + "id": 2017, + "nodeType": "ParameterList", + "parameters": [], + "src": "2764:0:7" + }, + "scope": 2027, + "src": "2705:60:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 2019, + "nodeType": "StructuredDocumentation", + "src": "2771:491:7", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`." + }, + "functionSelector": "36568abe", + "id": 2026, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "3276:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2021, + "mutability": "mutable", + "name": "role", + "nameLocation": "3297:4:7", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "3289:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2020, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3289:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2023, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "3311:18:7", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "3303:26:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3303:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3288:42:7" + }, + "returnParameters": { + "id": 2025, + "nodeType": "ParameterList", + "parameters": [], + "src": "3339:0:7" + }, + "scope": 2027, + "src": "3267:73:7", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2028, + "src": "226:3116:7", + "usedErrors": [ + 1954, + 1957 + ], + "usedEvents": [ + 1966, + 1975, + 1984 + ] + } + ], + "src": "109:3234:7" + }, + "id": 7 + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Context": [ + 3851 + ], + "Ownable": [ + 2175 + ] + }, + "id": 2176, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2029, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:8" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 2031, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2176, + "sourceUnit": 3852, + "src": "128:45:8", + "symbolAliases": [ + { + "foreign": { + "id": 2030, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3851, + "src": "136:7:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 2033, + "name": "Context", + "nameLocations": [ + "692:7:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3851, + "src": "692:7:8" + }, + "id": 2034, + "nodeType": "InheritanceSpecifier", + "src": "692:7:8" + } + ], + "canonicalName": "Ownable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2032, + "nodeType": "StructuredDocumentation", + "src": "175:487:8", + "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": 2175, + "linearizedBaseContracts": [ + 2175, + 3851 + ], + "name": "Ownable", + "nameLocation": "681:7:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2036, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "722:6:8", + "nodeType": "VariableDeclaration", + "scope": 2175, + "src": "706:22:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "706:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 2037, + "nodeType": "StructuredDocumentation", + "src": "735:85:8", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 2041, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "831:26:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2039, + "mutability": "mutable", + "name": "account", + "nameLocation": "866:7:8", + "nodeType": "VariableDeclaration", + "scope": 2041, + "src": "858:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "857:17:8" + }, + "src": "825:50:8" + }, + { + "documentation": { + "id": 2042, + "nodeType": "StructuredDocumentation", + "src": "881:82:8", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 2046, + "name": "OwnableInvalidOwner", + "nameLocation": "974:19:8", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2044, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1002:5:8", + "nodeType": "VariableDeclaration", + "scope": 2046, + "src": "994:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "994:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "993:15:8" + }, + "src": "968:41:8" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 2052, + "name": "OwnershipTransferred", + "nameLocation": "1021:20:8", + "nodeType": "EventDefinition", + "parameters": { + "id": 2051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2048, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1058:13:8", + "nodeType": "VariableDeclaration", + "scope": 2052, + "src": "1042:29:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2047, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1042:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2050, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1089:8:8", + "nodeType": "VariableDeclaration", + "scope": 2052, + "src": "1073:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2049, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1073:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1041:57:8" + }, + "src": "1015:84:8" + }, + { + "body": { + "id": 2077, + "nodeType": "Block", + "src": "1259:153:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2058, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2055, + "src": "1273:12:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:1:8", + "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": 2060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1289:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2059, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1289:7:8", + "typeDescriptions": {} + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1289:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1273:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2072, + "nodeType": "IfStatement", + "src": "1269:95:8", + "trueBody": { + "id": 2071, + "nodeType": "Block", + "src": "1301:63:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1350:1:8", + "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": 2066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1342:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1342:7:8", + "typeDescriptions": {} + } + }, + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1342:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2064, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "1322:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1322:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "RevertStatement", + "src": "1315:38:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2074, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2055, + "src": "1392:12:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2073, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "1373:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1373:32:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2076, + "nodeType": "ExpressionStatement", + "src": "1373:32:8" + } + ] + }, + "documentation": { + "id": 2053, + "nodeType": "StructuredDocumentation", + "src": "1105:115:8", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 2078, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2055, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1245:12:8", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "1237:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2054, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1237:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1236:22:8" + }, + "returnParameters": { + "id": 2057, + "nodeType": "ParameterList", + "parameters": [], + "src": "1259:0:8" + }, + "scope": 2175, + "src": "1225:187:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2085, + "nodeType": "Block", + "src": "1521:41:8", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2081, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1531:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 2082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1531:13:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2083, + "nodeType": "ExpressionStatement", + "src": "1531:13:8" + }, + { + "id": 2084, + "nodeType": "PlaceholderStatement", + "src": "1554:1:8" + } + ] + }, + "documentation": { + "id": 2079, + "nodeType": "StructuredDocumentation", + "src": "1418:77:8", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 2086, + "name": "onlyOwner", + "nameLocation": "1509:9:8", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2080, + "nodeType": "ParameterList", + "parameters": [], + "src": "1518:2:8" + }, + "src": "1500:62:8", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2094, + "nodeType": "Block", + "src": "1693:30:8", + "statements": [ + { + "expression": { + "id": 2092, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "1710:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2091, + "id": 2093, + "nodeType": "Return", + "src": "1703:13:8" + } + ] + }, + "documentation": { + "id": 2087, + "nodeType": "StructuredDocumentation", + "src": "1568:65:8", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 2095, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "1647:5:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [], + "src": "1652:2:8" + }, + "returnParameters": { + "id": 2091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2090, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2095, + "src": "1684:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2089, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1684:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1683:9:8" + }, + "scope": 2175, + "src": "1638:85:8", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2111, + "nodeType": "Block", + "src": "1841:117:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2099, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2095, + "src": "1855:5:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1855:7:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2101, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3833, + "src": "1866:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:12:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1855:23:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2110, + "nodeType": "IfStatement", + "src": "1851:101:8", + "trueBody": { + "id": 2109, + "nodeType": "Block", + "src": "1880:72:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2105, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3833, + "src": "1928:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1928:12:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2104, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2041, + "src": "1901:26:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1901:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2108, + "nodeType": "RevertStatement", + "src": "1894:47:8" + } + ] + } + } + ] + }, + "documentation": { + "id": 2096, + "nodeType": "StructuredDocumentation", + "src": "1729:62:8", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 2112, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "1805:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2097, + "nodeType": "ParameterList", + "parameters": [], + "src": "1816:2:8" + }, + "returnParameters": { + "id": 2098, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:0:8" + }, + "scope": 2175, + "src": "1796:162:8", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 2125, + "nodeType": "Block", + "src": "2347:47:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2384:1:8", + "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": 2120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2376:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2376:7:8", + "typeDescriptions": {} + } + }, + "id": 2122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2376:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2118, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "2357:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2357:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2124, + "nodeType": "ExpressionStatement", + "src": "2357:30:8" + } + ] + }, + "documentation": { + "id": 2113, + "nodeType": "StructuredDocumentation", + "src": "1964:324:8", + "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": 2126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2116, + "kind": "modifierInvocation", + "modifierName": { + "id": 2115, + "name": "onlyOwner", + "nameLocations": [ + "2337:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2086, + "src": "2337:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "2337:9:8" + } + ], + "name": "renounceOwnership", + "nameLocation": "2302:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2114, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:8" + }, + "returnParameters": { + "id": 2117, + "nodeType": "ParameterList", + "parameters": [], + "src": "2347:0:8" + }, + "scope": 2175, + "src": "2293:101:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2153, + "nodeType": "Block", + "src": "2613:145:8", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2134, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2129, + "src": "2627:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:1:8", + "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": 2136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2639:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2135, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2639:7:8", + "typeDescriptions": {} + } + }, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2639:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2627:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2148, + "nodeType": "IfStatement", + "src": "2623:91:8", + "trueBody": { + "id": 2147, + "nodeType": "Block", + "src": "2651:63:8", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2700:1:8", + "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": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2692:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2692:7:8", + "typeDescriptions": {} + } + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2692:10:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2140, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2046, + "src": "2672:19:8", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 2145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2672:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2146, + "nodeType": "RevertStatement", + "src": "2665:38:8" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 2150, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2129, + "src": "2742:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2149, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "2723:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2723:28:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2152, + "nodeType": "ExpressionStatement", + "src": "2723:28:8" + } + ] + }, + "documentation": { + "id": 2127, + "nodeType": "StructuredDocumentation", + "src": "2400:138:8", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 2154, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 2132, + "kind": "modifierInvocation", + "modifierName": { + "id": 2131, + "name": "onlyOwner", + "nameLocations": [ + "2603:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2086, + "src": "2603:9:8" + }, + "nodeType": "ModifierInvocation", + "src": "2603:9:8" + } + ], + "name": "transferOwnership", + "nameLocation": "2552:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2129, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2578:8:8", + "nodeType": "VariableDeclaration", + "scope": 2154, + "src": "2570:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2570:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2569:18:8" + }, + "returnParameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:8" + }, + "scope": 2175, + "src": "2543:215:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2173, + "nodeType": "Block", + "src": "2975:124:8", + "statements": [ + { + "assignments": [ + 2161 + ], + "declarations": [ + { + "constant": false, + "id": 2161, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "2993:8:8", + "nodeType": "VariableDeclaration", + "scope": 2173, + "src": "2985:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2985:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "id": 2162, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "3004:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2985:25:8" + }, + { + "expression": { + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2164, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "3020:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2165, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2157, + "src": "3029:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3020:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2167, + "nodeType": "ExpressionStatement", + "src": "3020:17:8" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2169, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2161, + "src": "3073:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2170, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2157, + "src": "3083:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2168, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2052, + "src": "3052:20:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3052:40:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2172, + "nodeType": "EmitStatement", + "src": "3047:45:8" + } + ] + }, + "documentation": { + "id": 2155, + "nodeType": "StructuredDocumentation", + "src": "2764:143:8", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 2174, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2921:18:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2158, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2157, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2948:8:8", + "nodeType": "VariableDeclaration", + "scope": 2174, + "src": "2940:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2940:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2939:18:8" + }, + "returnParameters": { + "id": 2159, + "nodeType": "ParameterList", + "parameters": [], + "src": "2975:0:8" + }, + "scope": 2175, + "src": "2912:187:8", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 2176, + "src": "663:2438:8", + "usedErrors": [ + 2041, + 2046 + ], + "usedEvents": [ + 2052 + ] + } + ], + "src": "102:3000:8" + }, + "id": 8 + }, + "@openzeppelin/contracts/interfaces/IERC1967.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", + "exportedSymbols": { + "IERC1967": [ + 2196 + ] + }, + "id": 2197, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2177, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1967", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2178, + "nodeType": "StructuredDocumentation", + "src": "133:101:9", + "text": " @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC." + }, + "fullyImplemented": true, + "id": 2196, + "linearizedBaseContracts": [ + 2196 + ], + "name": "IERC1967", + "nameLocation": "245:8:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 2179, + "nodeType": "StructuredDocumentation", + "src": "260:68:9", + "text": " @dev Emitted when the implementation is upgraded." + }, + "eventSelector": "bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "id": 2183, + "name": "Upgraded", + "nameLocation": "339:8:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2181, + "indexed": true, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "364:14:9", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "348:30:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "348:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "347:32:9" + }, + "src": "333:47:9" + }, + { + "anonymous": false, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "386:67:9", + "text": " @dev Emitted when the admin account has changed." + }, + "eventSelector": "7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f", + "id": 2190, + "name": "AdminChanged", + "nameLocation": "464:12:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "indexed": false, + "mutability": "mutable", + "name": "previousAdmin", + "nameLocation": "485:13:9", + "nodeType": "VariableDeclaration", + "scope": 2190, + "src": "477:21:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "477:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "indexed": false, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "508:8:9", + "nodeType": "VariableDeclaration", + "scope": 2190, + "src": "500:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2187, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "500:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "476:41:9" + }, + "src": "458:60:9" + }, + { + "anonymous": false, + "documentation": { + "id": 2191, + "nodeType": "StructuredDocumentation", + "src": "524:59:9", + "text": " @dev Emitted when the beacon is changed." + }, + "eventSelector": "1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e", + "id": 2195, + "name": "BeaconUpgraded", + "nameLocation": "594:14:9", + "nodeType": "EventDefinition", + "parameters": { + "id": 2194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2193, + "indexed": true, + "mutability": "mutable", + "name": "beacon", + "nameLocation": "625:6:9", + "nodeType": "VariableDeclaration", + "scope": 2195, + "src": "609:22:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "609:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "608:24:9" + }, + "src": "588:45:9" + } + ], + "scope": 2197, + "src": "235:400:9", + "usedErrors": [], + "usedEvents": [ + 2183, + 2190, + 2195 + ] + } + ], + "src": "107:529:9" + }, + "id": 9 + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "exportedSymbols": { + "IERC1155Errors": [ + 2333 + ], + "IERC20Errors": [ + 2238 + ], + "IERC721Errors": [ + 2286 + ] + }, + "id": 2334, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2198, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:10" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2199, + "nodeType": "StructuredDocumentation", + "src": "138:141:10", + "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens." + }, + "fullyImplemented": true, + "id": 2238, + "linearizedBaseContracts": [ + 2238 + ], + "name": "IERC20Errors", + "nameLocation": "290:12:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2200, + "nodeType": "StructuredDocumentation", + "src": "309:309:10", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "e450d38c", + "id": 2208, + "name": "ERC20InsufficientBalance", + "nameLocation": "629:24:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2202, + "mutability": "mutable", + "name": "sender", + "nameLocation": "662:6:10", + "nodeType": "VariableDeclaration", + "scope": 2208, + "src": "654:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2204, + "mutability": "mutable", + "name": "balance", + "nameLocation": "678:7:10", + "nodeType": "VariableDeclaration", + "scope": 2208, + "src": "670:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2206, + "mutability": "mutable", + "name": "needed", + "nameLocation": "695:6:10", + "nodeType": "VariableDeclaration", + "scope": 2208, + "src": "687:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "653:49:10" + }, + "src": "623:80:10" + }, + { + "documentation": { + "id": 2209, + "nodeType": "StructuredDocumentation", + "src": "709:152:10", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "96c6fd1e", + "id": 2213, + "name": "ERC20InvalidSender", + "nameLocation": "872:18:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2211, + "mutability": "mutable", + "name": "sender", + "nameLocation": "899:6:10", + "nodeType": "VariableDeclaration", + "scope": 2213, + "src": "891:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "890:16:10" + }, + "src": "866:41:10" + }, + { + "documentation": { + "id": 2214, + "nodeType": "StructuredDocumentation", + "src": "913:159:10", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "ec442f05", + "id": 2218, + "name": "ERC20InvalidReceiver", + "nameLocation": "1083:20:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2216, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1112:8:10", + "nodeType": "VariableDeclaration", + "scope": 2218, + "src": "1104:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1103:18:10" + }, + "src": "1077:45:10" + }, + { + "documentation": { + "id": 2219, + "nodeType": "StructuredDocumentation", + "src": "1128:345:10", + "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer." + }, + "errorSelector": "fb8f41b2", + "id": 2227, + "name": "ERC20InsufficientAllowance", + "nameLocation": "1484:26:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1519:7:10", + "nodeType": "VariableDeclaration", + "scope": 2227, + "src": "1511:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1511:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "allowance", + "nameLocation": "1536:9:10", + "nodeType": "VariableDeclaration", + "scope": 2227, + "src": "1528:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2222, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2225, + "mutability": "mutable", + "name": "needed", + "nameLocation": "1555:6:10", + "nodeType": "VariableDeclaration", + "scope": 2227, + "src": "1547:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1510:52:10" + }, + "src": "1478:85:10" + }, + { + "documentation": { + "id": 2228, + "nodeType": "StructuredDocumentation", + "src": "1569:174:10", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "e602df05", + "id": 2232, + "name": "ERC20InvalidApprover", + "nameLocation": "1754:20:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2230, + "mutability": "mutable", + "name": "approver", + "nameLocation": "1783:8:10", + "nodeType": "VariableDeclaration", + "scope": 2232, + "src": "1775:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1774:18:10" + }, + "src": "1748:45:10" + }, + { + "documentation": { + "id": 2233, + "nodeType": "StructuredDocumentation", + "src": "1799:195:10", + "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "94280d62", + "id": 2237, + "name": "ERC20InvalidSpender", + "nameLocation": "2005:19:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2235, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2033:7:10", + "nodeType": "VariableDeclaration", + "scope": 2237, + "src": "2025:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2234, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2024:17:10" + }, + "src": "1999:43:10" + } + ], + "scope": 2334, + "src": "280:1764:10", + "usedErrors": [ + 2208, + 2213, + 2218, + 2227, + 2232, + 2237 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2239, + "nodeType": "StructuredDocumentation", + "src": "2046:143:10", + "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens." + }, + "fullyImplemented": true, + "id": 2286, + "linearizedBaseContracts": [ + 2286 + ], + "name": "IERC721Errors", + "nameLocation": "2200:13:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2240, + "nodeType": "StructuredDocumentation", + "src": "2220:219:10", + "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "89c62b64", + "id": 2244, + "name": "ERC721InvalidOwner", + "nameLocation": "2450:18:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2477:5:10", + "nodeType": "VariableDeclaration", + "scope": 2244, + "src": "2469:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2469:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2468:15:10" + }, + "src": "2444:40:10" + }, + { + "documentation": { + "id": 2245, + "nodeType": "StructuredDocumentation", + "src": "2490:132:10", + "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "7e273289", + "id": 2249, + "name": "ERC721NonexistentToken", + "nameLocation": "2633:22:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2247, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2664:7:10", + "nodeType": "VariableDeclaration", + "scope": 2249, + "src": "2656:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2656:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2655:17:10" + }, + "src": "2627:46:10" + }, + { + "documentation": { + "id": 2250, + "nodeType": "StructuredDocumentation", + "src": "2679:289:10", + "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "64283d7b", + "id": 2258, + "name": "ERC721IncorrectOwner", + "nameLocation": "2979:20:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2252, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3008:6:10", + "nodeType": "VariableDeclaration", + "scope": 2258, + "src": "3000:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2251, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3000:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2254, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3024:7:10", + "nodeType": "VariableDeclaration", + "scope": 2258, + "src": "3016:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3016:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2256, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3041:5:10", + "nodeType": "VariableDeclaration", + "scope": 2258, + "src": "3033:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3033:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2999:48:10" + }, + "src": "2973:75:10" + }, + { + "documentation": { + "id": 2259, + "nodeType": "StructuredDocumentation", + "src": "3054:152:10", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "73c6ac6e", + "id": 2263, + "name": "ERC721InvalidSender", + "nameLocation": "3217:19:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3245:6:10", + "nodeType": "VariableDeclaration", + "scope": 2263, + "src": "3237:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3237:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3236:16:10" + }, + "src": "3211:42:10" + }, + { + "documentation": { + "id": 2264, + "nodeType": "StructuredDocumentation", + "src": "3259:159:10", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "64a0ae92", + "id": 2268, + "name": "ERC721InvalidReceiver", + "nameLocation": "3429:21:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2266, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3459:8:10", + "nodeType": "VariableDeclaration", + "scope": 2268, + "src": "3451:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3451:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3450:18:10" + }, + "src": "3423:46:10" + }, + { + "documentation": { + "id": 2269, + "nodeType": "StructuredDocumentation", + "src": "3475:247:10", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "177e802f", + "id": 2275, + "name": "ERC721InsufficientApproval", + "nameLocation": "3733:26:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2271, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3768:8:10", + "nodeType": "VariableDeclaration", + "scope": 2275, + "src": "3760:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3760:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2273, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3786:7:10", + "nodeType": "VariableDeclaration", + "scope": 2275, + "src": "3778:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3778:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3759:35:10" + }, + "src": "3727:68:10" + }, + { + "documentation": { + "id": 2276, + "nodeType": "StructuredDocumentation", + "src": "3801:174:10", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "a9fbf51f", + "id": 2280, + "name": "ERC721InvalidApprover", + "nameLocation": "3986:21:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "approver", + "nameLocation": "4016:8:10", + "nodeType": "VariableDeclaration", + "scope": 2280, + "src": "4008:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4008:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4007:18:10" + }, + "src": "3980:46:10" + }, + { + "documentation": { + "id": 2281, + "nodeType": "StructuredDocumentation", + "src": "4032:197:10", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "5b08ba18", + "id": 2285, + "name": "ERC721InvalidOperator", + "nameLocation": "4240:21:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2283, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4270:8:10", + "nodeType": "VariableDeclaration", + "scope": 2285, + "src": "4262:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4262:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4261:18:10" + }, + "src": "4234:46:10" + } + ], + "scope": 2334, + "src": "2190:2092:10", + "usedErrors": [ + 2244, + 2249, + 2258, + 2263, + 2268, + 2275, + 2280, + 2285 + ], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC1155Errors", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "4284:145:10", + "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens." + }, + "fullyImplemented": true, + "id": 2333, + "linearizedBaseContracts": [ + 2333 + ], + "name": "IERC1155Errors", + "nameLocation": "4440:14:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2288, + "nodeType": "StructuredDocumentation", + "src": "4461:361:10", + "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token." + }, + "errorSelector": "03dee4c5", + "id": 2298, + "name": "ERC1155InsufficientBalance", + "nameLocation": "4833:26:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2290, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4868:6:10", + "nodeType": "VariableDeclaration", + "scope": 2298, + "src": "4860:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2289, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4860:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2292, + "mutability": "mutable", + "name": "balance", + "nameLocation": "4884:7:10", + "nodeType": "VariableDeclaration", + "scope": 2298, + "src": "4876:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4876:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "needed", + "nameLocation": "4901:6:10", + "nodeType": "VariableDeclaration", + "scope": 2298, + "src": "4893:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2293, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2296, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4917:7:10", + "nodeType": "VariableDeclaration", + "scope": 2298, + "src": "4909:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4909:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4859:66:10" + }, + "src": "4827:99:10" + }, + { + "documentation": { + "id": 2299, + "nodeType": "StructuredDocumentation", + "src": "4932:152:10", + "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred." + }, + "errorSelector": "01a83514", + "id": 2303, + "name": "ERC1155InvalidSender", + "nameLocation": "5095:20:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2301, + "mutability": "mutable", + "name": "sender", + "nameLocation": "5124:6:10", + "nodeType": "VariableDeclaration", + "scope": 2303, + "src": "5116:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5116:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5115:16:10" + }, + "src": "5089:43:10" + }, + { + "documentation": { + "id": 2304, + "nodeType": "StructuredDocumentation", + "src": "5138:159:10", + "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred." + }, + "errorSelector": "57f447ce", + "id": 2308, + "name": "ERC1155InvalidReceiver", + "nameLocation": "5308:22:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2306, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5339:8:10", + "nodeType": "VariableDeclaration", + "scope": 2308, + "src": "5331:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5331:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5330:18:10" + }, + "src": "5302:47:10" + }, + { + "documentation": { + "id": 2309, + "nodeType": "StructuredDocumentation", + "src": "5355:256:10", + "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token." + }, + "errorSelector": "e237d922", + "id": 2315, + "name": "ERC1155MissingApprovalForAll", + "nameLocation": "5622:28:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "operator", + "nameLocation": "5659:8:10", + "nodeType": "VariableDeclaration", + "scope": 2315, + "src": "5651:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5651:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2313, + "mutability": "mutable", + "name": "owner", + "nameLocation": "5677:5:10", + "nodeType": "VariableDeclaration", + "scope": 2315, + "src": "5669:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5669:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5650:33:10" + }, + "src": "5616:68:10" + }, + { + "documentation": { + "id": 2316, + "nodeType": "StructuredDocumentation", + "src": "5690:174:10", + "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation." + }, + "errorSelector": "3e31884e", + "id": 2320, + "name": "ERC1155InvalidApprover", + "nameLocation": "5875:22:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2318, + "mutability": "mutable", + "name": "approver", + "nameLocation": "5906:8:10", + "nodeType": "VariableDeclaration", + "scope": 2320, + "src": "5898:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5898:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5897:18:10" + }, + "src": "5869:47:10" + }, + { + "documentation": { + "id": 2321, + "nodeType": "StructuredDocumentation", + "src": "5922:197:10", + "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner." + }, + "errorSelector": "ced3e100", + "id": 2325, + "name": "ERC1155InvalidOperator", + "nameLocation": "6130:22:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2323, + "mutability": "mutable", + "name": "operator", + "nameLocation": "6161:8:10", + "nodeType": "VariableDeclaration", + "scope": 2325, + "src": "6153:16:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6153:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6152:18:10" + }, + "src": "6124:47:10" + }, + { + "documentation": { + "id": 2326, + "nodeType": "StructuredDocumentation", + "src": "6177:280:10", + "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts" + }, + "errorSelector": "5b059991", + "id": 2332, + "name": "ERC1155InvalidArrayLength", + "nameLocation": "6468:25:10", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2328, + "mutability": "mutable", + "name": "idsLength", + "nameLocation": "6502:9:10", + "nodeType": "VariableDeclaration", + "scope": 2332, + "src": "6494:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6494:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2330, + "mutability": "mutable", + "name": "valuesLength", + "nameLocation": "6521:12:10", + "nodeType": "VariableDeclaration", + "scope": 2332, + "src": "6513:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6513:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6493:41:10" + }, + "src": "6462:73:10" + } + ], + "scope": 2334, + "src": "4430:2107:10", + "usedErrors": [ + 2298, + 2303, + 2308, + 2315, + 2320, + 2325, + 2332 + ], + "usedEvents": [] + } + ], + "src": "112:6426:10" + }, + "id": 10 + }, + "@openzeppelin/contracts/proxy/Clones.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/Clones.sol", + "exportedSymbols": { + "Clones": [ + 2732 + ], + "Create2": [ + 3950 + ], + "Errors": [ + 3972 + ] + }, + "id": 2733, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2335, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "100:24:11" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Create2.sol", + "file": "../utils/Create2.sol", + "id": 2337, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2733, + "sourceUnit": 3951, + "src": "126:45:11", + "symbolAliases": [ + { + "foreign": { + "id": 2336, + "name": "Create2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "134:7:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", + "file": "../utils/Errors.sol", + "id": 2339, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2733, + "sourceUnit": 3973, + "src": "172:43:11", + "symbolAliases": [ + { + "foreign": { + "id": 2338, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "180:6:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Clones", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2340, + "nodeType": "StructuredDocumentation", + "src": "217:599:11", + "text": " @dev https://eips.ethereum.org/EIPS/eip-1167[ERC-1167] is a standard for\n deploying minimal proxy contracts, also known as \"clones\".\n > To simply and cheaply clone contract functionality in an immutable way, this standard specifies\n > a minimal bytecode implementation that delegates all calls to a known, fixed address.\n The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`\n (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the\n deterministic method." + }, + "fullyImplemented": true, + "id": 2732, + "linearizedBaseContracts": [ + 2732 + ], + "name": "Clones", + "nameLocation": "825:6:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "errorSelector": "94289054", + "id": 2342, + "name": "CloneArgumentsTooLong", + "nameLocation": "844:21:11", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [], + "src": "865:2:11" + }, + "src": "838:30:11" + }, + { + "body": { + "id": 2355, + "nodeType": "Block", + "src": "1145:48:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2351, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "1168:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 2352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1184:1:11", + "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": 2350, + "name": "clone", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2356, + 2401 + ], + "referencedDeclaration": 2401, + "src": "1162:5:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$", + "typeString": "function (address,uint256) returns (address)" + } + }, + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1162:24:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2349, + "id": 2354, + "nodeType": "Return", + "src": "1155:31:11" + } + ] + }, + "documentation": { + "id": 2343, + "nodeType": "StructuredDocumentation", + "src": "874:191:11", + "text": " @dev Deploys and returns the address of a clone that mimics the behavior of `implementation`.\n This function uses the create opcode, which should never revert." + }, + "id": 2356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nameLocation": "1079:5:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1093:14:11", + "nodeType": "VariableDeclaration", + "scope": 2356, + "src": "1085:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1085:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1084:24:11" + }, + "returnParameters": { + "id": 2349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "instance", + "nameLocation": "1135:8:11", + "nodeType": "VariableDeclaration", + "scope": 2356, + "src": "1127:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2347, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1127:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1126:18:11" + }, + "scope": 2732, + "src": "1070:123:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2400, + "nodeType": "Block", + "src": "1675:820:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2368, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1697:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1689:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1689:7:11", + "typeDescriptions": {} + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1689:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1703:7:11", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1689:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2371, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2361, + "src": "1713:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1689:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2385, + "nodeType": "IfStatement", + "src": "1685:123:11", + "trueBody": { + "id": 2384, + "nodeType": "Block", + "src": "1720:88:11", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 2378, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1776:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1768:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2376, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1768:7:11", + "typeDescriptions": {} + } + }, + "id": 2379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1768:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1782:7:11", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1768:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2381, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2361, + "src": "1791:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2373, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "1741:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1748:19:11", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 3960, + "src": "1741:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 2382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1741:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2383, + "nodeType": "RevertStatement", + "src": "1734:63:11" + } + ] + } + }, + { + "AST": { + "nativeSrc": "1842:553:11", + "nodeType": "YulBlock", + "src": "1842:553:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2047:4:11", + "nodeType": "YulLiteral", + "src": "2047:4:11", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2060:4:11", + "nodeType": "YulLiteral", + "src": "2060:4:11", + "type": "", + "value": "0xe8" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2070:4:11", + "nodeType": "YulLiteral", + "src": "2070:4:11", + "type": "", + "value": "0x60" + }, + { + "name": "implementation", + "nativeSrc": "2076:14:11", + "nodeType": "YulIdentifier", + "src": "2076:14:11" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2066:3:11", + "nodeType": "YulIdentifier", + "src": "2066:3:11" + }, + "nativeSrc": "2066:25:11", + "nodeType": "YulFunctionCall", + "src": "2066:25:11" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "2056:3:11", + "nodeType": "YulIdentifier", + "src": "2056:3:11" + }, + "nativeSrc": "2056:36:11", + "nodeType": "YulFunctionCall", + "src": "2056:36:11" + }, + { + "kind": "number", + "nativeSrc": "2094:48:11", + "nodeType": "YulLiteral", + "src": "2094:48:11", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2053:2:11", + "nodeType": "YulIdentifier", + "src": "2053:2:11" + }, + "nativeSrc": "2053:90:11", + "nodeType": "YulFunctionCall", + "src": "2053:90:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2040:6:11", + "nodeType": "YulIdentifier", + "src": "2040:6:11" + }, + "nativeSrc": "2040:104:11", + "nodeType": "YulFunctionCall", + "src": "2040:104:11" + }, + "nativeSrc": "2040:104:11", + "nodeType": "YulExpressionStatement", + "src": "2040:104:11" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2265:4:11", + "nodeType": "YulLiteral", + "src": "2265:4:11", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2278:4:11", + "nodeType": "YulLiteral", + "src": "2278:4:11", + "type": "", + "value": "0x78" + }, + { + "name": "implementation", + "nativeSrc": "2284:14:11", + "nodeType": "YulIdentifier", + "src": "2284:14:11" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2274:3:11", + "nodeType": "YulIdentifier", + "src": "2274:3:11" + }, + "nativeSrc": "2274:25:11", + "nodeType": "YulFunctionCall", + "src": "2274:25:11" + }, + { + "kind": "number", + "nativeSrc": "2301:32:11", + "nodeType": "YulLiteral", + "src": "2301:32:11", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf3" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2271:2:11", + "nodeType": "YulIdentifier", + "src": "2271:2:11" + }, + "nativeSrc": "2271:63:11", + "nodeType": "YulFunctionCall", + "src": "2271:63:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2258:6:11", + "nodeType": "YulIdentifier", + "src": "2258:6:11" + }, + "nativeSrc": "2258:77:11", + "nodeType": "YulFunctionCall", + "src": "2258:77:11" + }, + "nativeSrc": "2258:77:11", + "nodeType": "YulExpressionStatement", + "src": "2258:77:11" + }, + { + "nativeSrc": "2348:37:11", + "nodeType": "YulAssignment", + "src": "2348:37:11", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2367:5:11", + "nodeType": "YulIdentifier", + "src": "2367:5:11" + }, + { + "kind": "number", + "nativeSrc": "2374:4:11", + "nodeType": "YulLiteral", + "src": "2374:4:11", + "type": "", + "value": "0x09" + }, + { + "kind": "number", + "nativeSrc": "2380:4:11", + "nodeType": "YulLiteral", + "src": "2380:4:11", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "create", + "nativeSrc": "2360:6:11", + "nodeType": "YulIdentifier", + "src": "2360:6:11" + }, + "nativeSrc": "2360:25:11", + "nodeType": "YulFunctionCall", + "src": "2360:25:11" + }, + "variableNames": [ + { + "name": "instance", + "nativeSrc": "2348:8:11", + "nodeType": "YulIdentifier", + "src": "2348:8:11" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2359, + "isOffset": false, + "isSlot": false, + "src": "2076:14:11", + "valueSize": 1 + }, + { + "declaration": 2359, + "isOffset": false, + "isSlot": false, + "src": "2284:14:11", + "valueSize": 1 + }, + { + "declaration": 2364, + "isOffset": false, + "isSlot": false, + "src": "2348:8:11", + "valueSize": 1 + }, + { + "declaration": 2361, + "isOffset": false, + "isSlot": false, + "src": "2367:5:11", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 2386, + "nodeType": "InlineAssembly", + "src": "1817:578:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2387, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2364, + "src": "2408:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2428:1:11", + "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": 2389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2420:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2420:7:11", + "typeDescriptions": {} + } + }, + "id": 2391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:10:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2408:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2399, + "nodeType": "IfStatement", + "src": "2404:85:11", + "trueBody": { + "id": 2398, + "nodeType": "Block", + "src": "2432:57:11", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2393, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "2453:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 2395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2460:16:11", + "memberName": "FailedDeployment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3966, + "src": "2453:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2453:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2397, + "nodeType": "RevertStatement", + "src": "2446:32:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 2357, + "nodeType": "StructuredDocumentation", + "src": "1199:381:11", + "text": " @dev Same as {xref-Clones-clone-address-}[clone], but with a `value` parameter to send native currency\n to the new contract.\n NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n to always have enough balance for new deployments. Consider exposing this function under a payable method." + }, + "id": 2401, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nameLocation": "1594:5:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2362, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2359, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1608:14:11", + "nodeType": "VariableDeclaration", + "scope": 2401, + "src": "1600:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1600:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2361, + "mutability": "mutable", + "name": "value", + "nameLocation": "1632:5:11", + "nodeType": "VariableDeclaration", + "scope": 2401, + "src": "1624:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1624:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1599:39:11" + }, + "returnParameters": { + "id": 2365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2364, + "mutability": "mutable", + "name": "instance", + "nameLocation": "1665:8:11", + "nodeType": "VariableDeclaration", + "scope": 2401, + "src": "1657:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1657:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1656:18:11" + }, + "scope": 2732, + "src": "1585:910:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "2972:67:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2412, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2404, + "src": "3008:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2413, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "3024:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "hexValue": "30", + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3030:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2411, + "name": "cloneDeterministic", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2418, + 2465 + ], + "referencedDeclaration": 2465, + "src": "2989:18:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$_t_address_$", + "typeString": "function (address,bytes32,uint256) returns (address)" + } + }, + "id": 2415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2989:43:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2410, + "id": 2416, + "nodeType": "Return", + "src": "2982:50:11" + } + ] + }, + "documentation": { + "id": 2402, + "nodeType": "StructuredDocumentation", + "src": "2501:364:11", + "text": " @dev Deploys and returns the address of a clone that mimics the behavior of `implementation`.\n This function uses the create2 opcode and a `salt` to deterministically deploy\n the clone. Using the same `implementation` and `salt` multiple times will revert, since\n the clones cannot be deployed twice at the same address." + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneDeterministic", + "nameLocation": "2879:18:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2404, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "2906:14:11", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "2898:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2898:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2406, + "mutability": "mutable", + "name": "salt", + "nameLocation": "2930:4:11", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "2922:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2405, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2922:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2897:38:11" + }, + "returnParameters": { + "id": 2410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2409, + "mutability": "mutable", + "name": "instance", + "nameLocation": "2962:8:11", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "2954:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2954:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2953:18:11" + }, + "scope": 2732, + "src": "2870:169:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2464, + "nodeType": "Block", + "src": "3612:827:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2432, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3634:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3626:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2430, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3626:7:11", + "typeDescriptions": {} + } + }, + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3626:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3640:7:11", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3626:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2435, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "3650:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3626:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2449, + "nodeType": "IfStatement", + "src": "3622:123:11", + "trueBody": { + "id": 2448, + "nodeType": "Block", + "src": "3657:88:11", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 2442, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3713:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3705:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3705:7:11", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3705:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3719:7:11", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3705:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "3728:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2437, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "3678:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 2439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3685:19:11", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 3960, + "src": "3678:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3678:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2447, + "nodeType": "RevertStatement", + "src": "3671:63:11" + } + ] + } + }, + { + "AST": { + "nativeSrc": "3779:560:11", + "nodeType": "YulBlock", + "src": "3779:560:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3984:4:11", + "nodeType": "YulLiteral", + "src": "3984:4:11", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3997:4:11", + "nodeType": "YulLiteral", + "src": "3997:4:11", + "type": "", + "value": "0xe8" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4007:4:11", + "nodeType": "YulLiteral", + "src": "4007:4:11", + "type": "", + "value": "0x60" + }, + { + "name": "implementation", + "nativeSrc": "4013:14:11", + "nodeType": "YulIdentifier", + "src": "4013:14:11" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4003:3:11", + "nodeType": "YulIdentifier", + "src": "4003:3:11" + }, + "nativeSrc": "4003:25:11", + "nodeType": "YulFunctionCall", + "src": "4003:25:11" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3993:3:11", + "nodeType": "YulIdentifier", + "src": "3993:3:11" + }, + "nativeSrc": "3993:36:11", + "nodeType": "YulFunctionCall", + "src": "3993:36:11" + }, + { + "kind": "number", + "nativeSrc": "4031:48:11", + "nodeType": "YulLiteral", + "src": "4031:48:11", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3990:2:11", + "nodeType": "YulIdentifier", + "src": "3990:2:11" + }, + "nativeSrc": "3990:90:11", + "nodeType": "YulFunctionCall", + "src": "3990:90:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3977:6:11", + "nodeType": "YulIdentifier", + "src": "3977:6:11" + }, + "nativeSrc": "3977:104:11", + "nodeType": "YulFunctionCall", + "src": "3977:104:11" + }, + "nativeSrc": "3977:104:11", + "nodeType": "YulExpressionStatement", + "src": "3977:104:11" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4202:4:11", + "nodeType": "YulLiteral", + "src": "4202:4:11", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4215:4:11", + "nodeType": "YulLiteral", + "src": "4215:4:11", + "type": "", + "value": "0x78" + }, + { + "name": "implementation", + "nativeSrc": "4221:14:11", + "nodeType": "YulIdentifier", + "src": "4221:14:11" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4211:3:11", + "nodeType": "YulIdentifier", + "src": "4211:3:11" + }, + "nativeSrc": "4211:25:11", + "nodeType": "YulFunctionCall", + "src": "4211:25:11" + }, + { + "kind": "number", + "nativeSrc": "4238:32:11", + "nodeType": "YulLiteral", + "src": "4238:32:11", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf3" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4208:2:11", + "nodeType": "YulIdentifier", + "src": "4208:2:11" + }, + "nativeSrc": "4208:63:11", + "nodeType": "YulFunctionCall", + "src": "4208:63:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4195:6:11", + "nodeType": "YulIdentifier", + "src": "4195:6:11" + }, + "nativeSrc": "4195:77:11", + "nodeType": "YulFunctionCall", + "src": "4195:77:11" + }, + "nativeSrc": "4195:77:11", + "nodeType": "YulExpressionStatement", + "src": "4195:77:11" + }, + { + "nativeSrc": "4285:44:11", + "nodeType": "YulAssignment", + "src": "4285:44:11", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4305:5:11", + "nodeType": "YulIdentifier", + "src": "4305:5:11" + }, + { + "kind": "number", + "nativeSrc": "4312:4:11", + "nodeType": "YulLiteral", + "src": "4312:4:11", + "type": "", + "value": "0x09" + }, + { + "kind": "number", + "nativeSrc": "4318:4:11", + "nodeType": "YulLiteral", + "src": "4318:4:11", + "type": "", + "value": "0x37" + }, + { + "name": "salt", + "nativeSrc": "4324:4:11", + "nodeType": "YulIdentifier", + "src": "4324:4:11" + } + ], + "functionName": { + "name": "create2", + "nativeSrc": "4297:7:11", + "nodeType": "YulIdentifier", + "src": "4297:7:11" + }, + "nativeSrc": "4297:32:11", + "nodeType": "YulFunctionCall", + "src": "4297:32:11" + }, + "variableNames": [ + { + "name": "instance", + "nativeSrc": "4285:8:11", + "nodeType": "YulIdentifier", + "src": "4285:8:11" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2421, + "isOffset": false, + "isSlot": false, + "src": "4013:14:11", + "valueSize": 1 + }, + { + "declaration": 2421, + "isOffset": false, + "isSlot": false, + "src": "4221:14:11", + "valueSize": 1 + }, + { + "declaration": 2428, + "isOffset": false, + "isSlot": false, + "src": "4285:8:11", + "valueSize": 1 + }, + { + "declaration": 2423, + "isOffset": false, + "isSlot": false, + "src": "4324:4:11", + "valueSize": 1 + }, + { + "declaration": 2425, + "isOffset": false, + "isSlot": false, + "src": "4305:5:11", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 2450, + "nodeType": "InlineAssembly", + "src": "3754:585:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2451, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "4352:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4372:1:11", + "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": 2453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4364:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4364:7:11", + "typeDescriptions": {} + } + }, + "id": 2455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4364:10:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4352:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2463, + "nodeType": "IfStatement", + "src": "4348:85:11", + "trueBody": { + "id": 2462, + "nodeType": "Block", + "src": "4376:57:11", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2457, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "4397:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 2459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4404:16:11", + "memberName": "FailedDeployment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3966, + "src": "4397:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4397:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2461, + "nodeType": "RevertStatement", + "src": "4390:32:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "3045:415:11", + "text": " @dev Same as {xref-Clones-cloneDeterministic-address-bytes32-}[cloneDeterministic], but with\n a `value` parameter to send native currency to the new contract.\n NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n to always have enough balance for new deployments. Consider exposing this function under a payable method." + }, + "id": 2465, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneDeterministic", + "nameLocation": "3474:18:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "3510:14:11", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "3502:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3502:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "salt", + "nameLocation": "3542:4:11", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "3534:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2422, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3534:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2425, + "mutability": "mutable", + "name": "value", + "nameLocation": "3564:5:11", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "3556:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3556:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3492:83:11" + }, + "returnParameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "mutability": "mutable", + "name": "instance", + "nameLocation": "3602:8:11", + "nodeType": "VariableDeclaration", + "scope": 2465, + "src": "3594:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3594:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3593:18:11" + }, + "scope": 2732, + "src": "3465:974:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "4714:537:11", + "statements": [ + { + "AST": { + "nativeSrc": "4749:496:11", + "nodeType": "YulBlock", + "src": "4749:496:11", + "statements": [ + { + "nativeSrc": "4763:22:11", + "nodeType": "YulVariableDeclaration", + "src": "4763:22:11", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4780:4:11", + "nodeType": "YulLiteral", + "src": "4780:4:11", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4774:5:11", + "nodeType": "YulIdentifier", + "src": "4774:5:11" + }, + "nativeSrc": "4774:11:11", + "nodeType": "YulFunctionCall", + "src": "4774:11:11" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "4767:3:11", + "nodeType": "YulTypedName", + "src": "4767:3:11", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4809:3:11", + "nodeType": "YulIdentifier", + "src": "4809:3:11" + }, + { + "kind": "number", + "nativeSrc": "4814:4:11", + "nodeType": "YulLiteral", + "src": "4814:4:11", + "type": "", + "value": "0x38" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4805:3:11", + "nodeType": "YulIdentifier", + "src": "4805:3:11" + }, + "nativeSrc": "4805:14:11", + "nodeType": "YulFunctionCall", + "src": "4805:14:11" + }, + { + "name": "deployer", + "nativeSrc": "4821:8:11", + "nodeType": "YulIdentifier", + "src": "4821:8:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4798:6:11", + "nodeType": "YulIdentifier", + "src": "4798:6:11" + }, + "nativeSrc": "4798:32:11", + "nodeType": "YulFunctionCall", + "src": "4798:32:11" + }, + "nativeSrc": "4798:32:11", + "nodeType": "YulExpressionStatement", + "src": "4798:32:11" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4854:3:11", + "nodeType": "YulIdentifier", + "src": "4854:3:11" + }, + { + "kind": "number", + "nativeSrc": "4859:4:11", + "nodeType": "YulLiteral", + "src": "4859:4:11", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4850:3:11", + "nodeType": "YulIdentifier", + "src": "4850:3:11" + }, + "nativeSrc": "4850:14:11", + "nodeType": "YulFunctionCall", + "src": "4850:14:11" + }, + { + "kind": "number", + "nativeSrc": "4866:34:11", + "nodeType": "YulLiteral", + "src": "4866:34:11", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf3ff" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4843:6:11", + "nodeType": "YulIdentifier", + "src": "4843:6:11" + }, + "nativeSrc": "4843:58:11", + "nodeType": "YulFunctionCall", + "src": "4843:58:11" + }, + "nativeSrc": "4843:58:11", + "nodeType": "YulExpressionStatement", + "src": "4843:58:11" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4925:3:11", + "nodeType": "YulIdentifier", + "src": "4925:3:11" + }, + { + "kind": "number", + "nativeSrc": "4930:4:11", + "nodeType": "YulLiteral", + "src": "4930:4:11", + "type": "", + "value": "0x14" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4921:3:11", + "nodeType": "YulIdentifier", + "src": "4921:3:11" + }, + "nativeSrc": "4921:14:11", + "nodeType": "YulFunctionCall", + "src": "4921:14:11" + }, + { + "name": "implementation", + "nativeSrc": "4937:14:11", + "nodeType": "YulIdentifier", + "src": "4937:14:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4914:6:11", + "nodeType": "YulIdentifier", + "src": "4914:6:11" + }, + "nativeSrc": "4914:38:11", + "nodeType": "YulFunctionCall", + "src": "4914:38:11" + }, + "nativeSrc": "4914:38:11", + "nodeType": "YulExpressionStatement", + "src": "4914:38:11" + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4972:3:11", + "nodeType": "YulIdentifier", + "src": "4972:3:11" + }, + { + "kind": "number", + "nativeSrc": "4977:42:11", + "nodeType": "YulLiteral", + "src": "4977:42:11", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4965:6:11", + "nodeType": "YulIdentifier", + "src": "4965:6:11" + }, + "nativeSrc": "4965:55:11", + "nodeType": "YulFunctionCall", + "src": "4965:55:11" + }, + "nativeSrc": "4965:55:11", + "nodeType": "YulExpressionStatement", + "src": "4965:55:11" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "5044:3:11", + "nodeType": "YulIdentifier", + "src": "5044:3:11" + }, + { + "kind": "number", + "nativeSrc": "5049:4:11", + "nodeType": "YulLiteral", + "src": "5049:4:11", + "type": "", + "value": "0x58" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5040:3:11", + "nodeType": "YulIdentifier", + "src": "5040:3:11" + }, + "nativeSrc": "5040:14:11", + "nodeType": "YulFunctionCall", + "src": "5040:14:11" + }, + { + "name": "salt", + "nativeSrc": "5056:4:11", + "nodeType": "YulIdentifier", + "src": "5056:4:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5033:6:11", + "nodeType": "YulIdentifier", + "src": "5033:6:11" + }, + "nativeSrc": "5033:28:11", + "nodeType": "YulFunctionCall", + "src": "5033:28:11" + }, + "nativeSrc": "5033:28:11", + "nodeType": "YulExpressionStatement", + "src": "5033:28:11" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "5085:3:11", + "nodeType": "YulIdentifier", + "src": "5085:3:11" + }, + { + "kind": "number", + "nativeSrc": "5090:4:11", + "nodeType": "YulLiteral", + "src": "5090:4:11", + "type": "", + "value": "0x78" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5081:3:11", + "nodeType": "YulIdentifier", + "src": "5081:3:11" + }, + "nativeSrc": "5081:14:11", + "nodeType": "YulFunctionCall", + "src": "5081:14:11" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "5111:3:11", + "nodeType": "YulIdentifier", + "src": "5111:3:11" + }, + { + "kind": "number", + "nativeSrc": "5116:4:11", + "nodeType": "YulLiteral", + "src": "5116:4:11", + "type": "", + "value": "0x0c" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5107:3:11", + "nodeType": "YulIdentifier", + "src": "5107:3:11" + }, + "nativeSrc": "5107:14:11", + "nodeType": "YulFunctionCall", + "src": "5107:14:11" + }, + { + "kind": "number", + "nativeSrc": "5123:4:11", + "nodeType": "YulLiteral", + "src": "5123:4:11", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "5097:9:11", + "nodeType": "YulIdentifier", + "src": "5097:9:11" + }, + "nativeSrc": "5097:31:11", + "nodeType": "YulFunctionCall", + "src": "5097:31:11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5074:6:11", + "nodeType": "YulIdentifier", + "src": "5074:6:11" + }, + "nativeSrc": "5074:55:11", + "nodeType": "YulFunctionCall", + "src": "5074:55:11" + }, + "nativeSrc": "5074:55:11", + "nodeType": "YulExpressionStatement", + "src": "5074:55:11" + }, + { + "nativeSrc": "5142:93:11", + "nodeType": "YulAssignment", + "src": "5142:93:11", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "5173:3:11", + "nodeType": "YulIdentifier", + "src": "5173:3:11" + }, + { + "kind": "number", + "nativeSrc": "5178:4:11", + "nodeType": "YulLiteral", + "src": "5178:4:11", + "type": "", + "value": "0x43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5169:3:11", + "nodeType": "YulIdentifier", + "src": "5169:3:11" + }, + "nativeSrc": "5169:14:11", + "nodeType": "YulFunctionCall", + "src": "5169:14:11" + }, + { + "kind": "number", + "nativeSrc": "5185:4:11", + "nodeType": "YulLiteral", + "src": "5185:4:11", + "type": "", + "value": "0x55" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "5159:9:11", + "nodeType": "YulIdentifier", + "src": "5159:9:11" + }, + "nativeSrc": "5159:31:11", + "nodeType": "YulFunctionCall", + "src": "5159:31:11" + }, + { + "kind": "number", + "nativeSrc": "5192:42:11", + "nodeType": "YulLiteral", + "src": "5192:42:11", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5155:3:11", + "nodeType": "YulIdentifier", + "src": "5155:3:11" + }, + "nativeSrc": "5155:80:11", + "nodeType": "YulFunctionCall", + "src": "5155:80:11" + }, + "variableNames": [ + { + "name": "predicted", + "nativeSrc": "5142:9:11", + "nodeType": "YulIdentifier", + "src": "5142:9:11" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2472, + "isOffset": false, + "isSlot": false, + "src": "4821:8:11", + "valueSize": 1 + }, + { + "declaration": 2468, + "isOffset": false, + "isSlot": false, + "src": "4937:14:11", + "valueSize": 1 + }, + { + "declaration": 2475, + "isOffset": false, + "isSlot": false, + "src": "5142:9:11", + "valueSize": 1 + }, + { + "declaration": 2470, + "isOffset": false, + "isSlot": false, + "src": "5056:4:11", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 2477, + "nodeType": "InlineAssembly", + "src": "4724:521:11" + } + ] + }, + "documentation": { + "id": 2466, + "nodeType": "StructuredDocumentation", + "src": "4445:99:11", + "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "predictDeterministicAddress", + "nameLocation": "4558:27:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2468, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "4603:14:11", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "4595:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4595:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2470, + "mutability": "mutable", + "name": "salt", + "nameLocation": "4635:4:11", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "4627:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2469, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4627:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2472, + "mutability": "mutable", + "name": "deployer", + "nameLocation": "4657:8:11", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "4649:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2471, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4649:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4585:86:11" + }, + "returnParameters": { + "id": 2476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2475, + "mutability": "mutable", + "name": "predicted", + "nameLocation": "4703:9:11", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "4695:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4695:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4694:19:11" + }, + "scope": 2732, + "src": "4549:702:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "5500:88:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2490, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "5545:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2491, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "5561:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 2494, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5575:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5567:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5567:7:11", + "typeDescriptions": {} + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5567:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2489, + "name": "predictDeterministicAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2479, + 2499 + ], + "referencedDeclaration": 2479, + "src": "5517:27:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (address,bytes32,address) pure returns (address)" + } + }, + "id": 2496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5517:64:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2488, + "id": 2497, + "nodeType": "Return", + "src": "5510:71:11" + } + ] + }, + "documentation": { + "id": 2480, + "nodeType": "StructuredDocumentation", + "src": "5257:99:11", + "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}." + }, + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "predictDeterministicAddress", + "nameLocation": "5370:27:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2482, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "5415:14:11", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "5407:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5407:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5447:4:11", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "5439:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2483, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5439:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5397:60:11" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "predicted", + "nameLocation": "5489:9:11", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "5481:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5481:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5480:19:11" + }, + "scope": 2732, + "src": "5361:227:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "6094:71:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2510, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "6134:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2511, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "6150:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6156:1:11", + "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": 2509, + "name": "cloneWithImmutableArgs", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2516, + 2570 + ], + "referencedDeclaration": 2570, + "src": "6111:22:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", + "typeString": "function (address,bytes memory,uint256) returns (address)" + } + }, + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6111:47:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2508, + "id": 2514, + "nodeType": "Return", + "src": "6104:54:11" + } + ] + }, + "documentation": { + "id": 2500, + "nodeType": "StructuredDocumentation", + "src": "5594:384:11", + "text": " @dev Deploys and returns the address of a clone that mimics the behavior of `implementation` with custom\n immutable arguments. These are provided through `args` and cannot be changed after deployment. To\n access the arguments within the implementation, use {fetchCloneArgs}.\n This function uses the create opcode, which should never revert." + }, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneWithImmutableArgs", + "nameLocation": "5992:22:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "6023:14:11", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "6015:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6015:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2504, + "mutability": "mutable", + "name": "args", + "nameLocation": "6052:4:11", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "6039:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2503, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6039:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6014:43:11" + }, + "returnParameters": { + "id": 2508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2507, + "mutability": "mutable", + "name": "instance", + "nameLocation": "6084:8:11", + "nodeType": "VariableDeclaration", + "scope": 2516, + "src": "6076:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6076:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6075:18:11" + }, + "scope": 2732, + "src": "5983:182:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2569, + "nodeType": "Block", + "src": "6753:437:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2530, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6775:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6767:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6767:7:11", + "typeDescriptions": {} + } + }, + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6767:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6781:7:11", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "6767:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2533, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "6791:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6767:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2547, + "nodeType": "IfStatement", + "src": "6763:123:11", + "trueBody": { + "id": 2546, + "nodeType": "Block", + "src": "6798:88:11", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 2540, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6854:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6846:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6846:7:11", + "typeDescriptions": {} + } + }, + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6846:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6860:7:11", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "6846:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2543, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "6869:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2535, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "6819:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 2537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6826:19:11", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 3960, + "src": "6819:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6819:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2545, + "nodeType": "RevertStatement", + "src": "6812:63:11" + } + ] + } + }, + { + "assignments": [ + 2549 + ], + "declarations": [ + { + "constant": false, + "id": 2549, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "6908:8:11", + "nodeType": "VariableDeclaration", + "scope": 2569, + "src": "6895:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2548, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6895:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2554, + "initialValue": { + "arguments": [ + { + "id": 2551, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2519, + "src": "6947:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2552, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2521, + "src": "6963:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2550, + "name": "_cloneCodeWithImmutableArgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2731, + "src": "6919:27:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory) pure returns (bytes memory)" + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6919:49:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6895:73:11" + }, + { + "AST": { + "nativeSrc": "7003:87:11", + "nodeType": "YulBlock", + "src": "7003:87:11", + "statements": [ + { + "nativeSrc": "7017:63:11", + "nodeType": "YulAssignment", + "src": "7017:63:11", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7036:5:11", + "nodeType": "YulIdentifier", + "src": "7036:5:11" + }, + { + "arguments": [ + { + "name": "bytecode", + "nativeSrc": "7047:8:11", + "nodeType": "YulIdentifier", + "src": "7047:8:11" + }, + { + "kind": "number", + "nativeSrc": "7057:4:11", + "nodeType": "YulLiteral", + "src": "7057:4:11", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7043:3:11", + "nodeType": "YulIdentifier", + "src": "7043:3:11" + }, + "nativeSrc": "7043:19:11", + "nodeType": "YulFunctionCall", + "src": "7043:19:11" + }, + { + "arguments": [ + { + "name": "bytecode", + "nativeSrc": "7070:8:11", + "nodeType": "YulIdentifier", + "src": "7070:8:11" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7064:5:11", + "nodeType": "YulIdentifier", + "src": "7064:5:11" + }, + "nativeSrc": "7064:15:11", + "nodeType": "YulFunctionCall", + "src": "7064:15:11" + } + ], + "functionName": { + "name": "create", + "nativeSrc": "7029:6:11", + "nodeType": "YulIdentifier", + "src": "7029:6:11" + }, + "nativeSrc": "7029:51:11", + "nodeType": "YulFunctionCall", + "src": "7029:51:11" + }, + "variableNames": [ + { + "name": "instance", + "nativeSrc": "7017:8:11", + "nodeType": "YulIdentifier", + "src": "7017:8:11" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2549, + "isOffset": false, + "isSlot": false, + "src": "7047:8:11", + "valueSize": 1 + }, + { + "declaration": 2549, + "isOffset": false, + "isSlot": false, + "src": "7070:8:11", + "valueSize": 1 + }, + { + "declaration": 2526, + "isOffset": false, + "isSlot": false, + "src": "7017:8:11", + "valueSize": 1 + }, + { + "declaration": 2523, + "isOffset": false, + "isSlot": false, + "src": "7036:5:11", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 2555, + "nodeType": "InlineAssembly", + "src": "6978:112:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2556, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2526, + "src": "7103:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7123:1:11", + "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": 2558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7115:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7115:7:11", + "typeDescriptions": {} + } + }, + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7115:10:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7103:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2568, + "nodeType": "IfStatement", + "src": "7099:85:11", + "trueBody": { + "id": 2567, + "nodeType": "Block", + "src": "7127:57:11", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2562, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "7148:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 2564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7155:16:11", + "memberName": "FailedDeployment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3966, + "src": "7148:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7148:25:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2566, + "nodeType": "RevertStatement", + "src": "7141:32:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 2517, + "nodeType": "StructuredDocumentation", + "src": "6171:421:11", + "text": " @dev Same as {xref-Clones-cloneWithImmutableArgs-address-bytes-}[cloneWithImmutableArgs], but with a `value`\n parameter to send native currency to the new contract.\n NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n to always have enough balance for new deployments. Consider exposing this function under a payable method." + }, + "id": 2570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneWithImmutableArgs", + "nameLocation": "6606:22:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2519, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "6646:14:11", + "nodeType": "VariableDeclaration", + "scope": 2570, + "src": "6638:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6638:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "args", + "nameLocation": "6683:4:11", + "nodeType": "VariableDeclaration", + "scope": 2570, + "src": "6670:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6670:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "value", + "nameLocation": "6705:5:11", + "nodeType": "VariableDeclaration", + "scope": 2570, + "src": "6697:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6697:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6628:88:11" + }, + "returnParameters": { + "id": 2527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2526, + "mutability": "mutable", + "name": "instance", + "nameLocation": "6743:8:11", + "nodeType": "VariableDeclaration", + "scope": 2570, + "src": "6735:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2525, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6735:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6734:18:11" + }, + "scope": 2732, + "src": "6597:593:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2589, + "nodeType": "Block", + "src": "7934:90:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2583, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2573, + "src": "7987:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2584, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2575, + "src": "8003:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2585, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2577, + "src": "8009:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "hexValue": "30", + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8015:1:11", + "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_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2582, + "name": "cloneDeterministicWithImmutableArgs", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2590, + 2619 + ], + "referencedDeclaration": 2619, + "src": "7951:35:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes32_$_t_uint256_$returns$_t_address_$", + "typeString": "function (address,bytes memory,bytes32,uint256) returns (address)" + } + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7951:66:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2581, + "id": 2588, + "nodeType": "Return", + "src": "7944:73:11" + } + ] + }, + "documentation": { + "id": 2571, + "nodeType": "StructuredDocumentation", + "src": "7196:565:11", + "text": " @dev Deploys and returns the address of a clone that mimics the behavior of `implementation` with custom\n immutable arguments. These are provided through `args` and cannot be changed after deployment. To\n access the arguments within the implementation, use {fetchCloneArgs}.\n This function uses the create2 opcode and a `salt` to deterministically deploy the clone. Using the same\n `implementation`, `args` and `salt` multiple times will revert, since the clones cannot be deployed twice\n at the same address." + }, + "id": 2590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneDeterministicWithImmutableArgs", + "nameLocation": "7775:35:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2573, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "7828:14:11", + "nodeType": "VariableDeclaration", + "scope": 2590, + "src": "7820:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7820:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2575, + "mutability": "mutable", + "name": "args", + "nameLocation": "7865:4:11", + "nodeType": "VariableDeclaration", + "scope": 2590, + "src": "7852:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2574, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7852:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2577, + "mutability": "mutable", + "name": "salt", + "nameLocation": "7887:4:11", + "nodeType": "VariableDeclaration", + "scope": 2590, + "src": "7879:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7879:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7810:87:11" + }, + "returnParameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "instance", + "nameLocation": "7924:8:11", + "nodeType": "VariableDeclaration", + "scope": 2590, + "src": "7916:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7916:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7915:18:11" + }, + "scope": 2732, + "src": "7766:258:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2618, + "nodeType": "Block", + "src": "8681:144:11", + "statements": [ + { + "assignments": [ + 2605 + ], + "declarations": [ + { + "constant": false, + "id": 2605, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "8704:8:11", + "nodeType": "VariableDeclaration", + "scope": 2618, + "src": "8691:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2604, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8691:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2610, + "initialValue": { + "arguments": [ + { + "id": 2607, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2593, + "src": "8743:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2608, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2595, + "src": "8759:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2606, + "name": "_cloneCodeWithImmutableArgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2731, + "src": "8715:27:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory) pure returns (bytes memory)" + } + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8715:49:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8691:73:11" + }, + { + "expression": { + "arguments": [ + { + "id": 2613, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "8796:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2614, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2597, + "src": "8803:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2615, + "name": "bytecode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2605, + "src": "8809:8:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2611, + "name": "Create2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "8781:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Create2_$3950_$", + "typeString": "type(library Create2)" + } + }, + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8789:6:11", + "memberName": "deploy", + "nodeType": "MemberAccess", + "referencedDeclaration": 3915, + "src": "8781:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (uint256,bytes32,bytes memory) returns (address)" + } + }, + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8781:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2603, + "id": 2617, + "nodeType": "Return", + "src": "8774:44:11" + } + ] + }, + "documentation": { + "id": 2591, + "nodeType": "StructuredDocumentation", + "src": "8030:455:11", + "text": " @dev Same as {xref-Clones-cloneDeterministicWithImmutableArgs-address-bytes-bytes32-}[cloneDeterministicWithImmutableArgs],\n but with a `value` parameter to send native currency to the new contract.\n NOTE: Using a non-zero value at creation will require the contract using this function (e.g. a factory)\n to always have enough balance for new deployments. Consider exposing this function under a payable method." + }, + "id": 2619, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cloneDeterministicWithImmutableArgs", + "nameLocation": "8499:35:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2593, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "8552:14:11", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "8544:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8544:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2595, + "mutability": "mutable", + "name": "args", + "nameLocation": "8589:4:11", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "8576:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2594, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8576:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2597, + "mutability": "mutable", + "name": "salt", + "nameLocation": "8611:4:11", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "8603:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2596, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8603:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2599, + "mutability": "mutable", + "name": "value", + "nameLocation": "8633:5:11", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "8625:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8625:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8534:110:11" + }, + "returnParameters": { + "id": 2603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "instance", + "nameLocation": "8671:8:11", + "nodeType": "VariableDeclaration", + "scope": 2619, + "src": "8663:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2601, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8663:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8662:18:11" + }, + "scope": 2732, + "src": "8490:335:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2649, + "nodeType": "Block", + "src": "9161:166:11", + "statements": [ + { + "assignments": [ + 2634 + ], + "declarations": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "9184:8:11", + "nodeType": "VariableDeclaration", + "scope": 2649, + "src": "9171:21:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2633, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9171:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2639, + "initialValue": { + "arguments": [ + { + "id": 2636, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "9223:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2637, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2624, + "src": "9239:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2635, + "name": "_cloneCodeWithImmutableArgs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2731, + "src": "9195:27:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory) pure returns (bytes memory)" + } + }, + "id": 2638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9195:49:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9171:73:11" + }, + { + "expression": { + "arguments": [ + { + "id": 2642, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2626, + "src": "9284:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 2644, + "name": "bytecode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "9300:8:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2643, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "9290:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9290:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2646, + "name": "deployer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "9311:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 2640, + "name": "Create2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "9261:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Create2_$3950_$", + "typeString": "type(library Create2)" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9269:14:11", + "memberName": "computeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 3949, + "src": "9261:22:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (bytes32,bytes32,address) pure returns (address)" + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9261:59:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2632, + "id": 2648, + "nodeType": "Return", + "src": "9254:66:11" + } + ] + }, + "documentation": { + "id": 2620, + "nodeType": "StructuredDocumentation", + "src": "8831:116:11", + "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministicWithImmutableArgs}." + }, + "id": 2650, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "predictDeterministicAddressWithImmutableArgs", + "nameLocation": "8961:44:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "9023:14:11", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "9015:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9015:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2624, + "mutability": "mutable", + "name": "args", + "nameLocation": "9060:4:11", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "9047:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2623, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9047:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2626, + "mutability": "mutable", + "name": "salt", + "nameLocation": "9082:4:11", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "9074:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2625, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9074:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2628, + "mutability": "mutable", + "name": "deployer", + "nameLocation": "9104:8:11", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "9096:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9096:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9005:113:11" + }, + "returnParameters": { + "id": 2632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2631, + "mutability": "mutable", + "name": "predicted", + "nameLocation": "9150:9:11", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "9142:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9142:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9141:19:11" + }, + "scope": 2732, + "src": "8952:375:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2672, + "nodeType": "Block", + "src": "9637:111:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2663, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "9699:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2664, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2655, + "src": "9715:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2665, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2657, + "src": "9721:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 2668, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9735:4:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Clones_$2732", + "typeString": "library Clones" + } + ], + "id": 2667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9727:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9727:7:11", + "typeDescriptions": {} + } + }, + "id": 2669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9727:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2662, + "name": "predictDeterministicAddressWithImmutableArgs", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2650, + 2673 + ], + "referencedDeclaration": 2650, + "src": "9654:44:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (address,bytes memory,bytes32,address) pure returns (address)" + } + }, + "id": 2670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9654:87:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2661, + "id": 2671, + "nodeType": "Return", + "src": "9647:94:11" + } + ] + }, + "documentation": { + "id": 2651, + "nodeType": "StructuredDocumentation", + "src": "9333:116:11", + "text": " @dev Computes the address of a clone deployed using {Clones-cloneDeterministicWithImmutableArgs}." + }, + "id": 2673, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "predictDeterministicAddressWithImmutableArgs", + "nameLocation": "9463:44:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2653, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "9525:14:11", + "nodeType": "VariableDeclaration", + "scope": 2673, + "src": "9517:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9517:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2655, + "mutability": "mutable", + "name": "args", + "nameLocation": "9562:4:11", + "nodeType": "VariableDeclaration", + "scope": 2673, + "src": "9549:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2654, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9549:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2657, + "mutability": "mutable", + "name": "salt", + "nameLocation": "9584:4:11", + "nodeType": "VariableDeclaration", + "scope": 2673, + "src": "9576:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2656, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9576:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "9507:87:11" + }, + "returnParameters": { + "id": 2661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2660, + "mutability": "mutable", + "name": "predicted", + "nameLocation": "9626:9:11", + "nodeType": "VariableDeclaration", + "scope": 2673, + "src": "9618:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9618:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9617:19:11" + }, + "scope": 2732, + "src": "9454:294:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2695, + "nodeType": "Block", + "src": "10441:246:11", + "statements": [ + { + "assignments": [ + 2682 + ], + "declarations": [ + { + "constant": false, + "id": 2682, + "mutability": "mutable", + "name": "result", + "nameLocation": "10464:6:11", + "nodeType": "VariableDeclaration", + "scope": 2695, + "src": "10451:19:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2681, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10451:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2691, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2685, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2676, + "src": "10483:8:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10492:4:11", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "10483:13:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10497:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10483:20:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3435", + "id": 2688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10506:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_45_by_1", + "typeString": "int_const 45" + }, + "value": "45" + }, + "src": "10483:25:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10473:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2683, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10477:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10473:36:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10451:58:11" + }, + { + "AST": { + "nativeSrc": "10577:81:11", + "nodeType": "YulBlock", + "src": "10577:81:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "instance", + "nativeSrc": "10603:8:11", + "nodeType": "YulIdentifier", + "src": "10603:8:11" + }, + { + "arguments": [ + { + "name": "result", + "nativeSrc": "10617:6:11", + "nodeType": "YulIdentifier", + "src": "10617:6:11" + }, + { + "kind": "number", + "nativeSrc": "10625:2:11", + "nodeType": "YulLiteral", + "src": "10625:2:11", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10613:3:11", + "nodeType": "YulIdentifier", + "src": "10613:3:11" + }, + "nativeSrc": "10613:15:11", + "nodeType": "YulFunctionCall", + "src": "10613:15:11" + }, + { + "kind": "number", + "nativeSrc": "10630:2:11", + "nodeType": "YulLiteral", + "src": "10630:2:11", + "type": "", + "value": "45" + }, + { + "arguments": [ + { + "name": "result", + "nativeSrc": "10640:6:11", + "nodeType": "YulIdentifier", + "src": "10640:6:11" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10634:5:11", + "nodeType": "YulIdentifier", + "src": "10634:5:11" + }, + "nativeSrc": "10634:13:11", + "nodeType": "YulFunctionCall", + "src": "10634:13:11" + } + ], + "functionName": { + "name": "extcodecopy", + "nativeSrc": "10591:11:11", + "nodeType": "YulIdentifier", + "src": "10591:11:11" + }, + "nativeSrc": "10591:57:11", + "nodeType": "YulFunctionCall", + "src": "10591:57:11" + }, + "nativeSrc": "10591:57:11", + "nodeType": "YulExpressionStatement", + "src": "10591:57:11" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2676, + "isOffset": false, + "isSlot": false, + "src": "10603:8:11", + "valueSize": 1 + }, + { + "declaration": 2682, + "isOffset": false, + "isSlot": false, + "src": "10617:6:11", + "valueSize": 1 + }, + { + "declaration": 2682, + "isOffset": false, + "isSlot": false, + "src": "10640:6:11", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 2692, + "nodeType": "InlineAssembly", + "src": "10552:106:11" + }, + { + "expression": { + "id": 2693, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2682, + "src": "10674:6:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2680, + "id": 2694, + "nodeType": "Return", + "src": "10667:13:11" + } + ] + }, + "documentation": { + "id": 2674, + "nodeType": "StructuredDocumentation", + "src": "9754:603:11", + "text": " @dev Get the immutable args attached to a clone.\n - If `instance` is a clone that was deployed using `clone` or `cloneDeterministic`, this\n function will return an empty array.\n - If `instance` is a clone that was deployed using `cloneWithImmutableArgs` or\n `cloneDeterministicWithImmutableArgs`, this function will return the args array used at\n creation.\n - If `instance` is NOT a clone deployed using this library, the behavior is undefined. This\n function should only be used to check addresses that are known to be clones." + }, + "id": 2696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fetchCloneArgs", + "nameLocation": "10371:14:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2676, + "mutability": "mutable", + "name": "instance", + "nameLocation": "10394:8:11", + "nodeType": "VariableDeclaration", + "scope": 2696, + "src": "10386:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2675, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10386:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10385:18:11" + }, + "returnParameters": { + "id": 2680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2679, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2696, + "src": "10427:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2678, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10427:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "10426:14:11" + }, + "scope": 2732, + "src": "10362:325:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2730, + "nodeType": "Block", + "src": "11476:362:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2706, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2701, + "src": "11490:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11495:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11490:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3234353331", + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11504:5:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_24531_by_1", + "typeString": "int_const 24531" + }, + "value": "24531" + }, + "src": "11490:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2713, + "nodeType": "IfStatement", + "src": "11486:55:11", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2710, + "name": "CloneArgumentsTooLong", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2342, + "src": "11518:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11518:23:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2712, + "nodeType": "RevertStatement", + "src": "11511:30:11" + } + }, + { + "expression": { + "arguments": [ + { + "hexValue": "61", + "id": 2716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11604:7:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb", + "typeString": "literal_string \"a\"" + }, + "value": "a" + }, + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2719, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2701, + "src": "11636:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11641:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11636:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3435", + "id": 2721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11650:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_45_by_1", + "typeString": "int_const 45" + }, + "value": "45" + }, + "src": "11636:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11629:6:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 2717, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "11629:6:11", + "typeDescriptions": {} + } + }, + "id": 2723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11629:24:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "hexValue": "3d81600a3d39f3363d3d373d3d3d363d73", + "id": 2724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11671:39:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d24ab45bb33e00f98da9dec50b1e1620d91f81025faf3be3a44e9d69371096d4", + "typeString": "literal_string hex\"3d81600a3d39f3363d3d373d3d3d363d73\"" + } + }, + { + "id": 2725, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2699, + "src": "11728:14:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "5af43d82803e903d91602b57fd5bf3", + "id": 2726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11760:35:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_11a195f66c9175f46895bae2006d40848a680c7068b9fc4af248ff9a54a47e45", + "typeString": "literal_string hex\"5af43d82803e903d91602b57fd5bf3\"" + } + }, + { + "id": 2727, + "name": "args", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2701, + "src": "11813:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb", + "typeString": "literal_string \"a\"" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_d24ab45bb33e00f98da9dec50b1e1620d91f81025faf3be3a44e9d69371096d4", + "typeString": "literal_string hex\"3d81600a3d39f3363d3d373d3d3d363d73\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_11a195f66c9175f46895bae2006d40848a680c7068b9fc4af248ff9a54a47e45", + "typeString": "literal_string hex\"5af43d82803e903d91602b57fd5bf3\"" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2714, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "11570:3:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11574:12:11", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "11570:16:11", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11570:261:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2705, + "id": 2729, + "nodeType": "Return", + "src": "11551:280:11" + } + ] + }, + "documentation": { + "id": 2697, + "nodeType": "StructuredDocumentation", + "src": "10693:640:11", + "text": " @dev Helper that prepares the initcode of the proxy with immutable args.\n An assembly variant of this function requires copying the `args` array, which can be efficiently done using\n `mcopy`. Unfortunately, that opcode is not available before cancun. A pure solidity implementation using\n abi.encodePacked is more expensive but also more portable and easier to review.\n NOTE: https://eips.ethereum.org/EIPS/eip-170[EIP-170] limits the length of the contract code to 24576 bytes.\n With the proxy code taking 45 bytes, that limits the length of the immutable args to 24531 bytes." + }, + "id": 2731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_cloneCodeWithImmutableArgs", + "nameLocation": "11347:27:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2699, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "11392:14:11", + "nodeType": "VariableDeclaration", + "scope": 2731, + "src": "11384:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11384:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2701, + "mutability": "mutable", + "name": "args", + "nameLocation": "11429:4:11", + "nodeType": "VariableDeclaration", + "scope": 2731, + "src": "11416:17:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2700, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11416:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "11374:65:11" + }, + "returnParameters": { + "id": 2705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2704, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2731, + "src": "11462:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2703, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11462:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "11461:14:11" + }, + "scope": 2732, + "src": "11338:500:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 2733, + "src": "817:11023:11", + "usedErrors": [ + 2342 + ], + "usedEvents": [] + } + ], + "src": "100:11741:11" + }, + "id": 11 + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", + "exportedSymbols": { + "ERC1967Proxy": [ + 2770 + ], + "ERC1967Utils": [ + 3064 + ], + "Proxy": [ + 3100 + ] + }, + "id": 2771, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2734, + "literals": [ + "solidity", + "^", + "0.8", + ".22" + ], + "nodeType": "PragmaDirective", + "src": "114:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/Proxy.sol", + "file": "../Proxy.sol", + "id": 2736, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2771, + "sourceUnit": 3101, + "src": "140:35:12", + "symbolAliases": [ + { + "foreign": { + "id": 2735, + "name": "Proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3100, + "src": "148:5:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", + "file": "./ERC1967Utils.sol", + "id": 2738, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2771, + "sourceUnit": 3065, + "src": "176:48:12", + "symbolAliases": [ + { + "foreign": { + "id": 2737, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "184:12:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2740, + "name": "Proxy", + "nameLocations": [ + "625:5:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3100, + "src": "625:5:12" + }, + "id": 2741, + "nodeType": "InheritanceSpecifier", + "src": "625:5:12" + } + ], + "canonicalName": "ERC1967Proxy", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 2739, + "nodeType": "StructuredDocumentation", + "src": "226:373:12", + "text": " @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy." + }, + "fullyImplemented": true, + "id": 2770, + "linearizedBaseContracts": [ + 2770, + 3100 + ], + "name": "ERC1967Proxy", + "nameLocation": "609:12:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2756, + "nodeType": "Block", + "src": "1145:69:12", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2752, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "1185:14:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2753, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "1201:5:12", + "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": 2749, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "1155:12:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$3064_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1168:16:12", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 2879, + "src": "1155:29:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1155:52:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2755, + "nodeType": "ExpressionStatement", + "src": "1155:52:12" + } + ] + }, + "documentation": { + "id": 2742, + "nodeType": "StructuredDocumentation", + "src": "637:439:12", + "text": " @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero." + }, + "id": 2757, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2744, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1101:14:12", + "nodeType": "VariableDeclaration", + "scope": 2757, + "src": "1093:22:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1093:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "_data", + "nameLocation": "1130:5:12", + "nodeType": "VariableDeclaration", + "scope": 2757, + "src": "1117:18:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2745, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1117:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1092:44:12" + }, + "returnParameters": { + "id": 2748, + "nodeType": "ParameterList", + "parameters": [], + "src": "1145:0:12" + }, + "scope": 2770, + "src": "1081:133:12", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 3081 + ], + "body": { + "id": 2768, + "nodeType": "Block", + "src": "1659:56:12", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2764, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "1676:12:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$3064_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1689:17:12", + "memberName": "getImplementation", + "nodeType": "MemberAccess", + "referencedDeclaration": 2816, + "src": "1676:30:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1676:32:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2763, + "id": 2767, + "nodeType": "Return", + "src": "1669:39:12" + } + ] + }, + "documentation": { + "id": 2758, + "nodeType": "StructuredDocumentation", + "src": "1220:358:12", + "text": " @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`" + }, + "id": 2769, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_implementation", + "nameLocation": "1592:15:12", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2760, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1632:8:12" + }, + "parameters": { + "id": 2759, + "nodeType": "ParameterList", + "parameters": [], + "src": "1607:2:12" + }, + "returnParameters": { + "id": 2763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2762, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2769, + "src": "1650:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1650:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1649:9:12" + }, + "scope": 2770, + "src": "1583:132:12", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 2771, + "src": "600:1117:12", + "usedErrors": [ + 2790, + 2803, + 3571, + 3963 + ], + "usedEvents": [ + 2183 + ] + } + ], + "src": "114:1604:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", + "exportedSymbols": { + "Address": [ + 3821 + ], + "ERC1967Utils": [ + 3064 + ], + "IBeacon": [ + 3110 + ], + "IERC1967": [ + 2196 + ], + "StorageSlot": [ + 4148 + ] + }, + "id": 3065, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2772, + "literals": [ + "solidity", + "^", + "0.8", + ".22" + ], + "nodeType": "PragmaDirective", + "src": "114:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", + "file": "../beacon/IBeacon.sol", + "id": 2774, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3065, + "sourceUnit": 3111, + "src": "140:46:13", + "symbolAliases": [ + { + "foreign": { + "id": 2773, + "name": "IBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3110, + "src": "148:7:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", + "file": "../../interfaces/IERC1967.sol", + "id": 2776, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3065, + "sourceUnit": 2197, + "src": "187:55:13", + "symbolAliases": [ + { + "foreign": { + "id": 2775, + "name": "IERC1967", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "195:8:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "file": "../../utils/Address.sol", + "id": 2778, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3065, + "sourceUnit": 3822, + "src": "243:48:13", + "symbolAliases": [ + { + "foreign": { + "id": 2777, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "251:7:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "file": "../../utils/StorageSlot.sol", + "id": 2780, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3065, + "sourceUnit": 4149, + "src": "292:56:13", + "symbolAliases": [ + { + "foreign": { + "id": 2779, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "300:11:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC1967Utils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2781, + "nodeType": "StructuredDocumentation", + "src": "350:145:13", + "text": " @dev This library provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots." + }, + "fullyImplemented": true, + "id": 3064, + "linearizedBaseContracts": [ + 3064 + ], + "name": "ERC1967Utils", + "nameLocation": "504:12:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 2782, + "nodeType": "StructuredDocumentation", + "src": "523:170:13", + "text": " @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1." + }, + "id": 2785, + "mutability": "constant", + "name": "IMPLEMENTATION_SLOT", + "nameLocation": "789:19:13", + "nodeType": "VariableDeclaration", + "scope": 3064, + "src": "763:114:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2783, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "763:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263", + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "811:66:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1", + "typeString": "int_const 2444...(69 digits omitted)...5612" + }, + "value": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc" + }, + "visibility": "internal" + }, + { + "documentation": { + "id": 2786, + "nodeType": "StructuredDocumentation", + "src": "884:69:13", + "text": " @dev The `implementation` of the proxy is invalid." + }, + "errorSelector": "4c9c8ce3", + "id": 2790, + "name": "ERC1967InvalidImplementation", + "nameLocation": "964:28:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2788, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1001:14:13", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "993:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "993:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "992:24:13" + }, + "src": "958:59:13" + }, + { + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "1023:60:13", + "text": " @dev The `admin` of the proxy is invalid." + }, + "errorSelector": "62e77ba2", + "id": 2795, + "name": "ERC1967InvalidAdmin", + "nameLocation": "1094:19:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2793, + "mutability": "mutable", + "name": "admin", + "nameLocation": "1122:5:13", + "nodeType": "VariableDeclaration", + "scope": 2795, + "src": "1114:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1114:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1113:15:13" + }, + "src": "1088:41:13" + }, + { + "documentation": { + "id": 2796, + "nodeType": "StructuredDocumentation", + "src": "1135:61:13", + "text": " @dev The `beacon` of the proxy is invalid." + }, + "errorSelector": "64ced0ec", + "id": 2800, + "name": "ERC1967InvalidBeacon", + "nameLocation": "1207:20:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2799, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2798, + "mutability": "mutable", + "name": "beacon", + "nameLocation": "1236:6:13", + "nodeType": "VariableDeclaration", + "scope": 2800, + "src": "1228:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1228:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1227:16:13" + }, + "src": "1201:43:13" + }, + { + "documentation": { + "id": 2801, + "nodeType": "StructuredDocumentation", + "src": "1250:82:13", + "text": " @dev An upgrade function sees `msg.value > 0` that may be lost." + }, + "errorSelector": "b398979f", + "id": 2803, + "name": "ERC1967NonPayable", + "nameLocation": "1343:17:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2802, + "nodeType": "ParameterList", + "parameters": [], + "src": "1360:2:13" + }, + "src": "1337:26:13" + }, + { + "body": { + "id": 2815, + "nodeType": "Block", + "src": "1502:77:13", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 2811, + "name": "IMPLEMENTATION_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "1546:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2809, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "1519:11:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$4148_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1531:14:13", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 4059, + "src": "1519:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4030_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1519:47:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1567:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 4029, + "src": "1519:53:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2808, + "id": 2814, + "nodeType": "Return", + "src": "1512:60:13" + } + ] + }, + "documentation": { + "id": 2804, + "nodeType": "StructuredDocumentation", + "src": "1369:67:13", + "text": " @dev Returns the current implementation address." + }, + "id": 2816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getImplementation", + "nameLocation": "1450:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [], + "src": "1467:2:13" + }, + "returnParameters": { + "id": 2808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2807, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2816, + "src": "1493:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1493:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1492:9:13" + }, + "scope": 3064, + "src": "1441:138:13", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2842, + "nodeType": "Block", + "src": "1734:218:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2822, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2819, + "src": "1748:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1766:4:13", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "1748:22:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1771:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1748:29:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1781:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1748:34:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2832, + "nodeType": "IfStatement", + "src": "1744:119:13", + "trueBody": { + "id": 2831, + "nodeType": "Block", + "src": "1784:79:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2828, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2819, + "src": "1834:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2827, + "name": "ERC1967InvalidImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "1805:28:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1805:47:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2830, + "nodeType": "RevertStatement", + "src": "1798:54:13" + } + ] + } + }, + { + "expression": { + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [ + { + "id": 2836, + "name": "IMPLEMENTATION_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2785, + "src": "1899:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2833, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "1872:11:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$4148_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1884:14:13", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 4059, + "src": "1872:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4030_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1872:47:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "1920:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 4029, + "src": "1872:53:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2839, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2819, + "src": "1928:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1872:73:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2841, + "nodeType": "ExpressionStatement", + "src": "1872:73:13" + } + ] + }, + "documentation": { + "id": 2817, + "nodeType": "StructuredDocumentation", + "src": "1585:81:13", + "text": " @dev Stores a new address in the ERC-1967 implementation slot." + }, + "id": 2843, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setImplementation", + "nameLocation": "1680:18:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2819, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "1707:17:13", + "nodeType": "VariableDeclaration", + "scope": 2843, + "src": "1699:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2818, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1698:27:13" + }, + "returnParameters": { + "id": 2821, + "nodeType": "ParameterList", + "parameters": [], + "src": "1734:0:13" + }, + "scope": 3064, + "src": "1671:281:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2878, + "nodeType": "Block", + "src": "2345:263:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2852, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2846, + "src": "2374:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2851, + "name": "_setImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2843, + "src": "2355:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2355:37:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2854, + "nodeType": "ExpressionStatement", + "src": "2355:37:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 2858, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2846, + "src": "2425:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 2855, + "name": "IERC1967", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "2407:8:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1967_$2196_$", + "typeString": "type(contract IERC1967)" + } + }, + "id": 2857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2416:8:13", + "memberName": "Upgraded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2183, + "src": "2407:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2407:36:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2860, + "nodeType": "EmitStatement", + "src": "2402:41:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2861, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2848, + "src": "2458:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2463:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2458:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2472:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2458:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2876, + "nodeType": "Block", + "src": "2559:43:13", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_checkNonPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3063, + "src": "2573:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2573:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2875, + "nodeType": "ExpressionStatement", + "src": "2573:18:13" + } + ] + }, + "id": 2877, + "nodeType": "IfStatement", + "src": "2454:148:13", + "trueBody": { + "id": 2872, + "nodeType": "Block", + "src": "2475:78:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2868, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2846, + "src": "2518:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2869, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2848, + "src": "2537:4:13", + "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": 2865, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "2489:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$3821_$", + "typeString": "type(library Address)" + } + }, + "id": 2867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2497:20:13", + "memberName": "functionDelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3738, + "src": "2489:28:13", + "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": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2489:53:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "2489:53:13" + } + ] + } + } + ] + }, + "documentation": { + "id": 2844, + "nodeType": "StructuredDocumentation", + "src": "1958:301:13", + "text": " @dev Performs implementation upgrade with additional setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-Upgraded} event." + }, + "id": 2879, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "upgradeToAndCall", + "nameLocation": "2273:16:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2846, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "2298:17:13", + "nodeType": "VariableDeclaration", + "scope": 2879, + "src": "2290:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2290:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2848, + "mutability": "mutable", + "name": "data", + "nameLocation": "2330:4:13", + "nodeType": "VariableDeclaration", + "scope": 2879, + "src": "2317:17:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2847, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2317:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2289:46:13" + }, + "returnParameters": { + "id": 2850, + "nodeType": "ParameterList", + "parameters": [], + "src": "2345:0:13" + }, + "scope": 3064, + "src": "2264:344:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 2880, + "nodeType": "StructuredDocumentation", + "src": "2614:145:13", + "text": " @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1." + }, + "id": 2883, + "mutability": "constant", + "name": "ADMIN_SLOT", + "nameLocation": "2855:10:13", + "nodeType": "VariableDeclaration", + "scope": 3064, + "src": "2829:105:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2881, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2829:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033", + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2868:66:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1", + "typeString": "int_const 8195...(69 digits omitted)...7091" + }, + "value": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103" + }, + "visibility": "internal" + }, + { + "body": { + "id": 2895, + "nodeType": "Block", + "src": "3339:68:13", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 2891, + "name": "ADMIN_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2883, + "src": "3383:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2889, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "3356:11:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$4148_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3368:14:13", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 4059, + "src": "3356:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4030_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3356:38:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2893, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3395:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 4029, + "src": "3356:44:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2888, + "id": 2894, + "nodeType": "Return", + "src": "3349:51:13" + } + ] + }, + "documentation": { + "id": 2884, + "nodeType": "StructuredDocumentation", + "src": "2941:341:13", + "text": " @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`" + }, + "id": 2896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAdmin", + "nameLocation": "3296:8:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2885, + "nodeType": "ParameterList", + "parameters": [], + "src": "3304:2:13" + }, + "returnParameters": { + "id": 2888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2887, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2896, + "src": "3330:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3330:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3329:9:13" + }, + "scope": 3064, + "src": "3287:120:13", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2926, + "nodeType": "Block", + "src": "3535:172:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2902, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "3549:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3569:1:13", + "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": 2904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3561:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2903, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3561:7:13", + "typeDescriptions": {} + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3561:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3549:22:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2916, + "nodeType": "IfStatement", + "src": "3545:91:13", + "trueBody": { + "id": 2915, + "nodeType": "Block", + "src": "3573:63:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3622:1:13", + "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": 2910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3614:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:13", + "typeDescriptions": {} + } + }, + "id": 2912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3614:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2908, + "name": "ERC1967InvalidAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2795, + "src": "3594:19:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 2913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3594:31:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2914, + "nodeType": "RevertStatement", + "src": "3587:38:13" + } + ] + } + }, + { + "expression": { + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [ + { + "id": 2920, + "name": "ADMIN_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2883, + "src": "3672:10:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2917, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "3645:11:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$4148_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3657:14:13", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 4059, + "src": "3645:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4030_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2922, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3684:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 4029, + "src": "3645:44:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2923, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2899, + "src": "3692:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3645:55:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2925, + "nodeType": "ExpressionStatement", + "src": "3645:55:13" + } + ] + }, + "documentation": { + "id": 2897, + "nodeType": "StructuredDocumentation", + "src": "3413:72:13", + "text": " @dev Stores a new address in the ERC-1967 admin slot." + }, + "id": 2927, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setAdmin", + "nameLocation": "3499:9:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2899, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "3517:8:13", + "nodeType": "VariableDeclaration", + "scope": 2927, + "src": "3509:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3509:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3508:18:13" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [], + "src": "3535:0:13" + }, + "scope": 3064, + "src": "3490:217:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2945, + "nodeType": "Block", + "src": "3875:94:13", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2936, + "name": "getAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "3912:8:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3912:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2938, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2930, + "src": "3924:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 2933, + "name": "IERC1967", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "3890:8:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1967_$2196_$", + "typeString": "type(contract IERC1967)" + } + }, + "id": 2935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3899:12:13", + "memberName": "AdminChanged", + "nodeType": "MemberAccess", + "referencedDeclaration": 2190, + "src": "3890:21:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3890:43:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2940, + "nodeType": "EmitStatement", + "src": "3885:48:13" + }, + { + "expression": { + "arguments": [ + { + "id": 2942, + "name": "newAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2930, + "src": "3953:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2941, + "name": "_setAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2927, + "src": "3943:9:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3943:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2944, + "nodeType": "ExpressionStatement", + "src": "3943:19:13" + } + ] + }, + "documentation": { + "id": 2928, + "nodeType": "StructuredDocumentation", + "src": "3713:109:13", + "text": " @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event." + }, + "id": 2946, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "changeAdmin", + "nameLocation": "3836:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2930, + "mutability": "mutable", + "name": "newAdmin", + "nameLocation": "3856:8:13", + "nodeType": "VariableDeclaration", + "scope": 2946, + "src": "3848:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2929, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3848:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3847:18:13" + }, + "returnParameters": { + "id": 2932, + "nodeType": "ParameterList", + "parameters": [], + "src": "3875:0:13" + }, + "scope": 3064, + "src": "3827:142:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 2947, + "nodeType": "StructuredDocumentation", + "src": "3975:201:13", + "text": " @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1." + }, + "id": 2950, + "mutability": "constant", + "name": "BEACON_SLOT", + "nameLocation": "4272:11:13", + "nodeType": "VariableDeclaration", + "scope": 3064, + "src": "4246:106:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2948, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4246:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530", + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4286:66:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1", + "typeString": "int_const 7415...(69 digits omitted)...4704" + }, + "value": "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50" + }, + "visibility": "internal" + }, + { + "body": { + "id": 2962, + "nodeType": "Block", + "src": "4468:69:13", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 2958, + "name": "BEACON_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "4512:11:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2956, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "4485:11:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$4148_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4497:14:13", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 4059, + "src": "4485:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4030_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4485:39:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2960, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4525:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 4029, + "src": "4485:45:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2955, + "id": 2961, + "nodeType": "Return", + "src": "4478:52:13" + } + ] + }, + "documentation": { + "id": 2951, + "nodeType": "StructuredDocumentation", + "src": "4359:51:13", + "text": " @dev Returns the current beacon." + }, + "id": 2963, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBeacon", + "nameLocation": "4424:9:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2952, + "nodeType": "ParameterList", + "parameters": [], + "src": "4433:2:13" + }, + "returnParameters": { + "id": 2955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2963, + "src": "4459:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4459:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4458:9:13" + }, + "scope": 3064, + "src": "4415:122:13", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3008, + "nodeType": "Block", + "src": "4667:390:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2969, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "4681:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4691:4:13", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4681:14:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4696:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4681:21:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4706:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4681:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2979, + "nodeType": "IfStatement", + "src": "4677:95:13", + "trueBody": { + "id": 2978, + "nodeType": "Block", + "src": "4709:63:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 2975, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "4751:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2974, + "name": "ERC1967InvalidBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2800, + "src": "4730:20:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4730:31:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2977, + "nodeType": "RevertStatement", + "src": "4723:38:13" + } + ] + } + }, + { + "expression": { + "id": 2987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [ + { + "id": 2983, + "name": "BEACON_SLOT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "4809:11:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 2980, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4148, + "src": "4782:11:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StorageSlot_$4148_$", + "typeString": "type(library StorageSlot)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4794:14:13", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 4059, + "src": "4782:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$4030_storage_ptr_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4782:39:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "id": 2985, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4822:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 4029, + "src": "4782:45:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2986, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "4830:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4782:57:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2988, + "nodeType": "ExpressionStatement", + "src": "4782:57:13" + }, + { + "assignments": [ + 2990 + ], + "declarations": [ + { + "constant": false, + "id": 2990, + "mutability": "mutable", + "name": "beaconImplementation", + "nameLocation": "4858:20:13", + "nodeType": "VariableDeclaration", + "scope": 3008, + "src": "4850:28:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4850:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2996, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 2992, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "4889:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2991, + "name": "IBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3110, + "src": "4881:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IBeacon_$3110_$", + "typeString": "type(contract IBeacon)" + } + }, + "id": 2993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4881:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBeacon_$3110", + "typeString": "contract IBeacon" + } + }, + "id": 2994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4900:14:13", + "memberName": "implementation", + "nodeType": "MemberAccess", + "referencedDeclaration": 3109, + "src": "4881:33:13", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 2995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4881:35:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4850:66:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2997, + "name": "beaconImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "4930:20:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4951:4:13", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4930:25:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4956:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4930:32:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4966:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4930:37:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3007, + "nodeType": "IfStatement", + "src": "4926:125:13", + "trueBody": { + "id": 3006, + "nodeType": "Block", + "src": "4969:82:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3003, + "name": "beaconImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2990, + "src": "5019:20:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3002, + "name": "ERC1967InvalidImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "4990:28:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 3004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4990:50:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3005, + "nodeType": "RevertStatement", + "src": "4983:57:13" + } + ] + } + } + ] + }, + "documentation": { + "id": 2964, + "nodeType": "StructuredDocumentation", + "src": "4543:72:13", + "text": " @dev Stores a new beacon in the ERC-1967 beacon slot." + }, + "id": 3009, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBeacon", + "nameLocation": "4629:10:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2966, + "mutability": "mutable", + "name": "newBeacon", + "nameLocation": "4648:9:13", + "nodeType": "VariableDeclaration", + "scope": 3009, + "src": "4640:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4640:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4639:19:13" + }, + "returnParameters": { + "id": 2968, + "nodeType": "ParameterList", + "parameters": [], + "src": "4667:0:13" + }, + "scope": 3064, + "src": "4620:437:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3048, + "nodeType": "Block", + "src": "5661:263:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3018, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3012, + "src": "5682:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3017, + "name": "_setBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3009, + "src": "5671:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5671:21:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3020, + "nodeType": "ExpressionStatement", + "src": "5671:21:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3024, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3012, + "src": "5731:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3021, + "name": "IERC1967", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "5707:8:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC1967_$2196_$", + "typeString": "type(contract IERC1967)" + } + }, + "id": 3023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5716:14:13", + "memberName": "BeaconUpgraded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2195, + "src": "5707:23:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5707:34:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3026, + "nodeType": "EmitStatement", + "src": "5702:39:13" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3027, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "5756:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5761:6:13", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5756:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5770:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5756:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3046, + "nodeType": "Block", + "src": "5875:43:13", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3043, + "name": "_checkNonPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3063, + "src": "5889:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5889:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3045, + "nodeType": "ExpressionStatement", + "src": "5889:18:13" + } + ] + }, + "id": 3047, + "nodeType": "IfStatement", + "src": "5752:166:13", + "trueBody": { + "id": 3042, + "nodeType": "Block", + "src": "5773:96:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 3035, + "name": "newBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3012, + "src": "5824:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3034, + "name": "IBeacon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3110, + "src": "5816:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IBeacon_$3110_$", + "typeString": "type(contract IBeacon)" + } + }, + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5816:18:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBeacon_$3110", + "typeString": "contract IBeacon" + } + }, + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5835:14:13", + "memberName": "implementation", + "nodeType": "MemberAccess", + "referencedDeclaration": 3109, + "src": "5816:33:13", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 3038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5816:35:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3039, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "5853:4:13", + "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": 3031, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "5787:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$3821_$", + "typeString": "type(library Address)" + } + }, + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5795:20:13", + "memberName": "functionDelegateCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3738, + "src": "5787:28:13", + "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": 3040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5787:71:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3041, + "nodeType": "ExpressionStatement", + "src": "5787:71:13" + } + ] + } + } + ] + }, + "documentation": { + "id": 3010, + "nodeType": "StructuredDocumentation", + "src": "5063:514:13", + "text": " @dev Change the beacon and trigger a setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-BeaconUpgraded} event.\n CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n efficiency." + }, + "id": 3049, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "upgradeBeaconToAndCall", + "nameLocation": "5591:22:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3012, + "mutability": "mutable", + "name": "newBeacon", + "nameLocation": "5622:9:13", + "nodeType": "VariableDeclaration", + "scope": 3049, + "src": "5614:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5614:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3014, + "mutability": "mutable", + "name": "data", + "nameLocation": "5646:4:13", + "nodeType": "VariableDeclaration", + "scope": 3049, + "src": "5633:17:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3013, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5633:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5613:38:13" + }, + "returnParameters": { + "id": 3016, + "nodeType": "ParameterList", + "parameters": [], + "src": "5661:0:13" + }, + "scope": 3064, + "src": "5582:342:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3062, + "nodeType": "Block", + "src": "6149:86:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6163:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6167:5:13", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6163:9:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6175:1:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6163:13:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3061, + "nodeType": "IfStatement", + "src": "6159:70:13", + "trueBody": { + "id": 3060, + "nodeType": "Block", + "src": "6178:51:13", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3057, + "name": "ERC1967NonPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2803, + "src": "6199:17:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6199:19:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "RevertStatement", + "src": "6192:26:13" + } + ] + } + } + ] + }, + "documentation": { + "id": 3050, + "nodeType": "StructuredDocumentation", + "src": "5930:178:13", + "text": " @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n if an upgrade doesn't perform an initialization call." + }, + "id": 3063, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkNonPayable", + "nameLocation": "6122:16:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3051, + "nodeType": "ParameterList", + "parameters": [], + "src": "6138:2:13" + }, + "returnParameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [], + "src": "6149:0:13" + }, + "scope": 3064, + "src": "6113:122:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3065, + "src": "496:5741:13", + "usedErrors": [ + 2790, + 2795, + 2800, + 2803 + ], + "usedEvents": [] + } + ], + "src": "114:6124:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/proxy/Proxy.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/Proxy.sol", + "exportedSymbols": { + "Proxy": [ + 3100 + ] + }, + "id": 3101, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3066, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "99:24:14" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Proxy", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3067, + "nodeType": "StructuredDocumentation", + "src": "125:598:14", + "text": " @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy." + }, + "fullyImplemented": false, + "id": 3100, + "linearizedBaseContracts": [ + 3100 + ], + "name": "Proxy", + "nameLocation": "742:5:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3074, + "nodeType": "Block", + "src": "1009:835:14", + "statements": [ + { + "AST": { + "nativeSrc": "1028:810:14", + "nodeType": "YulBlock", + "src": "1028:810:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1281:1:14", + "nodeType": "YulLiteral", + "src": "1281:1:14", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1284:1:14", + "nodeType": "YulLiteral", + "src": "1284:1:14", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "1287:12:14", + "nodeType": "YulIdentifier", + "src": "1287:12:14" + }, + "nativeSrc": "1287:14:14", + "nodeType": "YulFunctionCall", + "src": "1287:14:14" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "1268:12:14", + "nodeType": "YulIdentifier", + "src": "1268:12:14" + }, + "nativeSrc": "1268:34:14", + "nodeType": "YulFunctionCall", + "src": "1268:34:14" + }, + "nativeSrc": "1268:34:14", + "nodeType": "YulExpressionStatement", + "src": "1268:34:14" + }, + { + "nativeSrc": "1429:74:14", + "nodeType": "YulVariableDeclaration", + "src": "1429:74:14", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "1456:3:14", + "nodeType": "YulIdentifier", + "src": "1456:3:14" + }, + "nativeSrc": "1456:5:14", + "nodeType": "YulFunctionCall", + "src": "1456:5:14" + }, + { + "name": "implementation", + "nativeSrc": "1463:14:14", + "nodeType": "YulIdentifier", + "src": "1463:14:14" + }, + { + "kind": "number", + "nativeSrc": "1479:1:14", + "nodeType": "YulLiteral", + "src": "1479:1:14", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "1482:12:14", + "nodeType": "YulIdentifier", + "src": "1482:12:14" + }, + "nativeSrc": "1482:14:14", + "nodeType": "YulFunctionCall", + "src": "1482:14:14" + }, + { + "kind": "number", + "nativeSrc": "1498:1:14", + "nodeType": "YulLiteral", + "src": "1498:1:14", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1501:1:14", + "nodeType": "YulLiteral", + "src": "1501:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "delegatecall", + "nativeSrc": "1443:12:14", + "nodeType": "YulIdentifier", + "src": "1443:12:14" + }, + "nativeSrc": "1443:60:14", + "nodeType": "YulFunctionCall", + "src": "1443:60:14" + }, + "variables": [ + { + "name": "result", + "nativeSrc": "1433:6:14", + "nodeType": "YulTypedName", + "src": "1433:6:14", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1571:1:14", + "nodeType": "YulLiteral", + "src": "1571:1:14", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1574:1:14", + "nodeType": "YulLiteral", + "src": "1574:1:14", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1577:14:14", + "nodeType": "YulIdentifier", + "src": "1577:14:14" + }, + "nativeSrc": "1577:16:14", + "nodeType": "YulFunctionCall", + "src": "1577:16:14" + } + ], + "functionName": { + "name": "returndatacopy", + "nativeSrc": "1556:14:14", + "nodeType": "YulIdentifier", + "src": "1556:14:14" + }, + "nativeSrc": "1556:38:14", + "nodeType": "YulFunctionCall", + "src": "1556:38:14" + }, + "nativeSrc": "1556:38:14", + "nodeType": "YulExpressionStatement", + "src": "1556:38:14" + }, + { + "cases": [ + { + "body": { + "nativeSrc": "1689:59:14", + "nodeType": "YulBlock", + "src": "1689:59:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1714:1:14", + "nodeType": "YulLiteral", + "src": "1714:1:14", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1717:14:14", + "nodeType": "YulIdentifier", + "src": "1717:14:14" + }, + "nativeSrc": "1717:16:14", + "nodeType": "YulFunctionCall", + "src": "1717:16:14" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1707:6:14", + "nodeType": "YulIdentifier", + "src": "1707:6:14" + }, + "nativeSrc": "1707:27:14", + "nodeType": "YulFunctionCall", + "src": "1707:27:14" + }, + "nativeSrc": "1707:27:14", + "nodeType": "YulExpressionStatement", + "src": "1707:27:14" + } + ] + }, + "nativeSrc": "1682:66:14", + "nodeType": "YulCase", + "src": "1682:66:14", + "value": { + "kind": "number", + "nativeSrc": "1687:1:14", + "nodeType": "YulLiteral", + "src": "1687:1:14", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "1769:59:14", + "nodeType": "YulBlock", + "src": "1769:59:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1794:1:14", + "nodeType": "YulLiteral", + "src": "1794:1:14", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1797:14:14", + "nodeType": "YulIdentifier", + "src": "1797:14:14" + }, + "nativeSrc": "1797:16:14", + "nodeType": "YulFunctionCall", + "src": "1797:16:14" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "1787:6:14", + "nodeType": "YulIdentifier", + "src": "1787:6:14" + }, + "nativeSrc": "1787:27:14", + "nodeType": "YulFunctionCall", + "src": "1787:27:14" + }, + "nativeSrc": "1787:27:14", + "nodeType": "YulExpressionStatement", + "src": "1787:27:14" + } + ] + }, + "nativeSrc": "1761:67:14", + "nodeType": "YulCase", + "src": "1761:67:14", + "value": "default" + } + ], + "expression": { + "name": "result", + "nativeSrc": "1615:6:14", + "nodeType": "YulIdentifier", + "src": "1615:6:14" + }, + "nativeSrc": "1608:220:14", + "nodeType": "YulSwitch", + "src": "1608:220:14" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3070, + "isOffset": false, + "isSlot": false, + "src": "1463:14:14", + "valueSize": 1 + } + ], + "id": 3073, + "nodeType": "InlineAssembly", + "src": "1019:819:14" + } + ] + }, + "documentation": { + "id": 3068, + "nodeType": "StructuredDocumentation", + "src": "754:190:14", + "text": " @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller." + }, + "id": 3075, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_delegate", + "nameLocation": "958:9:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3070, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "976:14:14", + "nodeType": "VariableDeclaration", + "scope": 3075, + "src": "968:22:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "968:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "967:24:14" + }, + "returnParameters": { + "id": 3072, + "nodeType": "ParameterList", + "parameters": [], + "src": "1009:0:14" + }, + "scope": 3100, + "src": "949:895:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "documentation": { + "id": 3076, + "nodeType": "StructuredDocumentation", + "src": "1850:173:14", + "text": " @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n function and {_fallback} should delegate." + }, + "id": 3081, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_implementation", + "nameLocation": "2037:15:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3077, + "nodeType": "ParameterList", + "parameters": [], + "src": "2052:2:14" + }, + "returnParameters": { + "id": 3080, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3079, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3081, + "src": "2086:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3078, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2086:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2085:9:14" + }, + "scope": 3100, + "src": "2028:67:14", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3090, + "nodeType": "Block", + "src": "2361:45:14", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3086, + "name": "_implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3081, + "src": "2381:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2381:17:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3085, + "name": "_delegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3075, + "src": "2371:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2371:28:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "2371:28:14" + } + ] + }, + "documentation": { + "id": 3082, + "nodeType": "StructuredDocumentation", + "src": "2101:217:14", + "text": " @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller." + }, + "id": 3091, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_fallback", + "nameLocation": "2332:9:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3083, + "nodeType": "ParameterList", + "parameters": [], + "src": "2341:2:14" + }, + "returnParameters": { + "id": 3084, + "nodeType": "ParameterList", + "parameters": [], + "src": "2361:0:14" + }, + "scope": 3100, + "src": "2323:83:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3098, + "nodeType": "Block", + "src": "2639:28:14", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3095, + "name": "_fallback", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3091, + "src": "2649:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2649:11:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3097, + "nodeType": "ExpressionStatement", + "src": "2649:11:14" + } + ] + }, + "documentation": { + "id": 3092, + "nodeType": "StructuredDocumentation", + "src": "2412:186:14", + "text": " @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data." + }, + "id": 3099, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3093, + "nodeType": "ParameterList", + "parameters": [], + "src": "2611:2:14" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [], + "src": "2639:0:14" + }, + "scope": 3100, + "src": "2603:64:14", + "stateMutability": "payable", + "virtual": true, + "visibility": "external" + } + ], + "scope": 3101, + "src": "724:1945:14", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "99:2571:14" + }, + "id": 14 + }, + "@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", + "exportedSymbols": { + "IBeacon": [ + 3110 + ] + }, + "id": 3111, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3102, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:15" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IBeacon", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3103, + "nodeType": "StructuredDocumentation", + "src": "134:79:15", + "text": " @dev This is the interface that {BeaconProxy} expects of its beacon." + }, + "fullyImplemented": false, + "id": 3110, + "linearizedBaseContracts": [ + 3110 + ], + "name": "IBeacon", + "nameLocation": "224:7:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3104, + "nodeType": "StructuredDocumentation", + "src": "238:168:15", + "text": " @dev Must return an address that can be used as a delegate call target.\n {UpgradeableBeacon} will check that this address is a contract." + }, + "functionSelector": "5c60da1b", + "id": 3109, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "implementation", + "nameLocation": "420:14:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3105, + "nodeType": "ParameterList", + "parameters": [], + "src": "434:2:15" + }, + "returnParameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3107, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3109, + "src": "460:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "460:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "459:9:15" + }, + "scope": 3110, + "src": "411:58:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3111, + "src": "214:257:15", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "108:364:15" + }, + "id": 15 + }, + "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "exportedSymbols": { + "ITransparentUpgradeableProxy": [ + 3180 + ], + "Ownable": [ + 2175 + ], + "ProxyAdmin": [ + 3158 + ] + }, + "id": 3159, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3112, + "literals": [ + "solidity", + "^", + "0.8", + ".22" + ], + "nodeType": "PragmaDirective", + "src": "116:24:16" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "file": "./TransparentUpgradeableProxy.sol", + "id": 3114, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3159, + "sourceUnit": 3295, + "src": "142:79:16", + "symbolAliases": [ + { + "foreign": { + "id": 3113, + "name": "ITransparentUpgradeableProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3180, + "src": "150:28:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/access/Ownable.sol", + "file": "../../access/Ownable.sol", + "id": 3116, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3159, + "sourceUnit": 2176, + "src": "222:49:16", + "symbolAliases": [ + { + "foreign": { + "id": 3115, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2175, + "src": "230:7:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3118, + "name": "Ownable", + "nameLocations": [ + "525:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2175, + "src": "525:7:16" + }, + "id": 3119, + "nodeType": "InheritanceSpecifier", + "src": "525:7:16" + } + ], + "canonicalName": "ProxyAdmin", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3117, + "nodeType": "StructuredDocumentation", + "src": "273:228:16", + "text": " @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}." + }, + "fullyImplemented": true, + "id": 3158, + "linearizedBaseContracts": [ + 3158, + 2175, + 3851 + ], + "name": "ProxyAdmin", + "nameLocation": "511:10:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 3120, + "nodeType": "StructuredDocumentation", + "src": "539:643:16", + "text": " @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)`\n and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third argument must\n be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n during an upgrade." + }, + "functionSelector": "ad3cb1cc", + "id": 3123, + "mutability": "constant", + "name": "UPGRADE_INTERFACE_VERSION", + "nameLocation": "1210:25:16", + "nodeType": "VariableDeclaration", + "scope": 3158, + "src": "1187:58:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3121, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1187:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "352e302e30", + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1238:7:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c", + "typeString": "literal_string \"5.0.0\"" + }, + "value": "5.0.0" + }, + "visibility": "public" + }, + { + "body": { + "id": 3132, + "nodeType": "Block", + "src": "1385:2:16", + "statements": [] + }, + "documentation": { + "id": 3124, + "nodeType": "StructuredDocumentation", + "src": "1252:72:16", + "text": " @dev Sets the initial owner who can perform upgrades." + }, + "id": 3133, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 3129, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3126, + "src": "1371:12:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3130, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3128, + "name": "Ownable", + "nameLocations": [ + "1363:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2175, + "src": "1363:7:16" + }, + "nodeType": "ModifierInvocation", + "src": "1363:21:16" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3127, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3126, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1349:12:16", + "nodeType": "VariableDeclaration", + "scope": 3133, + "src": "1341:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1341:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1340:22:16" + }, + "returnParameters": { + "id": 3131, + "nodeType": "ParameterList", + "parameters": [], + "src": "1385:0:16" + }, + "scope": 3158, + "src": "1329:58:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3156, + "nodeType": "Block", + "src": "1883:79:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3152, + "name": "implementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3139, + "src": "1934:14:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3153, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3141, + "src": "1950:4:16", + "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": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3146, + "name": "proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3137, + "src": "1893:5:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3180", + "typeString": "contract ITransparentUpgradeableProxy" + } + }, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1899:16:16", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3179, + "src": "1893:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory) payable external" + } + }, + "id": 3151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "expression": { + "id": 3149, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1923:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1927:5:16", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "1923:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1893:40:16", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value", + "typeString": "function (address,bytes memory) payable external" + } + }, + "id": 3154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1893:62:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3155, + "nodeType": "ExpressionStatement", + "src": "1893:62:16" + } + ] + }, + "documentation": { + "id": 3134, + "nodeType": "StructuredDocumentation", + "src": "1393:319:16", + "text": " @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`.\n - If `data` is empty, `msg.value` must be zero." + }, + "functionSelector": "9623609d", + "id": 3157, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3144, + "kind": "modifierInvocation", + "modifierName": { + "id": 3143, + "name": "onlyOwner", + "nameLocations": [ + "1873:9:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2086, + "src": "1873:9:16" + }, + "nodeType": "ModifierInvocation", + "src": "1873:9:16" + } + ], + "name": "upgradeAndCall", + "nameLocation": "1726:14:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3137, + "mutability": "mutable", + "name": "proxy", + "nameLocation": "1779:5:16", + "nodeType": "VariableDeclaration", + "scope": 3157, + "src": "1750:34:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3180", + "typeString": "contract ITransparentUpgradeableProxy" + }, + "typeName": { + "id": 3136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3135, + "name": "ITransparentUpgradeableProxy", + "nameLocations": [ + "1750:28:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3180, + "src": "1750:28:16" + }, + "referencedDeclaration": 3180, + "src": "1750:28:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITransparentUpgradeableProxy_$3180", + "typeString": "contract ITransparentUpgradeableProxy" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3139, + "mutability": "mutable", + "name": "implementation", + "nameLocation": "1802:14:16", + "nodeType": "VariableDeclaration", + "scope": 3157, + "src": "1794:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1794:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3141, + "mutability": "mutable", + "name": "data", + "nameLocation": "1839:4:16", + "nodeType": "VariableDeclaration", + "scope": 3157, + "src": "1826:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3140, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1826:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1740:109:16" + }, + "returnParameters": { + "id": 3145, + "nodeType": "ParameterList", + "parameters": [], + "src": "1883:0:16" + }, + "scope": 3158, + "src": "1717:245:16", + "stateMutability": "payable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 3159, + "src": "502:1462:16", + "usedErrors": [ + 2041, + 2046 + ], + "usedEvents": [ + 2052 + ] + } + ], + "src": "116:1849:16" + }, + "id": 16 + }, + "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "exportedSymbols": { + "ERC1967Proxy": [ + 2770 + ], + "ERC1967Utils": [ + 3064 + ], + "IERC1967": [ + 2196 + ], + "ITransparentUpgradeableProxy": [ + 3180 + ], + "ProxyAdmin": [ + 3158 + ], + "TransparentUpgradeableProxy": [ + 3294 + ] + }, + "id": 3295, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3160, + "literals": [ + "solidity", + "^", + "0.8", + ".22" + ], + "nodeType": "PragmaDirective", + "src": "133:24:17" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol", + "file": "../ERC1967/ERC1967Utils.sol", + "id": 3162, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3295, + "sourceUnit": 3065, + "src": "159:57:17", + "symbolAliases": [ + { + "foreign": { + "id": 3161, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "167:12:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", + "file": "../ERC1967/ERC1967Proxy.sol", + "id": 3164, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3295, + "sourceUnit": 2771, + "src": "217:57:17", + "symbolAliases": [ + { + "foreign": { + "id": 3163, + "name": "ERC1967Proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2770, + "src": "225:12:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC1967.sol", + "file": "../../interfaces/IERC1967.sol", + "id": 3166, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3295, + "sourceUnit": 2197, + "src": "275:55:17", + "symbolAliases": [ + { + "foreign": { + "id": 3165, + "name": "IERC1967", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2196, + "src": "283:8:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol", + "file": "./ProxyAdmin.sol", + "id": 3168, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3295, + "sourceUnit": 3159, + "src": "331:44:17", + "symbolAliases": [ + { + "foreign": { + "id": 3167, + "name": "ProxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3158, + "src": "339:10:17", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3170, + "name": "IERC1967", + "nameLocations": [ + "865:8:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2196, + "src": "865:8:17" + }, + "id": 3171, + "nodeType": "InheritanceSpecifier", + "src": "865:8:17" + } + ], + "canonicalName": "ITransparentUpgradeableProxy", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3169, + "nodeType": "StructuredDocumentation", + "src": "377:445:17", + "text": " @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it." + }, + "fullyImplemented": false, + "id": 3180, + "linearizedBaseContracts": [ + 3180, + 2196 + ], + "name": "ITransparentUpgradeableProxy", + "nameLocation": "833:28:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "880:47:17", + "text": "@dev See {UUPSUpgradeable-upgradeToAndCall}" + }, + "functionSelector": "4f1ef286", + "id": 3179, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "upgradeToAndCall", + "nameLocation": "941:16:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "966:17:17", + "nodeType": "VariableDeclaration", + "scope": 3179, + "src": "958:25:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "958:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "data", + "nameLocation": "1000:4:17", + "nodeType": "VariableDeclaration", + "scope": 3179, + "src": "985:19:17", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3175, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "985:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "957:48:17" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "1022:0:17" + }, + "scope": 3180, + "src": "932:91:17", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3295, + "src": "823:202:17", + "usedErrors": [], + "usedEvents": [ + 2183, + 2190, + 2195 + ] + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3182, + "name": "ERC1967Proxy", + "nameLocations": [ + "4354:12:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2770, + "src": "4354:12:17" + }, + "id": 3183, + "nodeType": "InheritanceSpecifier", + "src": "4354:12:17" + } + ], + "canonicalName": "TransparentUpgradeableProxy", + "contractDependencies": [ + 3158 + ], + "contractKind": "contract", + "documentation": { + "id": 3181, + "nodeType": "StructuredDocumentation", + "src": "1027:3286:17", + "text": " @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n the proxy admin cannot fallback to the target implementation.\n These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot\n is generally fine if the implementation is trusted.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency." + }, + "fullyImplemented": true, + "id": 3294, + "linearizedBaseContracts": [ + 3294, + 2770, + 3100 + ], + "name": "TransparentUpgradeableProxy", + "nameLocation": "4323:27:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3185, + "mutability": "immutable", + "name": "_admin", + "nameLocation": "4734:6:17", + "nodeType": "VariableDeclaration", + "scope": 3294, + "src": "4708:32:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3184, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4708:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 3186, + "nodeType": "StructuredDocumentation", + "src": "4747:102:17", + "text": " @dev The proxy caller is the current admin, and can't fallback to the proxy target." + }, + "errorSelector": "d2b576ec", + "id": 3188, + "name": "ProxyDeniedAdminAccess", + "nameLocation": "4860:22:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3187, + "nodeType": "ParameterList", + "parameters": [], + "src": "4882:2:17" + }, + "src": "4854:31:17" + }, + { + "body": { + "id": 3220, + "nodeType": "Block", + "src": "5263:190:17", + "statements": [ + { + "expression": { + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3202, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3185, + "src": "5273:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 3208, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3193, + "src": "5305:12:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5290:14:17", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$3158_$", + "typeString": "function (address) returns (contract ProxyAdmin)" + }, + "typeName": { + "id": 3206, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3205, + "name": "ProxyAdmin", + "nameLocations": [ + "5294:10:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3158, + "src": "5294:10:17" + }, + "referencedDeclaration": 3158, + "src": "5294:10:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProxyAdmin_$3158", + "typeString": "contract ProxyAdmin" + } + } + }, + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5290:28:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ProxyAdmin_$3158", + "typeString": "contract ProxyAdmin" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProxyAdmin_$3158", + "typeString": "contract ProxyAdmin" + } + ], + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5282:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3203, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5282:7:17", + "typeDescriptions": {} + } + }, + "id": 3210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5282:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5273:46:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "5273:46:17" + }, + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3216, + "name": "_proxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "5432:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5432:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "5407:12:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$3064_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5420:11:17", + "memberName": "changeAdmin", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "5407:24:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5407:39:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "5407:39:17" + } + ] + }, + "documentation": { + "id": 3189, + "nodeType": "StructuredDocumentation", + "src": "4891:261:17", + "text": " @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n {ERC1967Proxy-constructor}." + }, + "id": 3221, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 3198, + "name": "_logic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3191, + "src": "5248:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3199, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3195, + "src": "5256:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 3200, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 3197, + "name": "ERC1967Proxy", + "nameLocations": [ + "5235:12:17" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2770, + "src": "5235:12:17" + }, + "nodeType": "ModifierInvocation", + "src": "5235:27:17" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3191, + "mutability": "mutable", + "name": "_logic", + "nameLocation": "5177:6:17", + "nodeType": "VariableDeclaration", + "scope": 3221, + "src": "5169:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5169:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3193, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "5193:12:17", + "nodeType": "VariableDeclaration", + "scope": 3221, + "src": "5185:20:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5185:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3195, + "mutability": "mutable", + "name": "_data", + "nameLocation": "5220:5:17", + "nodeType": "VariableDeclaration", + "scope": 3221, + "src": "5207:18:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3194, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5207:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5168:58:17" + }, + "returnParameters": { + "id": 3201, + "nodeType": "ParameterList", + "parameters": [], + "src": "5263:0:17" + }, + "scope": 3294, + "src": "5157:296:17", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "5583:30:17", + "statements": [ + { + "expression": { + "id": 3227, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3185, + "src": "5600:6:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3226, + "id": 3228, + "nodeType": "Return", + "src": "5593:13:17" + } + ] + }, + "documentation": { + "id": 3222, + "nodeType": "StructuredDocumentation", + "src": "5459:56:17", + "text": " @dev Returns the admin of this proxy." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_proxyAdmin", + "nameLocation": "5529:11:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3223, + "nodeType": "ParameterList", + "parameters": [], + "src": "5540:2:17" + }, + "returnParameters": { + "id": 3226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "5574:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5574:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5573:9:17" + }, + "scope": 3294, + "src": "5520:93:17", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 3091 + ], + "body": { + "id": 3263, + "nodeType": "Block", + "src": "5802:322:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3235, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5816:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5820:6:17", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5816:10:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3237, + "name": "_proxyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "5830:11:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 3238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5830:13:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5816:27:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3261, + "nodeType": "Block", + "src": "6076:42:17", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3256, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "6090:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_TransparentUpgradeableProxy_$3294_$", + "typeString": "type(contract super TransparentUpgradeableProxy)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6096:9:17", + "memberName": "_fallback", + "nodeType": "MemberAccess", + "referencedDeclaration": 3091, + "src": "6090:15:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6090:17:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3260, + "nodeType": "ExpressionStatement", + "src": "6090:17:17" + } + ] + }, + "id": 3262, + "nodeType": "IfStatement", + "src": "5812:306:17", + "trueBody": { + "id": 3255, + "nodeType": "Block", + "src": "5845:225:17", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3240, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5863:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5867:3:17", + "memberName": "sig", + "nodeType": "MemberAccess", + "src": "5863:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 3242, + "name": "ITransparentUpgradeableProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3180, + "src": "5874:28:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ITransparentUpgradeableProxy_$3180_$", + "typeString": "type(contract ITransparentUpgradeableProxy)" + } + }, + "id": 3243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5903:16:17", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3179, + "src": "5874:45:17", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$", + "typeString": "function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable" + } + }, + "id": 3244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5920:8:17", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "5874:54:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "5863:65:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3253, + "nodeType": "Block", + "src": "6000:60:17", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3250, + "name": "_dispatchUpgradeToAndCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3293, + "src": "6018:25:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6018:27:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3252, + "nodeType": "ExpressionStatement", + "src": "6018:27:17" + } + ] + }, + "id": 3254, + "nodeType": "IfStatement", + "src": "5859:201:17", + "trueBody": { + "id": 3249, + "nodeType": "Block", + "src": "5930:64:17", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3246, + "name": "ProxyDeniedAdminAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3188, + "src": "5955:22:17", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5955:24:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3248, + "nodeType": "RevertStatement", + "src": "5948:31:17" + } + ] + } + } + ] + } + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "5619:131:17", + "text": " @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior." + }, + "id": 3264, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_fallback", + "nameLocation": "5764:9:17", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3233, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "5793:8:17" + }, + "parameters": { + "id": 3232, + "nodeType": "ParameterList", + "parameters": [], + "src": "5773:2:17" + }, + "returnParameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [], + "src": "5802:0:17" + }, + "scope": 3294, + "src": "5755:369:17", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3292, + "nodeType": "Block", + "src": "6371:172:17", + "statements": [ + { + "assignments": [ + 3269, + 3271 + ], + "declarations": [ + { + "constant": false, + "id": 3269, + "mutability": "mutable", + "name": "newImplementation", + "nameLocation": "6390:17:17", + "nodeType": "VariableDeclaration", + "scope": 3292, + "src": "6382:25:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6382:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3271, + "mutability": "mutable", + "name": "data", + "nameLocation": "6422:4:17", + "nodeType": "VariableDeclaration", + "scope": 3292, + "src": "6409:17:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3270, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6409:5:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3284, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 3274, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6441:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6445:4:17", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "6441:8:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 3277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "6441:12:17", + "startExpression": { + "hexValue": "34", + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6450:1:17", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "components": [ + { + "id": 3279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6456:7:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6456:7:17", + "typeDescriptions": {} + } + }, + { + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6465:5:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3280, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6465:5:17", + "typeDescriptions": {} + } + } + ], + "id": 3282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6455:16:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(address),type(bytes storage pointer))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", + "typeString": "tuple(type(address),type(bytes storage pointer))" + } + ], + "expression": { + "id": 3272, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "6430:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6434:6:17", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "6430:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6430:42:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$", + "typeString": "tuple(address payable,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6381:91:17" + }, + { + "expression": { + "arguments": [ + { + "id": 3288, + "name": "newImplementation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3269, + "src": "6512:17:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3289, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "6531:4:17", + "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": 3285, + "name": "ERC1967Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3064, + "src": "6482:12:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1967Utils_$3064_$", + "typeString": "type(library ERC1967Utils)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6495:16:17", + "memberName": "upgradeToAndCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 2879, + "src": "6482:29:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,bytes memory)" + } + }, + "id": 3290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6482:54:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3291, + "nodeType": "ExpressionStatement", + "src": "6482:54:17" + } + ] + }, + "documentation": { + "id": 3265, + "nodeType": "StructuredDocumentation", + "src": "6130:191:17", + "text": " @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n Requirements:\n - If `data` is empty, `msg.value` must be zero." + }, + "id": 3293, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_dispatchUpgradeToAndCall", + "nameLocation": "6335:25:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3266, + "nodeType": "ParameterList", + "parameters": [], + "src": "6360:2:17" + }, + "returnParameters": { + "id": 3267, + "nodeType": "ParameterList", + "parameters": [], + "src": "6371:0:17" + }, + "scope": 3294, + "src": "6326:217:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3295, + "src": "4314:2231:17", + "usedErrors": [ + 2790, + 2795, + 2803, + 3188, + 3571, + 3963 + ], + "usedEvents": [ + 2183, + 2190 + ] + } + ], + "src": "133:6413:17" + }, + "id": 17 + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "exportedSymbols": { + "IERC165": [ + 5562 + ], + "IERC721": [ + 3411 + ] + }, + "id": 3412, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3296, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:18" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "../../utils/introspection/IERC165.sol", + "id": 3298, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3412, + "sourceUnit": 5563, + "src": "134:62:18", + "symbolAliases": [ + { + "foreign": { + "id": 3297, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5562, + "src": "142:7:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3300, + "name": "IERC165", + "nameLocations": [ + "288:7:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5562, + "src": "288:7:18" + }, + "id": 3301, + "nodeType": "InheritanceSpecifier", + "src": "288:7:18" + } + ], + "canonicalName": "IERC721", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3299, + "nodeType": "StructuredDocumentation", + "src": "198:68:18", + "text": " @dev Required interface of an ERC-721 compliant contract." + }, + "fullyImplemented": false, + "id": 3411, + "linearizedBaseContracts": [ + 3411, + 5562 + ], + "name": "IERC721", + "nameLocation": "277:7:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 3302, + "nodeType": "StructuredDocumentation", + "src": "302:88:18", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 3310, + "name": "Transfer", + "nameLocation": "401:8:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 3309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3304, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "426:4:18", + "nodeType": "VariableDeclaration", + "scope": 3310, + "src": "410:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "410:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "448:2:18", + "nodeType": "VariableDeclaration", + "scope": 3310, + "src": "432:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "432:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3308, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "468:7:18", + "nodeType": "VariableDeclaration", + "scope": 3310, + "src": "452:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "452:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "409:67:18" + }, + "src": "395:82:18" + }, + { + "anonymous": false, + "documentation": { + "id": 3311, + "nodeType": "StructuredDocumentation", + "src": "483:94:18", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 3319, + "name": "Approval", + "nameLocation": "588:8:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 3318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3313, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "613:5:18", + "nodeType": "VariableDeclaration", + "scope": 3319, + "src": "597:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "597:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3315, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nameLocation": "636:8:18", + "nodeType": "VariableDeclaration", + "scope": 3319, + "src": "620:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3317, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "662:7:18", + "nodeType": "VariableDeclaration", + "scope": 3319, + "src": "646:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "646:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "596:74:18" + }, + "src": "582:89:18" + }, + { + "anonymous": false, + "documentation": { + "id": 3320, + "nodeType": "StructuredDocumentation", + "src": "677:117:18", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "eventSelector": "17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31", + "id": 3328, + "name": "ApprovalForAll", + "nameLocation": "805:14:18", + "nodeType": "EventDefinition", + "parameters": { + "id": 3327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3322, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "836:5:18", + "nodeType": "VariableDeclaration", + "scope": 3328, + "src": "820:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "820:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3324, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nameLocation": "859:8:18", + "nodeType": "VariableDeclaration", + "scope": 3328, + "src": "843:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "843:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3326, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nameLocation": "874:8:18", + "nodeType": "VariableDeclaration", + "scope": 3328, + "src": "869:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3325, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "869:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "819:64:18" + }, + "src": "799:85:18" + }, + { + "documentation": { + "id": 3329, + "nodeType": "StructuredDocumentation", + "src": "890:76:18", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 3336, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "980:9:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3331, + "mutability": "mutable", + "name": "owner", + "nameLocation": "998:5:18", + "nodeType": "VariableDeclaration", + "scope": 3336, + "src": "990:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "990:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "989:15:18" + }, + "returnParameters": { + "id": 3335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3334, + "mutability": "mutable", + "name": "balance", + "nameLocation": "1036:7:18", + "nodeType": "VariableDeclaration", + "scope": 3336, + "src": "1028:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1028:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1027:17:18" + }, + "scope": 3411, + "src": "971:74:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3337, + "nodeType": "StructuredDocumentation", + "src": "1051:131:18", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 3344, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1196:7:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3339, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1212:7:18", + "nodeType": "VariableDeclaration", + "scope": 3344, + "src": "1204:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1204:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1203:17:18" + }, + "returnParameters": { + "id": 3343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3342, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1252:5:18", + "nodeType": "VariableDeclaration", + "scope": 3344, + "src": "1244:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1244:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1243:15:18" + }, + "scope": 3411, + "src": "1187:72:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3345, + "nodeType": "StructuredDocumentation", + "src": "1265:565:18", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 3356, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1844:16:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3347, + "mutability": "mutable", + "name": "from", + "nameLocation": "1869:4:18", + "nodeType": "VariableDeclaration", + "scope": 3356, + "src": "1861:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1861:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3349, + "mutability": "mutable", + "name": "to", + "nameLocation": "1883:2:18", + "nodeType": "VariableDeclaration", + "scope": 3356, + "src": "1875:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1875:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3351, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1895:7:18", + "nodeType": "VariableDeclaration", + "scope": 3356, + "src": "1887:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3350, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1887:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3353, + "mutability": "mutable", + "name": "data", + "nameLocation": "1919:4:18", + "nodeType": "VariableDeclaration", + "scope": 3356, + "src": "1904:19:18", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3352, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1904:5:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1860:64:18" + }, + "returnParameters": { + "id": 3355, + "nodeType": "ParameterList", + "parameters": [], + "src": "1933:0:18" + }, + "scope": 3411, + "src": "1835:99:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3357, + "nodeType": "StructuredDocumentation", + "src": "1940:706:18", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC-721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or\n {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon\n a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 3366, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "2660:16:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3359, + "mutability": "mutable", + "name": "from", + "nameLocation": "2685:4:18", + "nodeType": "VariableDeclaration", + "scope": 3366, + "src": "2677:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2677:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3361, + "mutability": "mutable", + "name": "to", + "nameLocation": "2699:2:18", + "nodeType": "VariableDeclaration", + "scope": 3366, + "src": "2691:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3363, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2711:7:18", + "nodeType": "VariableDeclaration", + "scope": 3366, + "src": "2703:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2703:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2676:43:18" + }, + "returnParameters": { + "id": 3365, + "nodeType": "ParameterList", + "parameters": [], + "src": "2728:0:18" + }, + "scope": 3411, + "src": "2651:78:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3367, + "nodeType": "StructuredDocumentation", + "src": "2735:733:18", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 3376, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "3482:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3369, + "mutability": "mutable", + "name": "from", + "nameLocation": "3503:4:18", + "nodeType": "VariableDeclaration", + "scope": 3376, + "src": "3495:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3368, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3495:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3371, + "mutability": "mutable", + "name": "to", + "nameLocation": "3517:2:18", + "nodeType": "VariableDeclaration", + "scope": 3376, + "src": "3509:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3509:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3373, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3529:7:18", + "nodeType": "VariableDeclaration", + "scope": 3376, + "src": "3521:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3372, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3521:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3494:43:18" + }, + "returnParameters": { + "id": 3375, + "nodeType": "ParameterList", + "parameters": [], + "src": "3546:0:18" + }, + "scope": 3411, + "src": "3473:74:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3377, + "nodeType": "StructuredDocumentation", + "src": "3553:452:18", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 3384, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "4019:7:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3379, + "mutability": "mutable", + "name": "to", + "nameLocation": "4035:2:18", + "nodeType": "VariableDeclaration", + "scope": 3384, + "src": "4027:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4027:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3381, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4047:7:18", + "nodeType": "VariableDeclaration", + "scope": 3384, + "src": "4039:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4039:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4026:29:18" + }, + "returnParameters": { + "id": 3383, + "nodeType": "ParameterList", + "parameters": [], + "src": "4064:0:18" + }, + "scope": 3411, + "src": "4010:55:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3385, + "nodeType": "StructuredDocumentation", + "src": "4071:315:18", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the address zero.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 3392, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nameLocation": "4400:17:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3387, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4426:8:18", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "4418:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4418:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3389, + "mutability": "mutable", + "name": "approved", + "nameLocation": "4441:8:18", + "nodeType": "VariableDeclaration", + "scope": 3392, + "src": "4436:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3388, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4436:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4417:33:18" + }, + "returnParameters": { + "id": 3391, + "nodeType": "ParameterList", + "parameters": [], + "src": "4459:0:18" + }, + "scope": 3411, + "src": "4391:69:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3393, + "nodeType": "StructuredDocumentation", + "src": "4466:139:18", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 3400, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "4619:11:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3395, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "4639:7:18", + "nodeType": "VariableDeclaration", + "scope": 3400, + "src": "4631:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4631:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4630:17:18" + }, + "returnParameters": { + "id": 3399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3398, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4679:8:18", + "nodeType": "VariableDeclaration", + "scope": 3400, + "src": "4671:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4671:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4670:18:18" + }, + "scope": 3411, + "src": "4610:79:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3401, + "nodeType": "StructuredDocumentation", + "src": "4695:138:18", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 3410, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "4847:16:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3403, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4872:5:18", + "nodeType": "VariableDeclaration", + "scope": 3410, + "src": "4864:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4864:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3405, + "mutability": "mutable", + "name": "operator", + "nameLocation": "4887:8:18", + "nodeType": "VariableDeclaration", + "scope": 3410, + "src": "4879:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4879:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4863:33:18" + }, + "returnParameters": { + "id": 3409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3408, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3410, + "src": "4920:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3407, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4920:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4919:6:18" + }, + "scope": 3411, + "src": "4838:88:18", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3412, + "src": "267:4661:18", + "usedErrors": [], + "usedEvents": [ + 3310, + 3319, + 3328 + ] + } + ], + "src": "108:4821:18" + }, + "id": 18 + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "exportedSymbols": { + "IERC721Receiver": [ + 3429 + ] + }, + "id": 3430, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3413, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "116:24:19" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC721Receiver", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3414, + "nodeType": "StructuredDocumentation", + "src": "142:154:19", + "text": " @title ERC-721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC-721 asset contracts." + }, + "fullyImplemented": false, + "id": 3429, + "linearizedBaseContracts": [ + 3429 + ], + "name": "IERC721Receiver", + "nameLocation": "307:15:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3415, + "nodeType": "StructuredDocumentation", + "src": "329:500:19", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be\n reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 3428, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "843:16:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3417, + "mutability": "mutable", + "name": "operator", + "nameLocation": "877:8:19", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "869:16:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "869:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3419, + "mutability": "mutable", + "name": "from", + "nameLocation": "903:4:19", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "895:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "895:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3421, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "925:7:19", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "917:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "917:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3423, + "mutability": "mutable", + "name": "data", + "nameLocation": "957:4:19", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "942:19:19", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3422, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "942:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "859:108:19" + }, + "returnParameters": { + "id": 3427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3426, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3428, + "src": "986:6:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3425, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "986:6:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "985:8:19" + }, + "scope": 3429, + "src": "834:160:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3430, + "src": "297:699:19", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "116:881:19" + }, + "id": 19 + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "exportedSymbols": { + "IERC721": [ + 3411 + ], + "IERC721Metadata": [ + 3457 + ] + }, + "id": 3458, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3431, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "127:24:20" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "file": "../IERC721.sol", + "id": 3433, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3458, + "sourceUnit": 3412, + "src": "153:39:20", + "symbolAliases": [ + { + "foreign": { + "id": 3432, + "name": "IERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "161:7:20", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3435, + "name": "IERC721", + "nameLocations": [ + "357:7:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3411, + "src": "357:7:20" + }, + "id": 3436, + "nodeType": "InheritanceSpecifier", + "src": "357:7:20" + } + ], + "canonicalName": "IERC721Metadata", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 3434, + "nodeType": "StructuredDocumentation", + "src": "194:133:20", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 3457, + "linearizedBaseContracts": [ + 3457, + 3411, + 5562 + ], + "name": "IERC721Metadata", + "nameLocation": "338:15:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3437, + "nodeType": "StructuredDocumentation", + "src": "371:58:20", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 3442, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nameLocation": "443:4:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3438, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:20" + }, + "returnParameters": { + "id": 3441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3440, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3442, + "src": "473:13:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3439, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "473:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "472:15:20" + }, + "scope": 3457, + "src": "434:54:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3443, + "nodeType": "StructuredDocumentation", + "src": "494:60:20", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 3448, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nameLocation": "568:6:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3444, + "nodeType": "ParameterList", + "parameters": [], + "src": "574:2:20" + }, + "returnParameters": { + "id": 3447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3446, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3448, + "src": "600:13:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3445, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "600:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "599:15:20" + }, + "scope": 3457, + "src": "559:56:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 3449, + "nodeType": "StructuredDocumentation", + "src": "621:90:20", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 3456, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "725:8:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3451, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "742:7:20", + "nodeType": "VariableDeclaration", + "scope": 3456, + "src": "734:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "733:17:20" + }, + "returnParameters": { + "id": 3455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3454, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3456, + "src": "774:13:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "774:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "773:15:20" + }, + "scope": 3457, + "src": "716:73:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3458, + "src": "328:463:20", + "usedErrors": [], + "usedEvents": [ + 3310, + 3319, + 3328 + ] + } + ], + "src": "127:665:20" + }, + "id": 20 + }, + "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "exportedSymbols": { + "ERC721Holder": [ + 3484 + ], + "IERC721Receiver": [ + 3429 + ] + }, + "id": 3485, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3459, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "119:24:21" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "../IERC721Receiver.sol", + "id": 3461, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3485, + "sourceUnit": 3430, + "src": "145:55:21", + "symbolAliases": [ + { + "foreign": { + "id": 3460, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3429, + "src": "153:15:21", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 3463, + "name": "IERC721Receiver", + "nameLocations": [ + "475:15:21" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3429, + "src": "475:15:21" + }, + "id": 3464, + "nodeType": "InheritanceSpecifier", + "src": "475:15:21" + } + ], + "canonicalName": "ERC721Holder", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3462, + "nodeType": "StructuredDocumentation", + "src": "202:238:21", + "text": " @dev Implementation of the {IERC721Receiver} interface.\n Accepts all token transfers.\n Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or\n {IERC721-setApprovalForAll}." + }, + "fullyImplemented": true, + "id": 3484, + "linearizedBaseContracts": [ + 3484, + 3429 + ], + "name": "ERC721Holder", + "nameLocation": "459:12:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 3428 + ], + "body": { + "id": 3482, + "nodeType": "Block", + "src": "738:54:21", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 3478, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Holder_$3484", + "typeString": "contract ERC721Holder" + } + }, + "id": 3479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "760:16:21", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 3483, + "src": "755:21:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "777:8:21", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "755:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "functionReturnParameters": 3477, + "id": 3481, + "nodeType": "Return", + "src": "748:37:21" + } + ] + }, + "documentation": { + "id": 3465, + "nodeType": "StructuredDocumentation", + "src": "497:137:21", + "text": " @dev See {IERC721Receiver-onERC721Received}.\n Always returns `IERC721Receiver.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 3483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nameLocation": "648:16:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3483, + "src": "665:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "665:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3469, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3483, + "src": "674:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "674:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3471, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3483, + "src": "683:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "683:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3473, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3483, + "src": "692:12:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3472, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "664:41:21" + }, + "returnParameters": { + "id": 3477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3483, + "src": "730:6:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3475, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "730:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "729:8:21" + }, + "scope": 3484, + "src": "639:153:21", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 3485, + "src": "441:353:21", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "119:676:21" + }, + "id": 21 + }, + "@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol", + "exportedSymbols": { + "ERC721Utils": [ + 3561 + ], + "IERC721Errors": [ + 2286 + ], + "IERC721Receiver": [ + 3429 + ] + }, + "id": 3562, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3486, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "118:24:22" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "file": "../IERC721Receiver.sol", + "id": 3488, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3562, + "sourceUnit": 3430, + "src": "144:55:22", + "symbolAliases": [ + { + "foreign": { + "id": 3487, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3429, + "src": "152:15:22", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "file": "../../../interfaces/draft-IERC6093.sol", + "id": 3490, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3562, + "sourceUnit": 2334, + "src": "200:69:22", + "symbolAliases": [ + { + "foreign": { + "id": 3489, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2286, + "src": "208:13:22", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC721Utils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3491, + "nodeType": "StructuredDocumentation", + "src": "271:159:22", + "text": " @dev Library that provide common ERC-721 utility functions.\n See https://eips.ethereum.org/EIPS/eip-721[ERC-721].\n _Available since v5.1._" + }, + "fullyImplemented": true, + "id": 3561, + "linearizedBaseContracts": [ + 3561 + ], + "name": "ERC721Utils", + "nameLocation": "439:11:22", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3559, + "nodeType": "Block", + "src": "1159:758:22", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 3505, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "1173:2:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1176:4:22", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "1173:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1181:6:22", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1173:14:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1190:1:22", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1173:18:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3558, + "nodeType": "IfStatement", + "src": "1169:742:22", + "trueBody": { + "id": 3557, + "nodeType": "Block", + "src": "1193:718:22", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 3535, + "nodeType": "Block", + "src": "1303:214:22", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3522, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3520, + "src": "1325:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "expression": { + "id": 3523, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3429, + "src": "1335:15:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$3429_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1351:16:22", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 3428, + "src": "1335:32:22", + "typeDescriptions": { + "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", + "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" + } + }, + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1368:8:22", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "1335:41:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "1325:51:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3534, + "nodeType": "IfStatement", + "src": "1321:182:22", + "trueBody": { + "id": 3533, + "nodeType": "Block", + "src": "1378:125:22", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3530, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "1481:2:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3527, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2286, + "src": "1445:13:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Errors_$2286_$", + "typeString": "type(contract IERC721Errors)" + } + }, + "id": 3529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1459:21:22", + "memberName": "ERC721InvalidReceiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 2268, + "src": "1445:35:22", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1445:39:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3532, + "nodeType": "RevertStatement", + "src": "1438:46:22" + } + ] + } + } + ] + }, + "errorName": "", + "id": 3536, + "nodeType": "TryCatchClause", + "parameters": { + "id": 3521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3520, + "mutability": "mutable", + "name": "retval", + "nameLocation": "1295:6:22", + "nodeType": "VariableDeclaration", + "scope": 3536, + "src": "1288:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3519, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1288:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1287:15:22" + }, + "src": "1279:238:22" + }, + { + "block": { + "id": 3554, + "nodeType": "Block", + "src": "1546:355:22", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3540, + "name": "reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3538, + "src": "1568:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1575:6:22", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1568:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1585:1:22", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1568:18:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3552, + "nodeType": "Block", + "src": "1736:151:22", + "statements": [ + { + "AST": { + "nativeSrc": "1783:86:22", + "nodeType": "YulBlock", + "src": "1783:86:22", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1820:2:22", + "nodeType": "YulLiteral", + "src": "1820:2:22", + "type": "", + "value": "32" + }, + { + "name": "reason", + "nativeSrc": "1824:6:22", + "nodeType": "YulIdentifier", + "src": "1824:6:22" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1816:3:22", + "nodeType": "YulIdentifier", + "src": "1816:3:22" + }, + "nativeSrc": "1816:15:22", + "nodeType": "YulFunctionCall", + "src": "1816:15:22" + }, + { + "arguments": [ + { + "name": "reason", + "nativeSrc": "1839:6:22", + "nodeType": "YulIdentifier", + "src": "1839:6:22" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1833:5:22", + "nodeType": "YulIdentifier", + "src": "1833:5:22" + }, + "nativeSrc": "1833:13:22", + "nodeType": "YulFunctionCall", + "src": "1833:13:22" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1809:6:22", + "nodeType": "YulIdentifier", + "src": "1809:6:22" + }, + "nativeSrc": "1809:38:22", + "nodeType": "YulFunctionCall", + "src": "1809:38:22" + }, + "nativeSrc": "1809:38:22", + "nodeType": "YulExpressionStatement", + "src": "1809:38:22" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3538, + "isOffset": false, + "isSlot": false, + "src": "1824:6:22", + "valueSize": 1 + }, + { + "declaration": 3538, + "isOffset": false, + "isSlot": false, + "src": "1839:6:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 3551, + "nodeType": "InlineAssembly", + "src": "1758:111:22" + } + ] + }, + "id": 3553, + "nodeType": "IfStatement", + "src": "1564:323:22", + "trueBody": { + "id": 3550, + "nodeType": "Block", + "src": "1588:142:22", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3547, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "1708:2:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3544, + "name": "IERC721Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2286, + "src": "1672:13:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Errors_$2286_$", + "typeString": "type(contract IERC721Errors)" + } + }, + "id": 3546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1686:21:22", + "memberName": "ERC721InvalidReceiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 2268, + "src": "1672:35:22", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 3548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1672:39:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3549, + "nodeType": "RevertStatement", + "src": "1665:46:22" + } + ] + } + } + ] + }, + "errorName": "", + "id": 3555, + "nodeType": "TryCatchClause", + "parameters": { + "id": 3539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3538, + "mutability": "mutable", + "name": "reason", + "nameLocation": "1538:6:22", + "nodeType": "VariableDeclaration", + "scope": 3555, + "src": "1525:19:22", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3537, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1525:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1524:21:22" + }, + "src": "1518:383:22" + } + ], + "externalCall": { + "arguments": [ + { + "id": 3514, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3494, + "src": "1248:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3515, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3496, + "src": "1258:4:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3516, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3500, + "src": "1264:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3517, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3502, + "src": "1273:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 3511, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "1227:2:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3510, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3429, + "src": "1211:15:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$3429_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1211:19:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$3429", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1231:16:22", + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 3428, + "src": "1211:36:22", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1211:67:22", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 3556, + "nodeType": "TryStatement", + "src": "1207:694:22" + } + ] + } + } + ] + }, + "documentation": { + "id": 3492, + "nodeType": "StructuredDocumentation", + "src": "457:531:22", + "text": " @dev Performs an acceptance check for the provided `operator` by calling {IERC721Receiver-onERC721Received}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC721Receiver-onERC721Received} and return the acceptance magic value to accept\n the transfer." + }, + "id": 3560, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkOnERC721Received", + "nameLocation": "1002:21:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3494, + "mutability": "mutable", + "name": "operator", + "nameLocation": "1041:8:22", + "nodeType": "VariableDeclaration", + "scope": 3560, + "src": "1033:16:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1033:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3496, + "mutability": "mutable", + "name": "from", + "nameLocation": "1067:4:22", + "nodeType": "VariableDeclaration", + "scope": 3560, + "src": "1059:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3495, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1059:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3498, + "mutability": "mutable", + "name": "to", + "nameLocation": "1089:2:22", + "nodeType": "VariableDeclaration", + "scope": 3560, + "src": "1081:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1081:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3500, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1109:7:22", + "nodeType": "VariableDeclaration", + "scope": 3560, + "src": "1101:15:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1101:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3502, + "mutability": "mutable", + "name": "data", + "nameLocation": "1139:4:22", + "nodeType": "VariableDeclaration", + "scope": 3560, + "src": "1126:17:22", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1126:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1023:126:22" + }, + "returnParameters": { + "id": 3504, + "nodeType": "ParameterList", + "parameters": [], + "src": "1159:0:22" + }, + "scope": 3561, + "src": "993:924:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3562, + "src": "431:1488:22", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "118:1802:22" + }, + "id": 22 + }, + "@openzeppelin/contracts/utils/Address.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Address.sol", + "exportedSymbols": { + "Address": [ + 3821 + ], + "Errors": [ + 3972 + ] + }, + "id": 3822, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3563, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:23" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", + "file": "./Errors.sol", + "id": 3565, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3822, + "sourceUnit": 3973, + "src": "127:36:23", + "symbolAliases": [ + { + "foreign": { + "id": 3564, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "135:6:23", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Address", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3566, + "nodeType": "StructuredDocumentation", + "src": "165:67:23", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 3821, + "linearizedBaseContracts": [ + 3821 + ], + "name": "Address", + "nameLocation": "241:7:23", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3567, + "nodeType": "StructuredDocumentation", + "src": "255:75:23", + "text": " @dev There's no code at `target` (it is not a contract)." + }, + "errorSelector": "9996b315", + "id": 3571, + "name": "AddressEmptyCode", + "nameLocation": "341:16:23", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3569, + "mutability": "mutable", + "name": "target", + "nameLocation": "366:6:23", + "nodeType": "VariableDeclaration", + "scope": 3571, + "src": "358:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "358:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "357:16:23" + }, + "src": "335:39:23" + }, + { + "body": { + "id": 3618, + "nodeType": "Block", + "src": "1361:294:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3581, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1383:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + ], + "id": 3580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1375:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3579, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1375:7:23", + "typeDescriptions": {} + } + }, + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1375:13:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1389:7:23", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1375:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3584, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3576, + "src": "1399:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1375:30:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3598, + "nodeType": "IfStatement", + "src": "1371:125:23", + "trueBody": { + "id": 3597, + "nodeType": "Block", + "src": "1407:89:23", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 3591, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1463:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + ], + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1455:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3589, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1455:7:23", + "typeDescriptions": {} + } + }, + "id": 3592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1455:13:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1469:7:23", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1455:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3594, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3576, + "src": "1478:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3586, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "1428:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 3588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1435:19:23", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 3960, + "src": "1428:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 3595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1428:57:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3596, + "nodeType": "RevertStatement", + "src": "1421:64:23" + } + ] + } + }, + { + "assignments": [ + 3600, + 3602 + ], + "declarations": [ + { + "constant": false, + "id": 3600, + "mutability": "mutable", + "name": "success", + "nameLocation": "1512:7:23", + "nodeType": "VariableDeclaration", + "scope": 3618, + "src": "1507:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3599, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1507:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3602, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "1534:10:23", + "nodeType": "VariableDeclaration", + "scope": 3618, + "src": "1521:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3601, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1521:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3609, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 3607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1578:2:23", + "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": 3603, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3574, + "src": "1548:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1558:4:23", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "1548:14:23", + "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": 3606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3605, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3576, + "src": "1570:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "1548:29:23", + "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": 3608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1548:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1506:75:23" + }, + { + "condition": { + "id": 3611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1595:8:23", + "subExpression": { + "id": 3610, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "1596:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3617, + "nodeType": "IfStatement", + "src": "1591:58:23", + "trueBody": { + "id": 3616, + "nodeType": "Block", + "src": "1605:44:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3613, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3602, + "src": "1627:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3612, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "1619:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 3614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1619:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3615, + "nodeType": "ExpressionStatement", + "src": "1619:19:23" + } + ] + } + } + ] + }, + "documentation": { + "id": 3572, + "nodeType": "StructuredDocumentation", + "src": "380:905:23", + "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": 3619, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "1299:9:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3577, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3574, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "1325:9:23", + "nodeType": "VariableDeclaration", + "scope": 3619, + "src": "1309:25:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1309:15:23", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3576, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1344:6:23", + "nodeType": "VariableDeclaration", + "scope": 3619, + "src": "1336:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3575, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1336:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1308:43:23" + }, + "returnParameters": { + "id": 3578, + "nodeType": "ParameterList", + "parameters": [], + "src": "1361:0:23" + }, + "scope": 3821, + "src": "1290:365:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3635, + "nodeType": "Block", + "src": "2589:62:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3630, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3622, + "src": "2628:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3631, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3624, + "src": "2636:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 3632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2642:1:23", + "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": 3629, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3686, + "src": "2606:21:23", + "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": 3633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:38:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3628, + "id": 3634, + "nodeType": "Return", + "src": "2599:45:23" + } + ] + }, + "documentation": { + "id": 3620, + "nodeType": "StructuredDocumentation", + "src": "1661:834:23", + "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": 3636, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "2509:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3622, + "mutability": "mutable", + "name": "target", + "nameLocation": "2530:6:23", + "nodeType": "VariableDeclaration", + "scope": 3636, + "src": "2522:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2522:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3624, + "mutability": "mutable", + "name": "data", + "nameLocation": "2551:4:23", + "nodeType": "VariableDeclaration", + "scope": 3636, + "src": "2538:17:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3623, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2538:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2521:35:23" + }, + "returnParameters": { + "id": 3628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3627, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3636, + "src": "2575:12:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3626, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2575:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2574:14:23" + }, + "scope": 3821, + "src": "2500:151:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3685, + "nodeType": "Block", + "src": "3088:294:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3650, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3110:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + ], + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3102:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3102:7:23", + "typeDescriptions": {} + } + }, + "id": 3651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3102:13:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3116:7:23", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3102:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3653, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "3126:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3102:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3667, + "nodeType": "IfStatement", + "src": "3098:123:23", + "trueBody": { + "id": 3666, + "nodeType": "Block", + "src": "3133:88:23", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 3660, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3189:4:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$3821", + "typeString": "library Address" + } + ], + "id": 3659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3181:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3181:7:23", + "typeDescriptions": {} + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3181:13:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3195:7:23", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "3181:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3663, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "3204:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3655, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "3154:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 3657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3161:19:23", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 3960, + "src": "3154:26:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3154:56:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3665, + "nodeType": "RevertStatement", + "src": "3147:63:23" + } + ] + } + }, + { + "assignments": [ + 3669, + 3671 + ], + "declarations": [ + { + "constant": false, + "id": 3669, + "mutability": "mutable", + "name": "success", + "nameLocation": "3236:7:23", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "3231:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3668, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3231:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3671, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "3258:10:23", + "nodeType": "VariableDeclaration", + "scope": 3685, + "src": "3245:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3670, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3245:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3678, + "initialValue": { + "arguments": [ + { + "id": 3676, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "3298:4:23", + "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": 3672, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3639, + "src": "3272:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3279:4:23", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "3272:11:23", + "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": 3675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 3674, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3643, + "src": "3291:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "3272:25:23", + "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": 3677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3272:31:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3230:73:23" + }, + { + "expression": { + "arguments": [ + { + "id": 3680, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3639, + "src": "3347:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3681, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3669, + "src": "3355:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3682, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "3364:10:23", + "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": 3679, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3778, + "src": "3320:26:23", + "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": 3683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3320:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3647, + "id": 3684, + "nodeType": "Return", + "src": "3313:62:23" + } + ] + }, + "documentation": { + "id": 3637, + "nodeType": "StructuredDocumentation", + "src": "2657:313:23", + "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": 3686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "2984:21:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3639, + "mutability": "mutable", + "name": "target", + "nameLocation": "3014:6:23", + "nodeType": "VariableDeclaration", + "scope": 3686, + "src": "3006:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3006:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3641, + "mutability": "mutable", + "name": "data", + "nameLocation": "3035:4:23", + "nodeType": "VariableDeclaration", + "scope": 3686, + "src": "3022:17:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3640, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3022:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3643, + "mutability": "mutable", + "name": "value", + "nameLocation": "3049:5:23", + "nodeType": "VariableDeclaration", + "scope": 3686, + "src": "3041:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3041:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3005:50:23" + }, + "returnParameters": { + "id": 3647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3646, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3686, + "src": "3074:12:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3645, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3074:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3073:14:23" + }, + "scope": 3821, + "src": "2975:407:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3711, + "nodeType": "Block", + "src": "3621:154:23", + "statements": [ + { + "assignments": [ + 3697, + 3699 + ], + "declarations": [ + { + "constant": false, + "id": 3697, + "mutability": "mutable", + "name": "success", + "nameLocation": "3637:7:23", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "3632:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3696, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3632:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3699, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "3659:10:23", + "nodeType": "VariableDeclaration", + "scope": 3711, + "src": "3646:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3698, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3646:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3704, + "initialValue": { + "arguments": [ + { + "id": 3702, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3691, + "src": "3691:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3700, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "3673:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3680:10:23", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "3673:17:23", + "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": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3673:23:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3631:65:23" + }, + { + "expression": { + "arguments": [ + { + "id": 3706, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3689, + "src": "3740:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3707, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "3748:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3708, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3699, + "src": "3757:10:23", + "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": 3705, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3778, + "src": "3713:26:23", + "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": 3709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3713:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3695, + "id": 3710, + "nodeType": "Return", + "src": "3706:62:23" + } + ] + }, + "documentation": { + "id": 3687, + "nodeType": "StructuredDocumentation", + "src": "3388:128:23", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." + }, + "id": 3712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "3530:18:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3689, + "mutability": "mutable", + "name": "target", + "nameLocation": "3557:6:23", + "nodeType": "VariableDeclaration", + "scope": 3712, + "src": "3549:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3549:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3691, + "mutability": "mutable", + "name": "data", + "nameLocation": "3578:4:23", + "nodeType": "VariableDeclaration", + "scope": 3712, + "src": "3565:17:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3690, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3565:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3548:35:23" + }, + "returnParameters": { + "id": 3695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3694, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3712, + "src": "3607:12:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3693, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3607:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3606:14:23" + }, + "scope": 3821, + "src": "3521:254:23", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3737, + "nodeType": "Block", + "src": "4013:156:23", + "statements": [ + { + "assignments": [ + 3723, + 3725 + ], + "declarations": [ + { + "constant": false, + "id": 3723, + "mutability": "mutable", + "name": "success", + "nameLocation": "4029:7:23", + "nodeType": "VariableDeclaration", + "scope": 3737, + "src": "4024:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4024:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3725, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4051:10:23", + "nodeType": "VariableDeclaration", + "scope": 3737, + "src": "4038:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3724, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4038:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3730, + "initialValue": { + "arguments": [ + { + "id": 3728, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3717, + "src": "4085:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3726, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "4065:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4072:12:23", + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "4065:19:23", + "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": 3729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4065:25:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4023:67:23" + }, + { + "expression": { + "arguments": [ + { + "id": 3732, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "4134:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3733, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3723, + "src": "4142:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3734, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3725, + "src": "4151:10:23", + "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": 3731, + "name": "verifyCallResultFromTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3778, + "src": "4107:26:23", + "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": 3735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4107:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3721, + "id": 3736, + "nodeType": "Return", + "src": "4100:62:23" + } + ] + }, + "documentation": { + "id": 3713, + "nodeType": "StructuredDocumentation", + "src": "3781:130:23", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." + }, + "id": 3738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "3925:20:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3715, + "mutability": "mutable", + "name": "target", + "nameLocation": "3954:6:23", + "nodeType": "VariableDeclaration", + "scope": 3738, + "src": "3946:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3946:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3717, + "mutability": "mutable", + "name": "data", + "nameLocation": "3975:4:23", + "nodeType": "VariableDeclaration", + "scope": 3738, + "src": "3962:17:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3962:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3945:35:23" + }, + "returnParameters": { + "id": 3721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3720, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3738, + "src": "3999:12:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3999:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3998:14:23" + }, + "scope": 3821, + "src": "3916:253:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3777, + "nodeType": "Block", + "src": "4595:424:23", + "statements": [ + { + "condition": { + "id": 3751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4609:8:23", + "subExpression": { + "id": 3750, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3743, + "src": "4610:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3775, + "nodeType": "Block", + "src": "4669:344:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3757, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3745, + "src": "4857:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4868:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4857:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4878:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4857:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 3761, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3741, + "src": "4883:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4890:4:23", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4883:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4895:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4883:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4905:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4883:23:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4857:49:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3772, + "nodeType": "IfStatement", + "src": "4853:119:23", + "trueBody": { + "id": 3771, + "nodeType": "Block", + "src": "4908:64:23", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3768, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3741, + "src": "4950:6:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3767, + "name": "AddressEmptyCode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3571, + "src": "4933:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4933:24:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3770, + "nodeType": "RevertStatement", + "src": "4926:31:23" + } + ] + } + }, + { + "expression": { + "id": 3773, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3745, + "src": "4992:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3749, + "id": 3774, + "nodeType": "Return", + "src": "4985:17:23" + } + ] + }, + "id": 3776, + "nodeType": "IfStatement", + "src": "4605:408:23", + "trueBody": { + "id": 3756, + "nodeType": "Block", + "src": "4619:44:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3753, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3745, + "src": "4641:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3752, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "4633:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 3754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4633:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3755, + "nodeType": "ExpressionStatement", + "src": "4633:19:23" + } + ] + } + } + ] + }, + "documentation": { + "id": 3739, + "nodeType": "StructuredDocumentation", + "src": "4175:257:23", + "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": 3778, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResultFromTarget", + "nameLocation": "4446:26:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3741, + "mutability": "mutable", + "name": "target", + "nameLocation": "4490:6:23", + "nodeType": "VariableDeclaration", + "scope": 3778, + "src": "4482:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4482:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3743, + "mutability": "mutable", + "name": "success", + "nameLocation": "4511:7:23", + "nodeType": "VariableDeclaration", + "scope": 3778, + "src": "4506:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3742, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4506:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3745, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "4541:10:23", + "nodeType": "VariableDeclaration", + "scope": 3778, + "src": "4528:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3744, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4528:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4472:85:23" + }, + "returnParameters": { + "id": 3749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3748, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3778, + "src": "4581:12:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3747, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4581:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4580:14:23" + }, + "scope": 3821, + "src": "4437:582:23", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3799, + "nodeType": "Block", + "src": "5323:122:23", + "statements": [ + { + "condition": { + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5337:8:23", + "subExpression": { + "id": 3788, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "5338:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3797, + "nodeType": "Block", + "src": "5397:42:23", + "statements": [ + { + "expression": { + "id": 3795, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3783, + "src": "5418:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 3787, + "id": 3796, + "nodeType": "Return", + "src": "5411:17:23" + } + ] + }, + "id": 3798, + "nodeType": "IfStatement", + "src": "5333:106:23", + "trueBody": { + "id": 3794, + "nodeType": "Block", + "src": "5347:44:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3791, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3783, + "src": "5369:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3790, + "name": "_revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3820, + "src": "5361:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) pure" + } + }, + "id": 3792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5361:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3793, + "nodeType": "ExpressionStatement", + "src": "5361:19:23" + } + ] + } + } + ] + }, + "documentation": { + "id": 3779, + "nodeType": "StructuredDocumentation", + "src": "5025:191:23", + "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": 3800, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyCallResult", + "nameLocation": "5230:16:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3781, + "mutability": "mutable", + "name": "success", + "nameLocation": "5252:7:23", + "nodeType": "VariableDeclaration", + "scope": 3800, + "src": "5247:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3780, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5247:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3783, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5274:10:23", + "nodeType": "VariableDeclaration", + "scope": 3800, + "src": "5261:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3782, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5261:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5246:39:23" + }, + "returnParameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3786, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3800, + "src": "5309:12:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3785, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5309:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5308:14:23" + }, + "scope": 3821, + "src": "5221:224:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3819, + "nodeType": "Block", + "src": "5614:432:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3806, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3803, + "src": "5690:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5701:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5690:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5710:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5690:21:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3817, + "nodeType": "Block", + "src": "5989:51:23", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3812, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "6010:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 3814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6017:10:23", + "memberName": "FailedCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 3963, + "src": "6010:17:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6010:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3816, + "nodeType": "RevertStatement", + "src": "6003:26:23" + } + ] + }, + "id": 3818, + "nodeType": "IfStatement", + "src": "5686:354:23", + "trueBody": { + "id": 3811, + "nodeType": "Block", + "src": "5713:270:23", + "statements": [ + { + "AST": { + "nativeSrc": "5840:133:23", + "nodeType": "YulBlock", + "src": "5840:133:23", + "statements": [ + { + "nativeSrc": "5858:40:23", + "nodeType": "YulVariableDeclaration", + "src": "5858:40:23", + "value": { + "arguments": [ + { + "name": "returndata", + "nativeSrc": "5887:10:23", + "nodeType": "YulIdentifier", + "src": "5887:10:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5881:5:23", + "nodeType": "YulIdentifier", + "src": "5881:5:23" + }, + "nativeSrc": "5881:17:23", + "nodeType": "YulFunctionCall", + "src": "5881:17:23" + }, + "variables": [ + { + "name": "returndata_size", + "nativeSrc": "5862:15:23", + "nodeType": "YulTypedName", + "src": "5862:15:23", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5926:2:23", + "nodeType": "YulLiteral", + "src": "5926:2:23", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nativeSrc": "5930:10:23", + "nodeType": "YulIdentifier", + "src": "5930:10:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5922:3:23", + "nodeType": "YulIdentifier", + "src": "5922:3:23" + }, + "nativeSrc": "5922:19:23", + "nodeType": "YulFunctionCall", + "src": "5922:19:23" + }, + { + "name": "returndata_size", + "nativeSrc": "5943:15:23", + "nodeType": "YulIdentifier", + "src": "5943:15:23" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5915:6:23", + "nodeType": "YulIdentifier", + "src": "5915:6:23" + }, + "nativeSrc": "5915:44:23", + "nodeType": "YulFunctionCall", + "src": "5915:44:23" + }, + "nativeSrc": "5915:44:23", + "nodeType": "YulExpressionStatement", + "src": "5915:44:23" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3803, + "isOffset": false, + "isSlot": false, + "src": "5887:10:23", + "valueSize": 1 + }, + { + "declaration": 3803, + "isOffset": false, + "isSlot": false, + "src": "5930:10:23", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 3810, + "nodeType": "InlineAssembly", + "src": "5815:158:23" + } + ] + } + } + ] + }, + "documentation": { + "id": 3801, + "nodeType": "StructuredDocumentation", + "src": "5451:103:23", + "text": " @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}." + }, + "id": 3820, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revert", + "nameLocation": "5568:7:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3803, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5589:10:23", + "nodeType": "VariableDeclaration", + "scope": 3820, + "src": "5576:23:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3802, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5576:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5575:25:23" + }, + "returnParameters": { + "id": 3805, + "nodeType": "ParameterList", + "parameters": [], + "src": "5614:0:23" + }, + "scope": 3821, + "src": "5559:487:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3822, + "src": "233:5815:23", + "usedErrors": [ + 3571 + ], + "usedEvents": [] + } + ], + "src": "101:5948:23" + }, + "id": 23 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 3851 + ] + }, + "id": 3852, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3823, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:24" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 3824, + "nodeType": "StructuredDocumentation", + "src": "127:496:24", + "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": 3851, + "linearizedBaseContracts": [ + 3851 + ], + "name": "Context", + "nameLocation": "642:7:24", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3832, + "nodeType": "Block", + "src": "718:34:24", + "statements": [ + { + "expression": { + "expression": { + "id": 3829, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3828, + "id": 3831, + "nodeType": "Return", + "src": "728:17:24" + } + ] + }, + "id": 3833, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3825, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:24" + }, + "returnParameters": { + "id": 3828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3827, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3833, + "src": "709:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:24" + }, + "scope": 3851, + "src": "656:96:24", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3841, + "nodeType": "Block", + "src": "825:32:24", + "statements": [ + { + "expression": { + "expression": { + "id": 3838, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:24", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 3837, + "id": 3840, + "nodeType": "Return", + "src": "835:15:24" + } + ] + }, + "id": 3842, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3834, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:24" + }, + "returnParameters": { + "id": 3837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3836, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3842, + "src": "809:14:24", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3835, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:24" + }, + "scope": 3851, + "src": "758:99:24", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3849, + "nodeType": "Block", + "src": "935:25:24", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 3847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3846, + "id": 3848, + "nodeType": "Return", + "src": "945:8:24" + } + ] + }, + "id": 3850, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3843, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:24" + }, + "returnParameters": { + "id": 3846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3845, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3850, + "src": "926:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3844, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:24" + }, + "scope": 3851, + "src": "863:97:24", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3852, + "src": "624:338:24", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:24" + }, + "id": 24 + }, + "@openzeppelin/contracts/utils/Create2.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Create2.sol", + "exportedSymbols": { + "Create2": [ + 3950 + ], + "Errors": [ + 3972 + ] + }, + "id": 3951, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3853, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:25" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", + "file": "./Errors.sol", + "id": 3855, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 3951, + "sourceUnit": 3973, + "src": "127:36:25", + "symbolAliases": [ + { + "foreign": { + "id": 3854, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "135:6:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Create2", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3856, + "nodeType": "StructuredDocumentation", + "src": "165:367:25", + "text": " @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n `CREATE2` can be used to compute in advance the address where a smart\n contract will be deployed, which allows for interesting new mechanisms known\n as 'counterfactual interactions'.\n See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n information." + }, + "fullyImplemented": true, + "id": 3950, + "linearizedBaseContracts": [ + 3950 + ], + "name": "Create2", + "nameLocation": "541:7:25", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3857, + "nodeType": "StructuredDocumentation", + "src": "555:50:25", + "text": " @dev There's no code to deploy." + }, + "errorSelector": "4ca249dc", + "id": 3859, + "name": "Create2EmptyBytecode", + "nameLocation": "616:20:25", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3858, + "nodeType": "ParameterList", + "parameters": [], + "src": "636:2:25" + }, + "src": "610:29:25" + }, + { + "body": { + "id": 3914, + "nodeType": "Block", + "src": "1311:746:25", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3873, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1333:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Create2_$3950", + "typeString": "library Create2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Create2_$3950", + "typeString": "library Create2" + } + ], + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1325:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1325:7:25", + "typeDescriptions": {} + } + }, + "id": 3874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1325:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1339:7:25", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1325:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3876, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3862, + "src": "1349:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1325:30:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3890, + "nodeType": "IfStatement", + "src": "1321:125:25", + "trueBody": { + "id": 3889, + "nodeType": "Block", + "src": "1357:89:25", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 3883, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1413:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Create2_$3950", + "typeString": "library Create2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Create2_$3950", + "typeString": "library Create2" + } + ], + "id": 3882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1405:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3881, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:25", + "typeDescriptions": {} + } + }, + "id": 3884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1405:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1419:7:25", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "1405:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3886, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3862, + "src": "1428:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3878, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "1378:6:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1385:19:25", + "memberName": "InsufficientBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 3960, + "src": "1378:26:25", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 3887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1378:57:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3888, + "nodeType": "RevertStatement", + "src": "1371:64:25" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3891, + "name": "bytecode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3866, + "src": "1459:8:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1468:6:25", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1459:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1478:1:25", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1459:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3899, + "nodeType": "IfStatement", + "src": "1455:80:25", + "trueBody": { + "id": 3898, + "nodeType": "Block", + "src": "1481:54:25", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3895, + "name": "Create2EmptyBytecode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1502:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1502:22:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3897, + "nodeType": "RevertStatement", + "src": "1495:29:25" + } + ] + } + }, + { + "AST": { + "nativeSrc": "1569:392:25", + "nodeType": "YulBlock", + "src": "1569:392:25", + "statements": [ + { + "nativeSrc": "1583:67:25", + "nodeType": "YulAssignment", + "src": "1583:67:25", + "value": { + "arguments": [ + { + "name": "amount", + "nativeSrc": "1599:6:25", + "nodeType": "YulIdentifier", + "src": "1599:6:25" + }, + { + "arguments": [ + { + "name": "bytecode", + "nativeSrc": "1611:8:25", + "nodeType": "YulIdentifier", + "src": "1611:8:25" + }, + { + "kind": "number", + "nativeSrc": "1621:4:25", + "nodeType": "YulLiteral", + "src": "1621:4:25", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1607:3:25", + "nodeType": "YulIdentifier", + "src": "1607:3:25" + }, + "nativeSrc": "1607:19:25", + "nodeType": "YulFunctionCall", + "src": "1607:19:25" + }, + { + "arguments": [ + { + "name": "bytecode", + "nativeSrc": "1634:8:25", + "nodeType": "YulIdentifier", + "src": "1634:8:25" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1628:5:25", + "nodeType": "YulIdentifier", + "src": "1628:5:25" + }, + "nativeSrc": "1628:15:25", + "nodeType": "YulFunctionCall", + "src": "1628:15:25" + }, + { + "name": "salt", + "nativeSrc": "1645:4:25", + "nodeType": "YulIdentifier", + "src": "1645:4:25" + } + ], + "functionName": { + "name": "create2", + "nativeSrc": "1591:7:25", + "nodeType": "YulIdentifier", + "src": "1591:7:25" + }, + "nativeSrc": "1591:59:25", + "nodeType": "YulFunctionCall", + "src": "1591:59:25" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "1583:4:25", + "nodeType": "YulIdentifier", + "src": "1583:4:25" + } + ] + }, + { + "body": { + "nativeSrc": "1800:151:25", + "nodeType": "YulBlock", + "src": "1800:151:25", + "statements": [ + { + "nativeSrc": "1818:20:25", + "nodeType": "YulVariableDeclaration", + "src": "1818:20:25", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1833:4:25", + "nodeType": "YulLiteral", + "src": "1833:4:25", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1827:5:25", + "nodeType": "YulIdentifier", + "src": "1827:5:25" + }, + "nativeSrc": "1827:11:25", + "nodeType": "YulFunctionCall", + "src": "1827:11:25" + }, + "variables": [ + { + "name": "p", + "nativeSrc": "1822:1:25", + "nodeType": "YulTypedName", + "src": "1822:1:25", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "p", + "nativeSrc": "1870:1:25", + "nodeType": "YulIdentifier", + "src": "1870:1:25" + }, + { + "kind": "number", + "nativeSrc": "1873:1:25", + "nodeType": "YulLiteral", + "src": "1873:1:25", + "type": "", + "value": "0" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1876:14:25", + "nodeType": "YulIdentifier", + "src": "1876:14:25" + }, + "nativeSrc": "1876:16:25", + "nodeType": "YulFunctionCall", + "src": "1876:16:25" + } + ], + "functionName": { + "name": "returndatacopy", + "nativeSrc": "1855:14:25", + "nodeType": "YulIdentifier", + "src": "1855:14:25" + }, + "nativeSrc": "1855:38:25", + "nodeType": "YulFunctionCall", + "src": "1855:38:25" + }, + "nativeSrc": "1855:38:25", + "nodeType": "YulExpressionStatement", + "src": "1855:38:25" + }, + { + "expression": { + "arguments": [ + { + "name": "p", + "nativeSrc": "1917:1:25", + "nodeType": "YulIdentifier", + "src": "1917:1:25" + }, + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1920:14:25", + "nodeType": "YulIdentifier", + "src": "1920:14:25" + }, + "nativeSrc": "1920:16:25", + "nodeType": "YulFunctionCall", + "src": "1920:16:25" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1910:6:25", + "nodeType": "YulIdentifier", + "src": "1910:6:25" + }, + "nativeSrc": "1910:27:25", + "nodeType": "YulFunctionCall", + "src": "1910:27:25" + }, + "nativeSrc": "1910:27:25", + "nodeType": "YulExpressionStatement", + "src": "1910:27:25" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "addr", + "nativeSrc": "1762:4:25", + "nodeType": "YulIdentifier", + "src": "1762:4:25" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1755:6:25", + "nodeType": "YulIdentifier", + "src": "1755:6:25" + }, + "nativeSrc": "1755:12:25", + "nodeType": "YulFunctionCall", + "src": "1755:12:25" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "1780:14:25", + "nodeType": "YulIdentifier", + "src": "1780:14:25" + }, + "nativeSrc": "1780:16:25", + "nodeType": "YulFunctionCall", + "src": "1780:16:25" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1773:6:25", + "nodeType": "YulIdentifier", + "src": "1773:6:25" + }, + "nativeSrc": "1773:24:25", + "nodeType": "YulFunctionCall", + "src": "1773:24:25" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1769:3:25", + "nodeType": "YulIdentifier", + "src": "1769:3:25" + }, + "nativeSrc": "1769:29:25", + "nodeType": "YulFunctionCall", + "src": "1769:29:25" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1751:3:25", + "nodeType": "YulIdentifier", + "src": "1751:3:25" + }, + "nativeSrc": "1751:48:25", + "nodeType": "YulFunctionCall", + "src": "1751:48:25" + }, + "nativeSrc": "1748:203:25", + "nodeType": "YulIf", + "src": "1748:203:25" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3869, + "isOffset": false, + "isSlot": false, + "src": "1583:4:25", + "valueSize": 1 + }, + { + "declaration": 3869, + "isOffset": false, + "isSlot": false, + "src": "1762:4:25", + "valueSize": 1 + }, + { + "declaration": 3862, + "isOffset": false, + "isSlot": false, + "src": "1599:6:25", + "valueSize": 1 + }, + { + "declaration": 3866, + "isOffset": false, + "isSlot": false, + "src": "1611:8:25", + "valueSize": 1 + }, + { + "declaration": 3866, + "isOffset": false, + "isSlot": false, + "src": "1634:8:25", + "valueSize": 1 + }, + { + "declaration": 3864, + "isOffset": false, + "isSlot": false, + "src": "1645:4:25", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 3900, + "nodeType": "InlineAssembly", + "src": "1544:417:25" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3901, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "1974:4:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1990:1:25", + "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": 3903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1982:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1982:7:25", + "typeDescriptions": {} + } + }, + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1982:10:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1974:18:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3913, + "nodeType": "IfStatement", + "src": "1970:81:25", + "trueBody": { + "id": 3912, + "nodeType": "Block", + "src": "1994:57:25", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3907, + "name": "Errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3972, + "src": "2015:6:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Errors_$3972_$", + "typeString": "type(library Errors)" + } + }, + "id": 3909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2022:16:25", + "memberName": "FailedDeployment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3966, + "src": "2015:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2015:25:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3911, + "nodeType": "RevertStatement", + "src": "2008:32:25" + } + ] + } + } + ] + }, + "documentation": { + "id": 3860, + "nodeType": "StructuredDocumentation", + "src": "645:560:25", + "text": " @dev Deploys a contract using `CREATE2`. The address where the contract\n will be deployed can be known in advance via {computeAddress}.\n The bytecode for a contract can be obtained from Solidity with\n `type(contractName).creationCode`.\n Requirements:\n - `bytecode` must not be empty.\n - `salt` must have not been used for `bytecode` already.\n - the factory must have a balance of at least `amount`.\n - if `amount` is non-zero, `bytecode` must have a `payable` constructor." + }, + "id": 3915, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deploy", + "nameLocation": "1219:6:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3862, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1234:6:25", + "nodeType": "VariableDeclaration", + "scope": 3915, + "src": "1226:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1226:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3864, + "mutability": "mutable", + "name": "salt", + "nameLocation": "1250:4:25", + "nodeType": "VariableDeclaration", + "scope": 3915, + "src": "1242:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3863, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1242:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3866, + "mutability": "mutable", + "name": "bytecode", + "nameLocation": "1269:8:25", + "nodeType": "VariableDeclaration", + "scope": 3915, + "src": "1256:21:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3865, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1256:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1225:53:25" + }, + "returnParameters": { + "id": 3870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3869, + "mutability": "mutable", + "name": "addr", + "nameLocation": "1305:4:25", + "nodeType": "VariableDeclaration", + "scope": 3915, + "src": "1297:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1297:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1296:14:25" + }, + "scope": 3950, + "src": "1210:847:25", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3934, + "nodeType": "Block", + "src": "2353:73:25", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3926, + "name": "salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3918, + "src": "2385:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 3927, + "name": "bytecodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3920, + "src": "2391:12:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "id": 3930, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2413:4:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Create2_$3950", + "typeString": "library Create2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Create2_$3950", + "typeString": "library Create2" + } + ], + "id": 3929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2405:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2405:7:25", + "typeDescriptions": {} + } + }, + "id": 3931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2405:13:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3925, + "name": "computeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3935, + 3949 + ], + "referencedDeclaration": 3949, + "src": "2370:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$", + "typeString": "function (bytes32,bytes32,address) pure returns (address)" + } + }, + "id": 3932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2370:49:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3924, + "id": 3933, + "nodeType": "Return", + "src": "2363:56:25" + } + ] + }, + "documentation": { + "id": 3916, + "nodeType": "StructuredDocumentation", + "src": "2063:193:25", + "text": " @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n `bytecodeHash` or `salt` will result in a new destination address." + }, + "id": 3935, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "computeAddress", + "nameLocation": "2270:14:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3918, + "mutability": "mutable", + "name": "salt", + "nameLocation": "2293:4:25", + "nodeType": "VariableDeclaration", + "scope": 3935, + "src": "2285:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3917, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2285:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3920, + "mutability": "mutable", + "name": "bytecodeHash", + "nameLocation": "2307:12:25", + "nodeType": "VariableDeclaration", + "scope": 3935, + "src": "2299:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3919, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2299:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2284:36:25" + }, + "returnParameters": { + "id": 3924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3923, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3935, + "src": "2344:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3922, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2344:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2343:9:25" + }, + "scope": 3950, + "src": "2261:165:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3948, + "nodeType": "Block", + "src": "2784:1679:25", + "statements": [ + { + "AST": { + "nativeSrc": "2819:1638:25", + "nodeType": "YulBlock", + "src": "2819:1638:25", + "statements": [ + { + "nativeSrc": "2833:22:25", + "nodeType": "YulVariableDeclaration", + "src": "2833:22:25", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2850:4:25", + "nodeType": "YulLiteral", + "src": "2850:4:25", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2844:5:25", + "nodeType": "YulIdentifier", + "src": "2844:5:25" + }, + "nativeSrc": "2844:11:25", + "nodeType": "YulFunctionCall", + "src": "2844:11:25" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "2837:3:25", + "nodeType": "YulTypedName", + "src": "2837:3:25", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4057:3:25", + "nodeType": "YulIdentifier", + "src": "4057:3:25" + }, + { + "kind": "number", + "nativeSrc": "4062:4:25", + "nodeType": "YulLiteral", + "src": "4062:4:25", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4053:3:25", + "nodeType": "YulIdentifier", + "src": "4053:3:25" + }, + "nativeSrc": "4053:14:25", + "nodeType": "YulFunctionCall", + "src": "4053:14:25" + }, + { + "name": "bytecodeHash", + "nativeSrc": "4069:12:25", + "nodeType": "YulIdentifier", + "src": "4069:12:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4046:6:25", + "nodeType": "YulIdentifier", + "src": "4046:6:25" + }, + "nativeSrc": "4046:36:25", + "nodeType": "YulFunctionCall", + "src": "4046:36:25" + }, + "nativeSrc": "4046:36:25", + "nodeType": "YulExpressionStatement", + "src": "4046:36:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4106:3:25", + "nodeType": "YulIdentifier", + "src": "4106:3:25" + }, + { + "kind": "number", + "nativeSrc": "4111:4:25", + "nodeType": "YulLiteral", + "src": "4111:4:25", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4102:3:25", + "nodeType": "YulIdentifier", + "src": "4102:3:25" + }, + "nativeSrc": "4102:14:25", + "nodeType": "YulFunctionCall", + "src": "4102:14:25" + }, + { + "name": "salt", + "nativeSrc": "4118:4:25", + "nodeType": "YulIdentifier", + "src": "4118:4:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4095:6:25", + "nodeType": "YulIdentifier", + "src": "4095:6:25" + }, + "nativeSrc": "4095:28:25", + "nodeType": "YulFunctionCall", + "src": "4095:28:25" + }, + "nativeSrc": "4095:28:25", + "nodeType": "YulExpressionStatement", + "src": "4095:28:25" + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4143:3:25", + "nodeType": "YulIdentifier", + "src": "4143:3:25" + }, + { + "name": "deployer", + "nativeSrc": "4148:8:25", + "nodeType": "YulIdentifier", + "src": "4148:8:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4136:6:25", + "nodeType": "YulIdentifier", + "src": "4136:6:25" + }, + "nativeSrc": "4136:21:25", + "nodeType": "YulFunctionCall", + "src": "4136:21:25" + }, + "nativeSrc": "4136:21:25", + "nodeType": "YulExpressionStatement", + "src": "4136:21:25" + }, + { + "nativeSrc": "4219:27:25", + "nodeType": "YulVariableDeclaration", + "src": "4219:27:25", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4236:3:25", + "nodeType": "YulIdentifier", + "src": "4236:3:25" + }, + { + "kind": "number", + "nativeSrc": "4241:4:25", + "nodeType": "YulLiteral", + "src": "4241:4:25", + "type": "", + "value": "0x0b" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4232:3:25", + "nodeType": "YulIdentifier", + "src": "4232:3:25" + }, + "nativeSrc": "4232:14:25", + "nodeType": "YulFunctionCall", + "src": "4232:14:25" + }, + "variables": [ + { + "name": "start", + "nativeSrc": "4223:5:25", + "nodeType": "YulTypedName", + "src": "4223:5:25", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "4345:5:25", + "nodeType": "YulIdentifier", + "src": "4345:5:25" + }, + { + "kind": "number", + "nativeSrc": "4352:4:25", + "nodeType": "YulLiteral", + "src": "4352:4:25", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "4337:7:25", + "nodeType": "YulIdentifier", + "src": "4337:7:25" + }, + "nativeSrc": "4337:20:25", + "nodeType": "YulFunctionCall", + "src": "4337:20:25" + }, + "nativeSrc": "4337:20:25", + "nodeType": "YulExpressionStatement", + "src": "4337:20:25" + }, + { + "nativeSrc": "4370:77:25", + "nodeType": "YulAssignment", + "src": "4370:77:25", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "start", + "nativeSrc": "4392:5:25", + "nodeType": "YulIdentifier", + "src": "4392:5:25" + }, + { + "kind": "number", + "nativeSrc": "4399:2:25", + "nodeType": "YulLiteral", + "src": "4399:2:25", + "type": "", + "value": "85" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "4382:9:25", + "nodeType": "YulIdentifier", + "src": "4382:9:25" + }, + "nativeSrc": "4382:20:25", + "nodeType": "YulFunctionCall", + "src": "4382:20:25" + }, + { + "kind": "number", + "nativeSrc": "4404:42:25", + "nodeType": "YulLiteral", + "src": "4404:42:25", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4378:3:25", + "nodeType": "YulIdentifier", + "src": "4378:3:25" + }, + "nativeSrc": "4378:69:25", + "nodeType": "YulFunctionCall", + "src": "4378:69:25" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "4370:4:25", + "nodeType": "YulIdentifier", + "src": "4370:4:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 3945, + "isOffset": false, + "isSlot": false, + "src": "4370:4:25", + "valueSize": 1 + }, + { + "declaration": 3940, + "isOffset": false, + "isSlot": false, + "src": "4069:12:25", + "valueSize": 1 + }, + { + "declaration": 3942, + "isOffset": false, + "isSlot": false, + "src": "4148:8:25", + "valueSize": 1 + }, + { + "declaration": 3938, + "isOffset": false, + "isSlot": false, + "src": "4118:4:25", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 3947, + "nodeType": "InlineAssembly", + "src": "2794:1663:25" + } + ] + }, + "documentation": { + "id": 3936, + "nodeType": "StructuredDocumentation", + "src": "2432:232:25", + "text": " @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}." + }, + "id": 3949, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "computeAddress", + "nameLocation": "2678:14:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3938, + "mutability": "mutable", + "name": "salt", + "nameLocation": "2701:4:25", + "nodeType": "VariableDeclaration", + "scope": 3949, + "src": "2693:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3937, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2693:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3940, + "mutability": "mutable", + "name": "bytecodeHash", + "nameLocation": "2715:12:25", + "nodeType": "VariableDeclaration", + "scope": 3949, + "src": "2707:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3939, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2707:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3942, + "mutability": "mutable", + "name": "deployer", + "nameLocation": "2737:8:25", + "nodeType": "VariableDeclaration", + "scope": 3949, + "src": "2729:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2729:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2692:54:25" + }, + "returnParameters": { + "id": 3946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3945, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2778:4:25", + "nodeType": "VariableDeclaration", + "scope": 3949, + "src": "2770:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3944, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2770:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2769:14:25" + }, + "scope": 3950, + "src": "2669:1794:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3951, + "src": "533:3932:25", + "usedErrors": [ + 3859 + ], + "usedEvents": [] + } + ], + "src": "101:4365:25" + }, + "id": 25 + }, + "@openzeppelin/contracts/utils/Errors.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Errors.sol", + "exportedSymbols": { + "Errors": [ + 3972 + ] + }, + "id": 3973, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3952, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "100:24:26" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Errors", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3953, + "nodeType": "StructuredDocumentation", + "src": "126:284:26", + "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": 3972, + "linearizedBaseContracts": [ + 3972 + ], + "name": "Errors", + "nameLocation": "419:6:26", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 3954, + "nodeType": "StructuredDocumentation", + "src": "432:94:26", + "text": " @dev The ETH balance of the account is not enough to perform the operation." + }, + "errorSelector": "cf479181", + "id": 3960, + "name": "InsufficientBalance", + "nameLocation": "537:19:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3956, + "mutability": "mutable", + "name": "balance", + "nameLocation": "565:7:26", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "557:15:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "557:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3958, + "mutability": "mutable", + "name": "needed", + "nameLocation": "582:6:26", + "nodeType": "VariableDeclaration", + "scope": 3960, + "src": "574:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "574:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "556:33:26" + }, + "src": "531:59:26" + }, + { + "documentation": { + "id": 3961, + "nodeType": "StructuredDocumentation", + "src": "596:89:26", + "text": " @dev A call to an address target failed. The target may have reverted." + }, + "errorSelector": "d6bda275", + "id": 3963, + "name": "FailedCall", + "nameLocation": "696:10:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3962, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:2:26" + }, + "src": "690:19:26" + }, + { + "documentation": { + "id": 3964, + "nodeType": "StructuredDocumentation", + "src": "715:46:26", + "text": " @dev The deployment failed." + }, + "errorSelector": "b06ebf3d", + "id": 3966, + "name": "FailedDeployment", + "nameLocation": "772:16:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3965, + "nodeType": "ParameterList", + "parameters": [], + "src": "788:2:26" + }, + "src": "766:25:26" + }, + { + "documentation": { + "id": 3967, + "nodeType": "StructuredDocumentation", + "src": "797:58:26", + "text": " @dev A necessary precompile is missing." + }, + "errorSelector": "42b01bce", + "id": 3971, + "name": "MissingPrecompile", + "nameLocation": "866:17:26", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 3970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3969, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3971, + "src": "884:7:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "884:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "883:9:26" + }, + "src": "860:33:26" + } + ], + "scope": 3973, + "src": "411:484:26", + "usedErrors": [ + 3960, + 3963, + 3966, + 3971 + ], + "usedEvents": [] + } + ], + "src": "100:796:26" + }, + "id": 26 + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", + "exportedSymbols": { + "Panic": [ + 4024 + ] + }, + "id": 4025, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3974, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "99:24:27" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Panic", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3975, + "nodeType": "StructuredDocumentation", + "src": "125:489:27", + "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": 4024, + "linearizedBaseContracts": [ + 4024 + ], + "name": "Panic", + "nameLocation": "665:5:27", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 3976, + "nodeType": "StructuredDocumentation", + "src": "677:36:27", + "text": "@dev generic / unspecified error" + }, + "id": 3979, + "mutability": "constant", + "name": "GENERIC", + "nameLocation": "744:7:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "718:40:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783030", + "id": 3978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "754:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 3980, + "nodeType": "StructuredDocumentation", + "src": "764:37:27", + "text": "@dev used by the assert() builtin" + }, + "id": 3983, + "mutability": "constant", + "name": "ASSERT", + "nameLocation": "832:6:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "806:39:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "806:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783031", + "id": 3982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "841:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x01" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 3984, + "nodeType": "StructuredDocumentation", + "src": "851:41:27", + "text": "@dev arithmetic underflow or overflow" + }, + "id": 3987, + "mutability": "constant", + "name": "UNDER_OVERFLOW", + "nameLocation": "923:14:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "897:47:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "897:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783131", + "id": 3986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "940:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_17_by_1", + "typeString": "int_const 17" + }, + "value": "0x11" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 3988, + "nodeType": "StructuredDocumentation", + "src": "950:35:27", + "text": "@dev division or modulo by zero" + }, + "id": 3991, + "mutability": "constant", + "name": "DIVISION_BY_ZERO", + "nameLocation": "1016:16:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "990:49:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "990:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783132", + "id": 3990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1035:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "0x12" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 3992, + "nodeType": "StructuredDocumentation", + "src": "1045:30:27", + "text": "@dev enum conversion error" + }, + "id": 3995, + "mutability": "constant", + "name": "ENUM_CONVERSION_ERROR", + "nameLocation": "1106:21:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "1080:54:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1080:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783231", + "id": 3994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1130:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" + }, + "value": "0x21" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 3996, + "nodeType": "StructuredDocumentation", + "src": "1140:36:27", + "text": "@dev invalid encoding in storage" + }, + "id": 3999, + "mutability": "constant", + "name": "STORAGE_ENCODING_ERROR", + "nameLocation": "1207:22:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "1181:55:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1181:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783232", + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 4000, + "nodeType": "StructuredDocumentation", + "src": "1242:24:27", + "text": "@dev empty array pop" + }, + "id": 4003, + "mutability": "constant", + "name": "EMPTY_ARRAY_POP", + "nameLocation": "1297:15:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "1271:48:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1271:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783331", + "id": 4002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1315:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "0x31" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 4004, + "nodeType": "StructuredDocumentation", + "src": "1325:35:27", + "text": "@dev array out of bounds access" + }, + "id": 4007, + "mutability": "constant", + "name": "ARRAY_OUT_OF_BOUNDS", + "nameLocation": "1391:19:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "1365:52:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1365:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783332", + "id": 4006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1413:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "0x32" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 4008, + "nodeType": "StructuredDocumentation", + "src": "1423:65:27", + "text": "@dev resource error (too large allocation or too large array)" + }, + "id": 4011, + "mutability": "constant", + "name": "RESOURCE_ERROR", + "nameLocation": "1519:14:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "1493:47:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1493:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783431", + "id": 4010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1536:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "0x41" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 4012, + "nodeType": "StructuredDocumentation", + "src": "1546:42:27", + "text": "@dev calling invalid internal function" + }, + "id": 4015, + "mutability": "constant", + "name": "INVALID_INTERNAL_FUNCTION", + "nameLocation": "1619:25:27", + "nodeType": "VariableDeclaration", + "scope": 4024, + "src": "1593:58:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1593:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783531", + "id": 4014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1647:4:27", + "typeDescriptions": { + "typeIdentifier": "t_rational_81_by_1", + "typeString": "int_const 81" + }, + "value": "0x51" + }, + "visibility": "internal" + }, + { + "body": { + "id": 4022, + "nodeType": "Block", + "src": "1819:151:27", + "statements": [ + { + "AST": { + "nativeSrc": "1854:110:27", + "nodeType": "YulBlock", + "src": "1854:110:27", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1875:4:27", + "nodeType": "YulLiteral", + "src": "1875:4:27", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "1881:10:27", + "nodeType": "YulLiteral", + "src": "1881:10:27", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1868:6:27", + "nodeType": "YulIdentifier", + "src": "1868:6:27" + }, + "nativeSrc": "1868:24:27", + "nodeType": "YulFunctionCall", + "src": "1868:24:27" + }, + "nativeSrc": "1868:24:27", + "nodeType": "YulExpressionStatement", + "src": "1868:24:27" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1912:4:27", + "nodeType": "YulLiteral", + "src": "1912:4:27", + "type": "", + "value": "0x20" + }, + { + "name": "code", + "nativeSrc": "1918:4:27", + "nodeType": "YulIdentifier", + "src": "1918:4:27" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1905:6:27", + "nodeType": "YulIdentifier", + "src": "1905:6:27" + }, + "nativeSrc": "1905:18:27", + "nodeType": "YulFunctionCall", + "src": "1905:18:27" + }, + "nativeSrc": "1905:18:27", + "nodeType": "YulExpressionStatement", + "src": "1905:18:27" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1943:4:27", + "nodeType": "YulLiteral", + "src": "1943:4:27", + "type": "", + "value": "0x1c" + }, + { + "kind": "number", + "nativeSrc": "1949:4:27", + "nodeType": "YulLiteral", + "src": "1949:4:27", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1936:6:27", + "nodeType": "YulIdentifier", + "src": "1936:6:27" + }, + "nativeSrc": "1936:18:27", + "nodeType": "YulFunctionCall", + "src": "1936:18:27" + }, + "nativeSrc": "1936:18:27", + "nodeType": "YulExpressionStatement", + "src": "1936:18:27" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4018, + "isOffset": false, + "isSlot": false, + "src": "1918:4:27", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4021, + "nodeType": "InlineAssembly", + "src": "1829:135:27" + } + ] + }, + "documentation": { + "id": 4016, + "nodeType": "StructuredDocumentation", + "src": "1658:113:27", + "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes." + }, + "id": 4023, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "panic", + "nameLocation": "1785:5:27", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4018, + "mutability": "mutable", + "name": "code", + "nameLocation": "1799:4:27", + "nodeType": "VariableDeclaration", + "scope": 4023, + "src": "1791:12:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1791:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1790:14:27" + }, + "returnParameters": { + "id": 4020, + "nodeType": "ParameterList", + "parameters": [], + "src": "1819:0:27" + }, + "scope": 4024, + "src": "1776:194:27", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4025, + "src": "657:1315:27", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "99:1874:27" + }, + "id": 27 + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "exportedSymbols": { + "StorageSlot": [ + 4148 + ] + }, + "id": 4149, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4026, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "193:24:28" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "StorageSlot", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4027, + "nodeType": "StructuredDocumentation", + "src": "219:1187:28", + "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}." + }, + "fullyImplemented": true, + "id": 4148, + "linearizedBaseContracts": [ + 4148 + ], + "name": "StorageSlot", + "nameLocation": "1415:11:28", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "StorageSlot.AddressSlot", + "id": 4030, + "members": [ + { + "constant": false, + "id": 4029, + "mutability": "mutable", + "name": "value", + "nameLocation": "1470:5:28", + "nodeType": "VariableDeclaration", + "scope": 4030, + "src": "1462:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1462:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSlot", + "nameLocation": "1440:11:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1433:49:28", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BooleanSlot", + "id": 4033, + "members": [ + { + "constant": false, + "id": 4032, + "mutability": "mutable", + "name": "value", + "nameLocation": "1522:5:28", + "nodeType": "VariableDeclaration", + "scope": 4033, + "src": "1517:10:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4031, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1517:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "BooleanSlot", + "nameLocation": "1495:11:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1488:46:28", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Bytes32Slot", + "id": 4036, + "members": [ + { + "constant": false, + "id": 4035, + "mutability": "mutable", + "name": "value", + "nameLocation": "1577:5:28", + "nodeType": "VariableDeclaration", + "scope": 4036, + "src": "1569:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4034, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1569:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Slot", + "nameLocation": "1547:11:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1540:49:28", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Uint256Slot", + "id": 4039, + "members": [ + { + "constant": false, + "id": 4038, + "mutability": "mutable", + "name": "value", + "nameLocation": "1632:5:28", + "nodeType": "VariableDeclaration", + "scope": 4039, + "src": "1624:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1624:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Uint256Slot", + "nameLocation": "1602:11:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1595:49:28", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Int256Slot", + "id": 4042, + "members": [ + { + "constant": false, + "id": 4041, + "mutability": "mutable", + "name": "value", + "nameLocation": "1685:5:28", + "nodeType": "VariableDeclaration", + "scope": 4042, + "src": "1678:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4040, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1678:6:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "name": "Int256Slot", + "nameLocation": "1657:10:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1650:47:28", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.StringSlot", + "id": 4045, + "members": [ + { + "constant": false, + "id": 4044, + "mutability": "mutable", + "name": "value", + "nameLocation": "1738:5:28", + "nodeType": "VariableDeclaration", + "scope": 4045, + "src": "1731:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4043, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1731:6:28", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "StringSlot", + "nameLocation": "1710:10:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1703:47:28", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BytesSlot", + "id": 4048, + "members": [ + { + "constant": false, + "id": 4047, + "mutability": "mutable", + "name": "value", + "nameLocation": "1789:5:28", + "nodeType": "VariableDeclaration", + "scope": 4048, + "src": "1783:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4046, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1783:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "BytesSlot", + "nameLocation": "1763:9:28", + "nodeType": "StructDefinition", + "scope": 4148, + "src": "1756:45:28", + "visibility": "public" + }, + { + "body": { + "id": 4058, + "nodeType": "Block", + "src": "1983:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "2018:38:28", + "nodeType": "YulBlock", + "src": "2018:38:28", + "statements": [ + { + "nativeSrc": "2032:14:28", + "nodeType": "YulAssignment", + "src": "2032:14:28", + "value": { + "name": "slot", + "nativeSrc": "2042:4:28", + "nodeType": "YulIdentifier", + "src": "2042:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2032:6:28", + "nodeType": "YulIdentifier", + "src": "2032:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4055, + "isOffset": false, + "isSlot": true, + "src": "2032:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4051, + "isOffset": false, + "isSlot": false, + "src": "2042:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4057, + "nodeType": "InlineAssembly", + "src": "1993:63:28" + } + ] + }, + "documentation": { + "id": 4049, + "nodeType": "StructuredDocumentation", + "src": "1807:87:28", + "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." + }, + "id": 4059, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAddressSlot", + "nameLocation": "1908:14:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4051, + "mutability": "mutable", + "name": "slot", + "nameLocation": "1931:4:28", + "nodeType": "VariableDeclaration", + "scope": 4059, + "src": "1923:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4050, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1923:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1922:14:28" + }, + "returnParameters": { + "id": 4056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4055, + "mutability": "mutable", + "name": "r", + "nameLocation": "1980:1:28", + "nodeType": "VariableDeclaration", + "scope": 4059, + "src": "1960:21:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 4054, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4053, + "name": "AddressSlot", + "nameLocations": [ + "1960:11:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4030, + "src": "1960:11:28" + }, + "referencedDeclaration": 4030, + "src": "1960:11:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$4030_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1959:23:28" + }, + "scope": 4148, + "src": "1899:163:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4069, + "nodeType": "Block", + "src": "2243:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "2278:38:28", + "nodeType": "YulBlock", + "src": "2278:38:28", + "statements": [ + { + "nativeSrc": "2292:14:28", + "nodeType": "YulAssignment", + "src": "2292:14:28", + "value": { + "name": "slot", + "nativeSrc": "2302:4:28", + "nodeType": "YulIdentifier", + "src": "2302:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2292:6:28", + "nodeType": "YulIdentifier", + "src": "2292:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4066, + "isOffset": false, + "isSlot": true, + "src": "2292:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4062, + "isOffset": false, + "isSlot": false, + "src": "2302:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4068, + "nodeType": "InlineAssembly", + "src": "2253:63:28" + } + ] + }, + "documentation": { + "id": 4060, + "nodeType": "StructuredDocumentation", + "src": "2068:86:28", + "text": " @dev Returns a `BooleanSlot` with member `value` located at `slot`." + }, + "id": 4070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBooleanSlot", + "nameLocation": "2168:14:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4063, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4062, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2191:4:28", + "nodeType": "VariableDeclaration", + "scope": 4070, + "src": "2183:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4061, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2183:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2182:14:28" + }, + "returnParameters": { + "id": 4067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4066, + "mutability": "mutable", + "name": "r", + "nameLocation": "2240:1:28", + "nodeType": "VariableDeclaration", + "scope": 4070, + "src": "2220:21:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$4033_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + }, + "typeName": { + "id": 4065, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4064, + "name": "BooleanSlot", + "nameLocations": [ + "2220:11:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4033, + "src": "2220:11:28" + }, + "referencedDeclaration": 4033, + "src": "2220:11:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$4033_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2219:23:28" + }, + "scope": 4148, + "src": "2159:163:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4080, + "nodeType": "Block", + "src": "2503:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "2538:38:28", + "nodeType": "YulBlock", + "src": "2538:38:28", + "statements": [ + { + "nativeSrc": "2552:14:28", + "nodeType": "YulAssignment", + "src": "2552:14:28", + "value": { + "name": "slot", + "nativeSrc": "2562:4:28", + "nodeType": "YulIdentifier", + "src": "2562:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2552:6:28", + "nodeType": "YulIdentifier", + "src": "2552:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4077, + "isOffset": false, + "isSlot": true, + "src": "2552:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4073, + "isOffset": false, + "isSlot": false, + "src": "2562:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4079, + "nodeType": "InlineAssembly", + "src": "2513:63:28" + } + ] + }, + "documentation": { + "id": 4071, + "nodeType": "StructuredDocumentation", + "src": "2328:86:28", + "text": " @dev Returns a `Bytes32Slot` with member `value` located at `slot`." + }, + "id": 4081, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytes32Slot", + "nameLocation": "2428:14:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4073, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2451:4:28", + "nodeType": "VariableDeclaration", + "scope": 4081, + "src": "2443:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4072, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2443:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2442:14:28" + }, + "returnParameters": { + "id": 4078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4077, + "mutability": "mutable", + "name": "r", + "nameLocation": "2500:1:28", + "nodeType": "VariableDeclaration", + "scope": 4081, + "src": "2480:21:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$4036_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 4076, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4075, + "name": "Bytes32Slot", + "nameLocations": [ + "2480:11:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4036, + "src": "2480:11:28" + }, + "referencedDeclaration": 4036, + "src": "2480:11:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$4036_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2479:23:28" + }, + "scope": 4148, + "src": "2419:163:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4091, + "nodeType": "Block", + "src": "2763:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "2798:38:28", + "nodeType": "YulBlock", + "src": "2798:38:28", + "statements": [ + { + "nativeSrc": "2812:14:28", + "nodeType": "YulAssignment", + "src": "2812:14:28", + "value": { + "name": "slot", + "nativeSrc": "2822:4:28", + "nodeType": "YulIdentifier", + "src": "2822:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2812:6:28", + "nodeType": "YulIdentifier", + "src": "2812:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4088, + "isOffset": false, + "isSlot": true, + "src": "2812:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4084, + "isOffset": false, + "isSlot": false, + "src": "2822:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4090, + "nodeType": "InlineAssembly", + "src": "2773:63:28" + } + ] + }, + "documentation": { + "id": 4082, + "nodeType": "StructuredDocumentation", + "src": "2588:86:28", + "text": " @dev Returns a `Uint256Slot` with member `value` located at `slot`." + }, + "id": 4092, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUint256Slot", + "nameLocation": "2688:14:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4084, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2711:4:28", + "nodeType": "VariableDeclaration", + "scope": 4092, + "src": "2703:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2703:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2702:14:28" + }, + "returnParameters": { + "id": 4089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4088, + "mutability": "mutable", + "name": "r", + "nameLocation": "2760:1:28", + "nodeType": "VariableDeclaration", + "scope": 4092, + "src": "2740:21:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$4039_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 4087, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4086, + "name": "Uint256Slot", + "nameLocations": [ + "2740:11:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4039, + "src": "2740:11:28" + }, + "referencedDeclaration": 4039, + "src": "2740:11:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$4039_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2739:23:28" + }, + "scope": 4148, + "src": "2679:163:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4102, + "nodeType": "Block", + "src": "3020:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "3055:38:28", + "nodeType": "YulBlock", + "src": "3055:38:28", + "statements": [ + { + "nativeSrc": "3069:14:28", + "nodeType": "YulAssignment", + "src": "3069:14:28", + "value": { + "name": "slot", + "nativeSrc": "3079:4:28", + "nodeType": "YulIdentifier", + "src": "3079:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3069:6:28", + "nodeType": "YulIdentifier", + "src": "3069:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4099, + "isOffset": false, + "isSlot": true, + "src": "3069:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4095, + "isOffset": false, + "isSlot": false, + "src": "3079:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4101, + "nodeType": "InlineAssembly", + "src": "3030:63:28" + } + ] + }, + "documentation": { + "id": 4093, + "nodeType": "StructuredDocumentation", + "src": "2848:85:28", + "text": " @dev Returns a `Int256Slot` with member `value` located at `slot`." + }, + "id": 4103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getInt256Slot", + "nameLocation": "2947:13:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4095, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2969:4:28", + "nodeType": "VariableDeclaration", + "scope": 4103, + "src": "2961:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4094, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2961:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2960:14:28" + }, + "returnParameters": { + "id": 4100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4099, + "mutability": "mutable", + "name": "r", + "nameLocation": "3017:1:28", + "nodeType": "VariableDeclaration", + "scope": 4103, + "src": "2998:20:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Int256Slot_$4042_storage_ptr", + "typeString": "struct StorageSlot.Int256Slot" + }, + "typeName": { + "id": 4098, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4097, + "name": "Int256Slot", + "nameLocations": [ + "2998:10:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4042, + "src": "2998:10:28" + }, + "referencedDeclaration": 4042, + "src": "2998:10:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Int256Slot_$4042_storage_ptr", + "typeString": "struct StorageSlot.Int256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2997:22:28" + }, + "scope": 4148, + "src": "2938:161:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4113, + "nodeType": "Block", + "src": "3277:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "3312:38:28", + "nodeType": "YulBlock", + "src": "3312:38:28", + "statements": [ + { + "nativeSrc": "3326:14:28", + "nodeType": "YulAssignment", + "src": "3326:14:28", + "value": { + "name": "slot", + "nativeSrc": "3336:4:28", + "nodeType": "YulIdentifier", + "src": "3336:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3326:6:28", + "nodeType": "YulIdentifier", + "src": "3326:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4110, + "isOffset": false, + "isSlot": true, + "src": "3326:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4106, + "isOffset": false, + "isSlot": false, + "src": "3336:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4112, + "nodeType": "InlineAssembly", + "src": "3287:63:28" + } + ] + }, + "documentation": { + "id": 4104, + "nodeType": "StructuredDocumentation", + "src": "3105:85:28", + "text": " @dev Returns a `StringSlot` with member `value` located at `slot`." + }, + "id": 4114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3204:13:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4106, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3226:4:28", + "nodeType": "VariableDeclaration", + "scope": 4114, + "src": "3218:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4105, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3218:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3217:14:28" + }, + "returnParameters": { + "id": 4111, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4110, + "mutability": "mutable", + "name": "r", + "nameLocation": "3274:1:28", + "nodeType": "VariableDeclaration", + "scope": 4114, + "src": "3255:20:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$4045_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 4109, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4108, + "name": "StringSlot", + "nameLocations": [ + "3255:10:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4045, + "src": "3255:10:28" + }, + "referencedDeclaration": 4045, + "src": "3255:10:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$4045_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3254:22:28" + }, + "scope": 4148, + "src": "3195:161:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4124, + "nodeType": "Block", + "src": "3558:85:28", + "statements": [ + { + "AST": { + "nativeSrc": "3593:44:28", + "nodeType": "YulBlock", + "src": "3593:44:28", + "statements": [ + { + "nativeSrc": "3607:20:28", + "nodeType": "YulAssignment", + "src": "3607:20:28", + "value": { + "name": "store.slot", + "nativeSrc": "3617:10:28", + "nodeType": "YulIdentifier", + "src": "3617:10:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3607:6:28", + "nodeType": "YulIdentifier", + "src": "3607:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4121, + "isOffset": false, + "isSlot": true, + "src": "3607:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4117, + "isOffset": false, + "isSlot": true, + "src": "3617:10:28", + "suffix": "slot", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4123, + "nodeType": "InlineAssembly", + "src": "3568:69:28" + } + ] + }, + "documentation": { + "id": 4115, + "nodeType": "StructuredDocumentation", + "src": "3362:101:28", + "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." + }, + "id": 4125, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3477:13:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4117, + "mutability": "mutable", + "name": "store", + "nameLocation": "3506:5:28", + "nodeType": "VariableDeclaration", + "scope": 4125, + "src": "3491:20:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3491:6:28", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3490:22:28" + }, + "returnParameters": { + "id": 4122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4121, + "mutability": "mutable", + "name": "r", + "nameLocation": "3555:1:28", + "nodeType": "VariableDeclaration", + "scope": 4125, + "src": "3536:20:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$4045_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 4120, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4119, + "name": "StringSlot", + "nameLocations": [ + "3536:10:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4045, + "src": "3536:10:28" + }, + "referencedDeclaration": 4045, + "src": "3536:10:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$4045_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3535:22:28" + }, + "scope": 4148, + "src": "3468:175:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4135, + "nodeType": "Block", + "src": "3818:79:28", + "statements": [ + { + "AST": { + "nativeSrc": "3853:38:28", + "nodeType": "YulBlock", + "src": "3853:38:28", + "statements": [ + { + "nativeSrc": "3867:14:28", + "nodeType": "YulAssignment", + "src": "3867:14:28", + "value": { + "name": "slot", + "nativeSrc": "3877:4:28", + "nodeType": "YulIdentifier", + "src": "3877:4:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3867:6:28", + "nodeType": "YulIdentifier", + "src": "3867:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4132, + "isOffset": false, + "isSlot": true, + "src": "3867:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4128, + "isOffset": false, + "isSlot": false, + "src": "3877:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4134, + "nodeType": "InlineAssembly", + "src": "3828:63:28" + } + ] + }, + "documentation": { + "id": 4126, + "nodeType": "StructuredDocumentation", + "src": "3649:84:28", + "text": " @dev Returns a `BytesSlot` with member `value` located at `slot`." + }, + "id": 4136, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3747:12:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4128, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3768:4:28", + "nodeType": "VariableDeclaration", + "scope": 4136, + "src": "3760:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4127, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3760:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3759:14:28" + }, + "returnParameters": { + "id": 4133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4132, + "mutability": "mutable", + "name": "r", + "nameLocation": "3815:1:28", + "nodeType": "VariableDeclaration", + "scope": 4136, + "src": "3797:19:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$4048_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 4131, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4130, + "name": "BytesSlot", + "nameLocations": [ + "3797:9:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4048, + "src": "3797:9:28" + }, + "referencedDeclaration": 4048, + "src": "3797:9:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$4048_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3796:21:28" + }, + "scope": 4148, + "src": "3738:159:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4146, + "nodeType": "Block", + "src": "4094:85:28", + "statements": [ + { + "AST": { + "nativeSrc": "4129:44:28", + "nodeType": "YulBlock", + "src": "4129:44:28", + "statements": [ + { + "nativeSrc": "4143:20:28", + "nodeType": "YulAssignment", + "src": "4143:20:28", + "value": { + "name": "store.slot", + "nativeSrc": "4153:10:28", + "nodeType": "YulIdentifier", + "src": "4153:10:28" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "4143:6:28", + "nodeType": "YulIdentifier", + "src": "4143:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4143, + "isOffset": false, + "isSlot": true, + "src": "4143:6:28", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4139, + "isOffset": false, + "isSlot": true, + "src": "4153:10:28", + "suffix": "slot", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4145, + "nodeType": "InlineAssembly", + "src": "4104:69:28" + } + ] + }, + "documentation": { + "id": 4137, + "nodeType": "StructuredDocumentation", + "src": "3903:99:28", + "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." + }, + "id": 4147, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "4016:12:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4139, + "mutability": "mutable", + "name": "store", + "nameLocation": "4043:5:28", + "nodeType": "VariableDeclaration", + "scope": 4147, + "src": "4029:19:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4138, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4029:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4028:21:28" + }, + "returnParameters": { + "id": 4144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4143, + "mutability": "mutable", + "name": "r", + "nameLocation": "4091:1:28", + "nodeType": "VariableDeclaration", + "scope": 4147, + "src": "4073:19:28", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$4048_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 4142, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4141, + "name": "BytesSlot", + "nameLocations": [ + "4073:9:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4048, + "src": "4073:9:28" + }, + "referencedDeclaration": 4048, + "src": "4073:9:28", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$4048_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "4072:21:28" + }, + "scope": 4148, + "src": "4007:172:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4149, + "src": "1407:2774:28", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "193:3989:28" + }, + "id": 28 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 7183 + ], + "SafeCast": [ + 8948 + ], + "SignedMath": [ + 9092 + ], + "Strings": [ + 5550 + ] + }, + "id": 5551, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4150, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:29" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 4152, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5551, + "sourceUnit": 7184, + "src": "127:37:29", + "symbolAliases": [ + { + "foreign": { + "id": 4151, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "135:4:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./math/SafeCast.sol", + "id": 4154, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5551, + "sourceUnit": 8949, + "src": "165:45:29", + "symbolAliases": [ + { + "foreign": { + "id": 4153, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "173:8:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 4156, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5551, + "sourceUnit": 9093, + "src": "211:49:29", + "symbolAliases": [ + { + "foreign": { + "id": 4155, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9092, + "src": "219:10:29", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4157, + "nodeType": "StructuredDocumentation", + "src": "262:34:29", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 5550, + "linearizedBaseContracts": [ + 5550 + ], + "name": "Strings", + "nameLocation": "305:7:29", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 4159, + "libraryName": { + "id": 4158, + "name": "SafeCast", + "nameLocations": [ + "325:8:29" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8948, + "src": "325:8:29" + }, + "nodeType": "UsingForDirective", + "src": "319:21:29" + }, + { + "constant": true, + "id": 4162, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "371:10:29", + "nodeType": "VariableDeclaration", + "scope": 5550, + "src": "346:56:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 4160, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "346:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 4161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "384:18:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 4165, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "431:14:29", + "nodeType": "VariableDeclaration", + "scope": 5550, + "src": "408:42:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4163, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "408:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 4164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "448:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 4201, + "mutability": "constant", + "name": "SPECIAL_CHARS_LOOKUP", + "nameLocation": "481:20:29", + "nodeType": "VariableDeclaration", + "scope": 5550, + "src": "456:302:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "456:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_4951760157141521116776380160_by_1", + "typeString": "int_const 4951760157141521116776380160" + }, + "id": 4200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_17179883264_by_1", + "typeString": "int_const 17179883264" + }, + "id": 4195, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_14080_by_1", + "typeString": "int_const 14080" + }, + "id": 4190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_5888_by_1", + "typeString": "int_const 5888" + }, + "id": 4185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_1792_by_1", + "typeString": "int_const 1792" + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_768_by_1", + "typeString": "int_const 768" + }, + "id": 4175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "id": 4169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "513:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783038", + "id": 4168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "src": "513:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + } + ], + "id": 4170, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "512:11:29", + "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": 4173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "552:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783039", + "id": 4172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "557:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "0x09" + }, + "src": "552:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + } + } + ], + "id": 4174, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "551:11:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + } + }, + "src": "512:50:29", + "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": 4178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "585:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783061", + "id": 4177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "590:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "0x0a" + }, + "src": "585:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + } + } + ], + "id": 4179, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "584:11:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + } + }, + "src": "512:83:29", + "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": 4183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "622:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783063", + "id": 4182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "627:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "0x0c" + }, + "src": "622:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + } + } + ], + "id": 4184, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "621:11:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + } + }, + "src": "512:120:29", + "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": 4188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "661:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783064", + "id": 4187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "666:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "0x0d" + }, + "src": "661:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + } + } + ], + "id": 4189, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "660:11:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + } + }, + "src": "512:159:29", + "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": 4193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "706:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783232", + "id": 4192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "src": "706:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + } + } + ], + "id": 4194, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "705:11:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + } + }, + "src": "512:204:29", + "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": 4198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 4196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "748:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783563", + "id": 4197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "753:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "0x5c" + }, + "src": "748:9:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + } + } + ], + "id": 4199, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "747:11:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + } + }, + "src": "512:246:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521116776380160_by_1", + "typeString": "int_const 4951760157141521116776380160" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 4202, + "nodeType": "StructuredDocumentation", + "src": "778:81:29", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 4208, + "name": "StringsInsufficientHexLength", + "nameLocation": "870:28:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4204, + "mutability": "mutable", + "name": "value", + "nameLocation": "907:5:29", + "nodeType": "VariableDeclaration", + "scope": 4208, + "src": "899:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "899:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "mutability": "mutable", + "name": "length", + "nameLocation": "922:6:29", + "nodeType": "VariableDeclaration", + "scope": 4208, + "src": "914:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "914:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "898:31:29" + }, + "src": "864:66:29" + }, + { + "documentation": { + "id": 4209, + "nodeType": "StructuredDocumentation", + "src": "936:108:29", + "text": " @dev The string being parsed contains characters that are not in scope of the given base." + }, + "errorSelector": "94e2737e", + "id": 4211, + "name": "StringsInvalidChar", + "nameLocation": "1055:18:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4210, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:2:29" + }, + "src": "1049:27:29" + }, + { + "documentation": { + "id": 4212, + "nodeType": "StructuredDocumentation", + "src": "1082:84:29", + "text": " @dev The string being parsed is not a properly formatted address." + }, + "errorSelector": "1d15ae44", + "id": 4214, + "name": "StringsInvalidAddressFormat", + "nameLocation": "1177:27:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4213, + "nodeType": "ParameterList", + "parameters": [], + "src": "1204:2:29" + }, + "src": "1171:36:29" + }, + { + "body": { + "id": 4261, + "nodeType": "Block", + "src": "1379:561:29", + "statements": [ + { + "id": 4260, + "nodeType": "UncheckedBlock", + "src": "1389:545:29", + "statements": [ + { + "assignments": [ + 4223 + ], + "declarations": [ + { + "constant": false, + "id": 4223, + "mutability": "mutable", + "name": "length", + "nameLocation": "1421:6:29", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "1413:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4222, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1413:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4230, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4226, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4217, + "src": "1441:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4224, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "1430:4:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$7183_$", + "typeString": "type(library Math)" + } + }, + "id": 4225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1435:5:29", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 7015, + "src": "1430:10:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1430:17:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1450:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1430:21:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1413:38:29" + }, + { + "assignments": [ + 4232 + ], + "declarations": [ + { + "constant": false, + "id": 4232, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1479:6:29", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "1465:20:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4231, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1465:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 4237, + "initialValue": { + "arguments": [ + { + "id": 4235, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "1499:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1488:10:29", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 4233, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1492:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 4236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1488:18:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1465:41:29" + }, + { + "assignments": [ + 4239 + ], + "declarations": [ + { + "constant": false, + "id": 4239, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "1528:3:29", + "nodeType": "VariableDeclaration", + "scope": 4260, + "src": "1520:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1520:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4240, + "nodeType": "VariableDeclarationStatement", + "src": "1520:11:29" + }, + { + "AST": { + "nativeSrc": "1570:67:29", + "nodeType": "YulBlock", + "src": "1570:67:29", + "statements": [ + { + "nativeSrc": "1588:35:29", + "nodeType": "YulAssignment", + "src": "1588:35:29", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "1599:6:29", + "nodeType": "YulIdentifier", + "src": "1599:6:29" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1611:2:29", + "nodeType": "YulLiteral", + "src": "1611:2:29", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "1615:6:29", + "nodeType": "YulIdentifier", + "src": "1615:6:29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1607:3:29", + "nodeType": "YulIdentifier", + "src": "1607:3:29" + }, + "nativeSrc": "1607:15:29", + "nodeType": "YulFunctionCall", + "src": "1607:15:29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1595:3:29", + "nodeType": "YulIdentifier", + "src": "1595:3:29" + }, + "nativeSrc": "1595:28:29", + "nodeType": "YulFunctionCall", + "src": "1595:28:29" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "1588:3:29", + "nodeType": "YulIdentifier", + "src": "1588:3:29" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4232, + "isOffset": false, + "isSlot": false, + "src": "1599:6:29", + "valueSize": 1 + }, + { + "declaration": 4223, + "isOffset": false, + "isSlot": false, + "src": "1615:6:29", + "valueSize": 1 + }, + { + "declaration": 4239, + "isOffset": false, + "isSlot": false, + "src": "1588:3:29", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4241, + "nodeType": "InlineAssembly", + "src": "1545:92:29" + }, + { + "body": { + "id": 4256, + "nodeType": "Block", + "src": "1663:234:29", + "statements": [ + { + "expression": { + "id": 4244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1681:5:29", + "subExpression": { + "id": 4243, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4239, + "src": "1681:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4245, + "nodeType": "ExpressionStatement", + "src": "1681:5:29" + }, + { + "AST": { + "nativeSrc": "1729:86:29", + "nodeType": "YulBlock", + "src": "1729:86:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1759:3:29", + "nodeType": "YulIdentifier", + "src": "1759:3:29" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1773:5:29", + "nodeType": "YulIdentifier", + "src": "1773:5:29" + }, + { + "kind": "number", + "nativeSrc": "1780:2:29", + "nodeType": "YulLiteral", + "src": "1780:2:29", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1769:3:29", + "nodeType": "YulIdentifier", + "src": "1769:3:29" + }, + "nativeSrc": "1769:14:29", + "nodeType": "YulFunctionCall", + "src": "1769:14:29" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1785:10:29", + "nodeType": "YulIdentifier", + "src": "1785:10:29" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1764:4:29", + "nodeType": "YulIdentifier", + "src": "1764:4:29" + }, + "nativeSrc": "1764:32:29", + "nodeType": "YulFunctionCall", + "src": "1764:32:29" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1751:7:29", + "nodeType": "YulIdentifier", + "src": "1751:7:29" + }, + "nativeSrc": "1751:46:29", + "nodeType": "YulFunctionCall", + "src": "1751:46:29" + }, + "nativeSrc": "1751:46:29", + "nodeType": "YulExpressionStatement", + "src": "1751:46:29" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4162, + "isOffset": false, + "isSlot": false, + "src": "1785:10:29", + "valueSize": 1 + }, + { + "declaration": 4239, + "isOffset": false, + "isSlot": false, + "src": "1759:3:29", + "valueSize": 1 + }, + { + "declaration": 4217, + "isOffset": false, + "isSlot": false, + "src": "1773:5:29", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4246, + "nodeType": "InlineAssembly", + "src": "1704:111:29" + }, + { + "expression": { + "id": 4249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4217, + "src": "1832:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 4248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1841:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1832:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4250, + "nodeType": "ExpressionStatement", + "src": "1832:11:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4251, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4217, + "src": "1865:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 4252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1874:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1865:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4255, + "nodeType": "IfStatement", + "src": "1861:21:29", + "trueBody": { + "id": 4254, + "nodeType": "Break", + "src": "1877:5:29" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 4242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 4257, + "nodeType": "WhileStatement", + "src": "1650:247:29" + }, + { + "expression": { + "id": 4258, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4232, + "src": "1917:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4221, + "id": 4259, + "nodeType": "Return", + "src": "1910:13:29" + } + ] + } + ] + }, + "documentation": { + "id": 4215, + "nodeType": "StructuredDocumentation", + "src": "1213:90:29", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 4262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "1317:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4217, + "mutability": "mutable", + "name": "value", + "nameLocation": "1334:5:29", + "nodeType": "VariableDeclaration", + "scope": 4262, + "src": "1326:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1326:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1325:15:29" + }, + "returnParameters": { + "id": 4221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4262, + "src": "1364:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4219, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1364:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1363:15:29" + }, + "scope": 5550, + "src": "1308:632:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4287, + "nodeType": "Block", + "src": "2116:92:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 4275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4273, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4265, + "src": "2147:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 4274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2155:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2147:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 4277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2165:2:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 4278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2147:20:29", + "trueExpression": { + "hexValue": "2d", + "id": 4276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2159:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 4282, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4265, + "src": "2193:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 4280, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9092, + "src": "2178:10:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$9092_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2189:3:29", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 9091, + "src": "2178:14:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 4283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2178:21:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4279, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4262, + "src": "2169:8:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 4284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2169:31:29", + "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": 4271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2133:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 4270, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2133:6:29", + "typeDescriptions": {} + } + }, + "id": 4272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2140:6:29", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2133:13:29", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 4285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2133:68:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4269, + "id": 4286, + "nodeType": "Return", + "src": "2126:75:29" + } + ] + }, + "documentation": { + "id": 4263, + "nodeType": "StructuredDocumentation", + "src": "1946:89:29", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 4288, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "2049:14:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4265, + "mutability": "mutable", + "name": "value", + "nameLocation": "2071:5:29", + "nodeType": "VariableDeclaration", + "scope": 4288, + "src": "2064:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4264, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2064:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "2063:14:29" + }, + "returnParameters": { + "id": 4269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4268, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4288, + "src": "2101:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4267, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2101:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2100:15:29" + }, + "scope": 5550, + "src": "2040:168:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4307, + "nodeType": "Block", + "src": "2387:100:29", + "statements": [ + { + "id": 4306, + "nodeType": "UncheckedBlock", + "src": "2397:84:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4297, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4291, + "src": "2440:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 4300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4291, + "src": "2459:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4298, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "2447:4:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$7183_$", + "typeString": "type(library Math)" + } + }, + "id": 4299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2452:6:29", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 7126, + "src": "2447:11:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 4301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2447:18:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2447:22:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4296, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4308, + 4391, + 4411 + ], + "referencedDeclaration": 4391, + "src": "2428:11:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 4304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2428:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4295, + "id": 4305, + "nodeType": "Return", + "src": "2421:49:29" + } + ] + } + ] + }, + "documentation": { + "id": 4289, + "nodeType": "StructuredDocumentation", + "src": "2214:94:29", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 4308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2322:11:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4291, + "mutability": "mutable", + "name": "value", + "nameLocation": "2342:5:29", + "nodeType": "VariableDeclaration", + "scope": 4308, + "src": "2334:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:15:29" + }, + "returnParameters": { + "id": 4295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4294, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4308, + "src": "2372:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4293, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2372:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2371:15:29" + }, + "scope": 5550, + "src": "2313:174:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4390, + "nodeType": "Block", + "src": "2700:435:29", + "statements": [ + { + "assignments": [ + 4319 + ], + "declarations": [ + { + "constant": false, + "id": 4319, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2718:10:29", + "nodeType": "VariableDeclaration", + "scope": 4390, + "src": "2710:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4318, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2710:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4321, + "initialValue": { + "id": 4320, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4311, + "src": "2731:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2710:26:29" + }, + { + "assignments": [ + 4323 + ], + "declarations": [ + { + "constant": false, + "id": 4323, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2759:6:29", + "nodeType": "VariableDeclaration", + "scope": 4390, + "src": "2746:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4322, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2746:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 4332, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2778:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4327, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4313, + "src": "2782:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2778:10:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 4329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2791:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2778:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2768:9:29", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 4324, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2772:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 4331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2768:25:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2746:47:29" + }, + { + "expression": { + "id": 4337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4333, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4323, + "src": "2803:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4335, + "indexExpression": { + "hexValue": "30", + "id": 4334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2810:1:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 4336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2815:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2803:15:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 4338, + "nodeType": "ExpressionStatement", + "src": "2803:15:29" + }, + { + "expression": { + "id": 4343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4339, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4323, + "src": "2828:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4341, + "indexExpression": { + "hexValue": "31", + "id": 4340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2835:1:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 4342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2840:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2828:15:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 4344, + "nodeType": "ExpressionStatement", + "src": "2828:15:29" + }, + { + "body": { + "id": 4373, + "nodeType": "Block", + "src": "2898:95:29", + "statements": [ + { + "expression": { + "id": 4367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4359, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4323, + "src": "2912:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4361, + "indexExpression": { + "id": 4360, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4346, + "src": "2919:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2912:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 4362, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4162, + "src": "2924:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 4366, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4363, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4319, + "src": "2935:10:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 4364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2948:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2935:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2924:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2912:40:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 4368, + "nodeType": "ExpressionStatement", + "src": "2912:40:29" + }, + { + "expression": { + "id": 4371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4369, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4319, + "src": "2966:10:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 4370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2981:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2966:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4372, + "nodeType": "ExpressionStatement", + "src": "2966:16:29" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4353, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4346, + "src": "2886:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 4354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2890:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2886:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4374, + "initializationExpression": { + "assignments": [ + 4346 + ], + "declarations": [ + { + "constant": false, + "id": 4346, + "mutability": "mutable", + "name": "i", + "nameLocation": "2866:1:29", + "nodeType": "VariableDeclaration", + "scope": 4374, + "src": "2858:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2858:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4352, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2870:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 4348, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4313, + "src": "2874:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:10:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2883:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2870:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2858:26:29" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2893:3:29", + "subExpression": { + "id": 4356, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4346, + "src": "2895:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4358, + "nodeType": "ExpressionStatement", + "src": "2893:3:29" + }, + "nodeType": "ForStatement", + "src": "2853:140:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4375, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4319, + "src": "3006:10:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 4376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3020:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3006:15:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4384, + "nodeType": "IfStatement", + "src": "3002:96:29", + "trueBody": { + "id": 4383, + "nodeType": "Block", + "src": "3023:75:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 4379, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4311, + "src": "3073:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4380, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4313, + "src": "3080:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4378, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4208, + "src": "3044:28:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 4381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3044:43:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4382, + "nodeType": "RevertStatement", + "src": "3037:50:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4387, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4323, + "src": "3121:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3114:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 4385, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3114:6:29", + "typeDescriptions": {} + } + }, + "id": 4388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3114:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4317, + "id": 4389, + "nodeType": "Return", + "src": "3107:21:29" + } + ] + }, + "documentation": { + "id": 4309, + "nodeType": "StructuredDocumentation", + "src": "2493:112:29", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 4391, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2619:11:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4311, + "mutability": "mutable", + "name": "value", + "nameLocation": "2639:5:29", + "nodeType": "VariableDeclaration", + "scope": 4391, + "src": "2631:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2631:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4313, + "mutability": "mutable", + "name": "length", + "nameLocation": "2654:6:29", + "nodeType": "VariableDeclaration", + "scope": 4391, + "src": "2646:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2646:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2630:31:29" + }, + "returnParameters": { + "id": 4317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4391, + "src": "2685:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4315, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2685:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2684:15:29" + }, + "scope": 5550, + "src": "2610:525:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4410, + "nodeType": "Block", + "src": "3367:75:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 4404, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "3412:4:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3404:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 4402, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "3404:7:29", + "typeDescriptions": {} + } + }, + "id": 4405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3404:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 4401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3396:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3396:7:29", + "typeDescriptions": {} + } + }, + "id": 4406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3396:22:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4407, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "3420:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 4399, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4308, + 4391, + 4411 + ], + "referencedDeclaration": 4391, + "src": "3384:11:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 4408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3384:51:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4398, + "id": 4409, + "nodeType": "Return", + "src": "3377:58:29" + } + ] + }, + "documentation": { + "id": 4392, + "nodeType": "StructuredDocumentation", + "src": "3141:148:29", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 4411, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "3303:11:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4394, + "mutability": "mutable", + "name": "addr", + "nameLocation": "3323:4:29", + "nodeType": "VariableDeclaration", + "scope": 4411, + "src": "3315:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3315:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3314:14:29" + }, + "returnParameters": { + "id": 4398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4397, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4411, + "src": "3352:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4396, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3351:15:29" + }, + "scope": 5550, + "src": "3294:148:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4475, + "nodeType": "Block", + "src": "3699:642:29", + "statements": [ + { + "assignments": [ + 4420 + ], + "declarations": [ + { + "constant": false, + "id": 4420, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "3722:6:29", + "nodeType": "VariableDeclaration", + "scope": 4475, + "src": "3709:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4419, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3709:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 4427, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 4424, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4414, + "src": "3749:4:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4423, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4308, + 4391, + 4411 + ], + "referencedDeclaration": 4411, + "src": "3737:11:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", + "typeString": "function (address) pure returns (string memory)" + } + }, + "id": 4425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3737:17:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3731:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4421, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3731:5:29", + "typeDescriptions": {} + } + }, + "id": 4426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3731:24:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3709:46:29" + }, + { + "assignments": [ + 4429 + ], + "declarations": [ + { + "constant": false, + "id": 4429, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "3848:9:29", + "nodeType": "VariableDeclaration", + "scope": 4475, + "src": "3840:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3840:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4430, + "nodeType": "VariableDeclarationStatement", + "src": "3840:17:29" + }, + { + "AST": { + "nativeSrc": "3892:78:29", + "nodeType": "YulBlock", + "src": "3892:78:29", + "statements": [ + { + "nativeSrc": "3906:54:29", + "nodeType": "YulAssignment", + "src": "3906:54:29", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3923:2:29", + "nodeType": "YulLiteral", + "src": "3923:2:29", + "type": "", + "value": "96" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "3941:6:29", + "nodeType": "YulIdentifier", + "src": "3941:6:29" + }, + { + "kind": "number", + "nativeSrc": "3949:4:29", + "nodeType": "YulLiteral", + "src": "3949:4:29", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3937:3:29", + "nodeType": "YulIdentifier", + "src": "3937:3:29" + }, + "nativeSrc": "3937:17:29", + "nodeType": "YulFunctionCall", + "src": "3937:17:29" + }, + { + "kind": "number", + "nativeSrc": "3956:2:29", + "nodeType": "YulLiteral", + "src": "3956:2:29", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3927:9:29", + "nodeType": "YulIdentifier", + "src": "3927:9:29" + }, + "nativeSrc": "3927:32:29", + "nodeType": "YulFunctionCall", + "src": "3927:32:29" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3919:3:29", + "nodeType": "YulIdentifier", + "src": "3919:3:29" + }, + "nativeSrc": "3919:41:29", + "nodeType": "YulFunctionCall", + "src": "3919:41:29" + }, + "variableNames": [ + { + "name": "hashValue", + "nativeSrc": "3906:9:29", + "nodeType": "YulIdentifier", + "src": "3906:9:29" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4420, + "isOffset": false, + "isSlot": false, + "src": "3941:6:29", + "valueSize": 1 + }, + { + "declaration": 4429, + "isOffset": false, + "isSlot": false, + "src": "3906:9:29", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 4431, + "nodeType": "InlineAssembly", + "src": "3867:103:29" + }, + { + "body": { + "id": 4468, + "nodeType": "Block", + "src": "4013:291:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4442, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4429, + "src": "4119:9:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 4443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4131:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "4119:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "37", + "id": 4445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4137:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "4119:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "baseExpression": { + "id": 4449, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4420, + "src": "4148:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4451, + "indexExpression": { + "id": 4450, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4433, + "src": "4155:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4148:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 4448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4142:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 4447, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4142:5:29", + "typeDescriptions": {} + } + }, + "id": 4452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4142:16:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3936", + "id": 4453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4161:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "4142:21:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4119:44:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4463, + "nodeType": "IfStatement", + "src": "4115:150:29", + "trueBody": { + "id": 4462, + "nodeType": "Block", + "src": "4165:100:29", + "statements": [ + { + "expression": { + "id": 4460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 4456, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4420, + "src": "4233:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4458, + "indexExpression": { + "id": 4457, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4433, + "src": "4240:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4233:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "^=", + "rightHandSide": { + "hexValue": "30783230", + "id": 4459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4246:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4233:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 4461, + "nodeType": "ExpressionStatement", + "src": "4233:17:29" + } + ] + } + }, + { + "expression": { + "id": 4466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4464, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4429, + "src": "4278:9:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 4465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4292:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "4278:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4467, + "nodeType": "ExpressionStatement", + "src": "4278:15:29" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4436, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4433, + "src": "4001:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 4437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4005:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4001:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4469, + "initializationExpression": { + "assignments": [ + 4433 + ], + "declarations": [ + { + "constant": false, + "id": 4433, + "mutability": "mutable", + "name": "i", + "nameLocation": "3993:1:29", + "nodeType": "VariableDeclaration", + "scope": 4469, + "src": "3985:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4435, + "initialValue": { + "hexValue": "3431", + "id": 4434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3997:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_41_by_1", + "typeString": "int_const 41" + }, + "value": "41" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3985:14:29" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 4440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "4008:3:29", + "subExpression": { + "id": 4439, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4433, + "src": "4010:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4441, + "nodeType": "ExpressionStatement", + "src": "4008:3:29" + }, + "nodeType": "ForStatement", + "src": "3980:324:29" + }, + { + "expression": { + "arguments": [ + { + "id": 4472, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4420, + "src": "4327:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4320:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 4470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4320:6:29", + "typeDescriptions": {} + } + }, + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4320:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 4418, + "id": 4474, + "nodeType": "Return", + "src": "4313:21:29" + } + ] + }, + "documentation": { + "id": 4412, + "nodeType": "StructuredDocumentation", + "src": "3448:165:29", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n representation, according to EIP-55." + }, + "id": 4476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toChecksumHexString", + "nameLocation": "3627:19:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4414, + "mutability": "mutable", + "name": "addr", + "nameLocation": "3655:4:29", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "3647:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3647:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3646:14:29" + }, + "returnParameters": { + "id": 4418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4417, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4476, + "src": "3684:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4416, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3684:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3683:15:29" + }, + "scope": 5550, + "src": "3618:723:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4512, + "nodeType": "Block", + "src": "4496:104:29", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 4488, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4479, + "src": "4519:1:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4513:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4486, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4513:5:29", + "typeDescriptions": {} + } + }, + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4513:8:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4522:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4513:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4493, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4481, + "src": "4538:1:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4532:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4491, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4532:5:29", + "typeDescriptions": {} + } + }, + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4532:8:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4541:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4532:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4513:34:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 4500, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4479, + "src": "4567:1:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4561:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4498, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4561:5:29", + "typeDescriptions": {} + } + }, + "id": 4501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4561:8:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4497, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4551:9:29", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4551:19:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 4506, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4481, + "src": "4590:1:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4584:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4504, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4584:5:29", + "typeDescriptions": {} + } + }, + "id": 4507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4584:8:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 4503, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4574:9:29", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 4508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4574:19:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4551:42:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4513:80:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4485, + "id": 4511, + "nodeType": "Return", + "src": "4506:87:29" + } + ] + }, + "documentation": { + "id": 4477, + "nodeType": "StructuredDocumentation", + "src": "4347:66:29", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 4513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "4427:5:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4479, + "mutability": "mutable", + "name": "a", + "nameLocation": "4447:1:29", + "nodeType": "VariableDeclaration", + "scope": 4513, + "src": "4433:15:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4478, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4433:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4481, + "mutability": "mutable", + "name": "b", + "nameLocation": "4464:1:29", + "nodeType": "VariableDeclaration", + "scope": 4513, + "src": "4450:15:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4480, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4450:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4432:34:29" + }, + "returnParameters": { + "id": 4485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4484, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4513, + "src": "4490:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4483, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4490:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4489:6:29" + }, + "scope": 5550, + "src": "4418:182:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4531, + "nodeType": "Block", + "src": "4897:64:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4522, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4516, + "src": "4924:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 4523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4931:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 4526, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4516, + "src": "4940:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4934:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4524, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4934:5:29", + "typeDescriptions": {} + } + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4934:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4947:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4934:19:29", + "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": 4521, + "name": "parseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4532, + 4563 + ], + "referencedDeclaration": 4563, + "src": "4914:9:29", + "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": 4529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4914:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4520, + "id": 4530, + "nodeType": "Return", + "src": "4907:47:29" + } + ] + }, + "documentation": { + "id": 4514, + "nodeType": "StructuredDocumentation", + "src": "4606:214:29", + "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": 4532, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseUint", + "nameLocation": "4834:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4516, + "mutability": "mutable", + "name": "input", + "nameLocation": "4858:5:29", + "nodeType": "VariableDeclaration", + "scope": 4532, + "src": "4844:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4515, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4844:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4843:21:29" + }, + "returnParameters": { + "id": 4520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4519, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4532, + "src": "4888:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4888:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4887:9:29" + }, + "scope": 5550, + "src": "4825:136:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4562, + "nodeType": "Block", + "src": "5366:153:29", + "statements": [ + { + "assignments": [ + 4545, + 4547 + ], + "declarations": [ + { + "constant": false, + "id": 4545, + "mutability": "mutable", + "name": "success", + "nameLocation": "5382:7:29", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "5377:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4544, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5377:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4547, + "mutability": "mutable", + "name": "value", + "nameLocation": "5399:5:29", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "5391:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5391:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4553, + "initialValue": { + "arguments": [ + { + "id": 4549, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4535, + "src": "5421:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4550, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4537, + "src": "5428:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4551, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4539, + "src": "5435:3:29", + "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": 4548, + "name": "tryParseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4584, + 4621 + ], + "referencedDeclaration": 4621, + "src": "5408:12:29", + "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": 4552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5408:31:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5376:63:29" + }, + { + "condition": { + "id": 4555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5453:8:29", + "subExpression": { + "id": 4554, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4545, + "src": "5454:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4559, + "nodeType": "IfStatement", + "src": "5449:41:29", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4556, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "5470:18:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5470:20:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4558, + "nodeType": "RevertStatement", + "src": "5463:27:29" + } + }, + { + "expression": { + "id": 4560, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4547, + "src": "5507:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4543, + "id": 4561, + "nodeType": "Return", + "src": "5500:12:29" + } + ] + }, + "documentation": { + "id": 4533, + "nodeType": "StructuredDocumentation", + "src": "4967:294:29", + "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": 4563, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseUint", + "nameLocation": "5275:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4535, + "mutability": "mutable", + "name": "input", + "nameLocation": "5299:5:29", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "5285:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4534, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5285:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4537, + "mutability": "mutable", + "name": "begin", + "nameLocation": "5314:5:29", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "5306:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5306:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4539, + "mutability": "mutable", + "name": "end", + "nameLocation": "5329:3:29", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "5321:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5321:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5284:49:29" + }, + "returnParameters": { + "id": 4543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4542, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4563, + "src": "5357:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4541, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5357:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5356:9:29" + }, + "scope": 5550, + "src": "5266:253:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4583, + "nodeType": "Block", + "src": "5840:83:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4574, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4566, + "src": "5886:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 4575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5893:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 4578, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4566, + "src": "5902:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5896:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4576, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5896:5:29", + "typeDescriptions": {} + } + }, + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5896:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5909:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5896:19:29", + "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": 4573, + "name": "_tryParseUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4691, + "src": "5857:28:29", + "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": 4581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5857:59:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 4572, + "id": 4582, + "nodeType": "Return", + "src": "5850:66:29" + } + ] + }, + "documentation": { + "id": 4564, + "nodeType": "StructuredDocumentation", + "src": "5525:215:29", + "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": 4584, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseUint", + "nameLocation": "5754:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4566, + "mutability": "mutable", + "name": "input", + "nameLocation": "5781:5:29", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "5767:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4565, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5767:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5766:21:29" + }, + "returnParameters": { + "id": 4572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4569, + "mutability": "mutable", + "name": "success", + "nameLocation": "5816:7:29", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "5811:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5811:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4571, + "mutability": "mutable", + "name": "value", + "nameLocation": "5833:5:29", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "5825:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5825:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5810:29:29" + }, + "scope": 5550, + "src": "5745:178:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4620, + "nodeType": "Block", + "src": "6325:144:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4598, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4591, + "src": "6339:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4601, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4587, + "src": "6351:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6345:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4599, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6345:5:29", + "typeDescriptions": {} + } + }, + "id": 4602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6345:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6358:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6345:19:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6339:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4605, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4589, + "src": "6368:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 4606, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4591, + "src": "6376:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6368:11:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6339:40:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4613, + "nodeType": "IfStatement", + "src": "6335:63:29", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 4609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6389:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 4610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6396:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 4611, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6388:10:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 4597, + "id": 4612, + "nodeType": "Return", + "src": "6381:17:29" + } + }, + { + "expression": { + "arguments": [ + { + "id": 4615, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4587, + "src": "6444:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4616, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4589, + "src": "6451:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4617, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4591, + "src": "6458:3:29", + "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": 4614, + "name": "_tryParseUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4691, + "src": "6415:28:29", + "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": 4618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6415:47:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 4597, + "id": 4619, + "nodeType": "Return", + "src": "6408:54:29" + } + ] + }, + "documentation": { + "id": 4585, + "nodeType": "StructuredDocumentation", + "src": "5929:238:29", + "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": 4621, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseUint", + "nameLocation": "6181:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4587, + "mutability": "mutable", + "name": "input", + "nameLocation": "6217:5:29", + "nodeType": "VariableDeclaration", + "scope": 4621, + "src": "6203:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4586, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6203:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "begin", + "nameLocation": "6240:5:29", + "nodeType": "VariableDeclaration", + "scope": 4621, + "src": "6232:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4588, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4591, + "mutability": "mutable", + "name": "end", + "nameLocation": "6263:3:29", + "nodeType": "VariableDeclaration", + "scope": 4621, + "src": "6255:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6255:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6193:79:29" + }, + "returnParameters": { + "id": 4597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "success", + "nameLocation": "6301:7:29", + "nodeType": "VariableDeclaration", + "scope": 4621, + "src": "6296:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4593, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6296:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4596, + "mutability": "mutable", + "name": "value", + "nameLocation": "6318:5:29", + "nodeType": "VariableDeclaration", + "scope": 4621, + "src": "6310:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6310:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6295:29:29" + }, + "scope": 5550, + "src": "6172:297:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4690, + "nodeType": "Block", + "src": "6872:347:29", + "statements": [ + { + "assignments": [ + 4636 + ], + "declarations": [ + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "6895:6:29", + "nodeType": "VariableDeclaration", + "scope": 4690, + "src": "6882:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4635, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6882:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 4641, + "initialValue": { + "arguments": [ + { + "id": 4639, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4624, + "src": "6910:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6904:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6904:5:29", + "typeDescriptions": {} + } + }, + "id": 4640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6904:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6882:34:29" + }, + { + "assignments": [ + 4643 + ], + "declarations": [ + { + "constant": false, + "id": 4643, + "mutability": "mutable", + "name": "result", + "nameLocation": "6935:6:29", + "nodeType": "VariableDeclaration", + "scope": 4690, + "src": "6927:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6927:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4645, + "initialValue": { + "hexValue": "30", + "id": 4644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6944:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6927:18:29" + }, + { + "body": { + "id": 4684, + "nodeType": "Block", + "src": "6993:189:29", + "statements": [ + { + "assignments": [ + 4657 + ], + "declarations": [ + { + "constant": false, + "id": 4657, + "mutability": "mutable", + "name": "chr", + "nameLocation": "7013:3:29", + "nodeType": "VariableDeclaration", + "scope": 4684, + "src": "7007:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4656, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7007:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 4667, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 4662, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4636, + "src": "7062:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 4663, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4647, + "src": "7070:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4661, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5549, + "src": "7039:22:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 4664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7039:33:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7032:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 4659, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "7032:6:29", + "typeDescriptions": {} + } + }, + "id": 4665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7032:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 4658, + "name": "_tryParseChr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5371, + "src": "7019:12:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$", + "typeString": "function (bytes1) pure returns (uint8)" + } + }, + "id": 4666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7019:55:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7007:67:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 4670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4668, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4657, + "src": "7092:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "39", + "id": 4669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7098:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "7092:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4675, + "nodeType": "IfStatement", + "src": "7088:30:29", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 4671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7109:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 4672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7116:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 4673, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7108:10:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 4634, + "id": 4674, + "nodeType": "Return", + "src": "7101:17:29" + } + }, + { + "expression": { + "id": 4678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4676, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4643, + "src": "7132:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "hexValue": "3130", + "id": 4677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7142:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "7132:12:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4679, + "nodeType": "ExpressionStatement", + "src": "7132:12:29" + }, + { + "expression": { + "id": 4682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4680, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4643, + "src": "7158:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 4681, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4657, + "src": "7168:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7158:13:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4683, + "nodeType": "ExpressionStatement", + "src": "7158:13:29" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4650, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4647, + "src": "6979:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4651, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4628, + "src": "6983:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6979:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4685, + "initializationExpression": { + "assignments": [ + 4647 + ], + "declarations": [ + { + "constant": false, + "id": 4647, + "mutability": "mutable", + "name": "i", + "nameLocation": "6968:1:29", + "nodeType": "VariableDeclaration", + "scope": 4685, + "src": "6960:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6960:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4649, + "initialValue": { + "id": 4648, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4626, + "src": "6972:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6960:17:29" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 4654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "6988:3:29", + "subExpression": { + "id": 4653, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4647, + "src": "6990:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4655, + "nodeType": "ExpressionStatement", + "src": "6988:3:29" + }, + "nodeType": "ForStatement", + "src": "6955:227:29" + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 4686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7199:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 4687, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4643, + "src": "7205:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4688, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7198:14:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 4634, + "id": 4689, + "nodeType": "Return", + "src": "7191:21:29" + } + ] + }, + "documentation": { + "id": 4622, + "nodeType": "StructuredDocumentation", + "src": "6475:224:29", + "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": 4691, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseUintUncheckedBounds", + "nameLocation": "6713:28:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4624, + "mutability": "mutable", + "name": "input", + "nameLocation": "6765:5:29", + "nodeType": "VariableDeclaration", + "scope": 4691, + "src": "6751:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4623, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6751:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4626, + "mutability": "mutable", + "name": "begin", + "nameLocation": "6788:5:29", + "nodeType": "VariableDeclaration", + "scope": 4691, + "src": "6780:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6780:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "end", + "nameLocation": "6811:3:29", + "nodeType": "VariableDeclaration", + "scope": 4691, + "src": "6803:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6803:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6741:79:29" + }, + "returnParameters": { + "id": 4634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4631, + "mutability": "mutable", + "name": "success", + "nameLocation": "6848:7:29", + "nodeType": "VariableDeclaration", + "scope": 4691, + "src": "6843:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4630, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6843:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4633, + "mutability": "mutable", + "name": "value", + "nameLocation": "6865:5:29", + "nodeType": "VariableDeclaration", + "scope": 4691, + "src": "6857:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6857:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6842:29:29" + }, + "scope": 5550, + "src": "6704:515:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 4709, + "nodeType": "Block", + "src": "7516:63:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4700, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4694, + "src": "7542:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 4701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7549:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 4704, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4694, + "src": "7558:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7552:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4702, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7552:5:29", + "typeDescriptions": {} + } + }, + "id": 4705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7552:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7565:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7552:19:29", + "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": 4699, + "name": "parseInt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4710, + 4741 + ], + "referencedDeclaration": 4741, + "src": "7533:8:29", + "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": 4707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7533:39:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 4698, + "id": 4708, + "nodeType": "Return", + "src": "7526:46:29" + } + ] + }, + "documentation": { + "id": 4692, + "nodeType": "StructuredDocumentation", + "src": "7225:216:29", + "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": 4710, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseInt", + "nameLocation": "7455:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4694, + "mutability": "mutable", + "name": "input", + "nameLocation": "7478:5:29", + "nodeType": "VariableDeclaration", + "scope": 4710, + "src": "7464:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4693, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7464:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7463:21:29" + }, + "returnParameters": { + "id": 4698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4697, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4710, + "src": "7508:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4696, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "7508:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7507:8:29" + }, + "scope": 5550, + "src": "7446:133:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4740, + "nodeType": "Block", + "src": "7984:151:29", + "statements": [ + { + "assignments": [ + 4723, + 4725 + ], + "declarations": [ + { + "constant": false, + "id": 4723, + "mutability": "mutable", + "name": "success", + "nameLocation": "8000:7:29", + "nodeType": "VariableDeclaration", + "scope": 4740, + "src": "7995:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7995:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4725, + "mutability": "mutable", + "name": "value", + "nameLocation": "8016:5:29", + "nodeType": "VariableDeclaration", + "scope": 4740, + "src": "8009:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4724, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "8009:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 4731, + "initialValue": { + "arguments": [ + { + "id": 4727, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4713, + "src": "8037:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4728, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4715, + "src": "8044:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4729, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4717, + "src": "8051:3:29", + "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": 4726, + "name": "tryParseInt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4762, + 4804 + ], + "referencedDeclaration": 4804, + "src": "8025:11:29", + "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": 4730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8025:30:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7994:61:29" + }, + { + "condition": { + "id": 4733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8069:8:29", + "subExpression": { + "id": 4732, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4723, + "src": "8070:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4737, + "nodeType": "IfStatement", + "src": "8065:41:29", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4734, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "8086:18:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8086:20:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4736, + "nodeType": "RevertStatement", + "src": "8079:27:29" + } + }, + { + "expression": { + "id": 4738, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4725, + "src": "8123:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 4721, + "id": 4739, + "nodeType": "Return", + "src": "8116:12:29" + } + ] + }, + "documentation": { + "id": 4711, + "nodeType": "StructuredDocumentation", + "src": "7585:296:29", + "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": 4741, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseInt", + "nameLocation": "7895:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4713, + "mutability": "mutable", + "name": "input", + "nameLocation": "7918:5:29", + "nodeType": "VariableDeclaration", + "scope": 4741, + "src": "7904:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4712, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7904:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4715, + "mutability": "mutable", + "name": "begin", + "nameLocation": "7933:5:29", + "nodeType": "VariableDeclaration", + "scope": 4741, + "src": "7925:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7925:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4717, + "mutability": "mutable", + "name": "end", + "nameLocation": "7948:3:29", + "nodeType": "VariableDeclaration", + "scope": 4741, + "src": "7940:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7940:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7903:49:29" + }, + "returnParameters": { + "id": 4721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4720, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4741, + "src": "7976:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4719, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "7976:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7975:8:29" + }, + "scope": 5550, + "src": "7886:249:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4761, + "nodeType": "Block", + "src": "8526:82:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4752, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4744, + "src": "8571:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 4753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8578:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 4756, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4744, + "src": "8587:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8581:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4754, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8581:5:29", + "typeDescriptions": {} + } + }, + "id": 4757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8581:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8594:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8581:19:29", + "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": 4751, + "name": "_tryParseIntUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "8543:27:29", + "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": 4759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8543:58:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 4750, + "id": 4760, + "nodeType": "Return", + "src": "8536:65:29" + } + ] + }, + "documentation": { + "id": 4742, + "nodeType": "StructuredDocumentation", + "src": "8141:287:29", + "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": 4762, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseInt", + "nameLocation": "8442:11:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4744, + "mutability": "mutable", + "name": "input", + "nameLocation": "8468:5:29", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "8454:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8454:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8453:21:29" + }, + "returnParameters": { + "id": 4750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4747, + "mutability": "mutable", + "name": "success", + "nameLocation": "8503:7:29", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "8498:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4746, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8498:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4749, + "mutability": "mutable", + "name": "value", + "nameLocation": "8519:5:29", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "8512:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4748, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "8512:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "8497:28:29" + }, + "scope": 5550, + "src": "8433:175:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "id": 4767, + "mutability": "constant", + "name": "ABS_MIN_INT256", + "nameLocation": "8639:14:29", + "nodeType": "VariableDeclaration", + "scope": 5550, + "src": "8614:50:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8614:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + }, + "id": 4766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 4764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8656:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "323535", + "id": 4765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8661:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "8656:8:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 4803, + "nodeType": "Block", + "src": "9130:143:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4781, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4774, + "src": "9144:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 4784, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4770, + "src": "9156:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9150:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4782, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9150:5:29", + "typeDescriptions": {} + } + }, + "id": 4785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9150:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9163:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9150:19:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9144:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4788, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "9173:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 4789, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4774, + "src": "9181:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9173:11:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9144:40:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4796, + "nodeType": "IfStatement", + "src": "9140:63:29", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 4792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9194:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 4793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9201:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 4794, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9193:10:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 4780, + "id": 4795, + "nodeType": "Return", + "src": "9186:17:29" + } + }, + { + "expression": { + "arguments": [ + { + "id": 4798, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4770, + "src": "9248:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4799, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4772, + "src": "9255:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4800, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4774, + "src": "9262:3:29", + "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": 4797, + "name": "_tryParseIntUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "9220:27:29", + "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": 4801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9220:46:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 4780, + "id": 4802, + "nodeType": "Return", + "src": "9213:53:29" + } + ] + }, + "documentation": { + "id": 4768, + "nodeType": "StructuredDocumentation", + "src": "8671:303:29", + "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": 4804, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseInt", + "nameLocation": "8988:11:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4770, + "mutability": "mutable", + "name": "input", + "nameLocation": "9023:5:29", + "nodeType": "VariableDeclaration", + "scope": 4804, + "src": "9009:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4769, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9009:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4772, + "mutability": "mutable", + "name": "begin", + "nameLocation": "9046:5:29", + "nodeType": "VariableDeclaration", + "scope": 4804, + "src": "9038:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9038:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4774, + "mutability": "mutable", + "name": "end", + "nameLocation": "9069:3:29", + "nodeType": "VariableDeclaration", + "scope": 4804, + "src": "9061:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9061:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8999:79:29" + }, + "returnParameters": { + "id": 4780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "success", + "nameLocation": "9107:7:29", + "nodeType": "VariableDeclaration", + "scope": 4804, + "src": "9102:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4776, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9102:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "value", + "nameLocation": "9123:5:29", + "nodeType": "VariableDeclaration", + "scope": 4804, + "src": "9116:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4778, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "9116:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "9101:28:29" + }, + "scope": 5550, + "src": "8979:294:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4924, + "nodeType": "Block", + "src": "9673:812:29", + "statements": [ + { + "assignments": [ + 4819 + ], + "declarations": [ + { + "constant": false, + "id": 4819, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "9696:6:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "9683:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4818, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9683:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 4824, + "initialValue": { + "arguments": [ + { + "id": 4822, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4807, + "src": "9711:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9705:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4820, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9705:5:29", + "typeDescriptions": {} + } + }, + "id": 4823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9705:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9683:34:29" + }, + { + "assignments": [ + 4826 + ], + "declarations": [ + { + "constant": false, + "id": 4826, + "mutability": "mutable", + "name": "sign", + "nameLocation": "9781:4:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "9774:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 4825, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9774:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "id": 4842, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4827, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4809, + "src": "9788:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4828, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "9797:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9788:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 4837, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4819, + "src": "9845:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 4838, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4809, + "src": "9853:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4836, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5549, + "src": "9822:22:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 4839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:37:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9815:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 4834, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9815:6:29", + "typeDescriptions": {} + } + }, + "id": 4840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9815:45:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 4841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9788:72:29", + "trueExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9810:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9803:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 4830, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9803:6:29", + "typeDescriptions": {} + } + }, + "id": 4833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9803:9:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9774:86:29" + }, + { + "assignments": [ + 4844 + ], + "declarations": [ + { + "constant": false, + "id": 4844, + "mutability": "mutable", + "name": "positiveSign", + "nameLocation": "9946:12:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "9941:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4843, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9941:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 4851, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 4850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4845, + "name": "sign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4826, + "src": "9961:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "2b", + "id": 4848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9976:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8", + "typeString": "literal_string \"+\"" + }, + "value": "+" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8", + "typeString": "literal_string \"+\"" + } + ], + "id": 4847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9969:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 4846, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9969:6:29", + "typeDescriptions": {} + } + }, + "id": 4849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9969:11:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9961:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9941:39:29" + }, + { + "assignments": [ + 4853 + ], + "declarations": [ + { + "constant": false, + "id": 4853, + "mutability": "mutable", + "name": "negativeSign", + "nameLocation": "9995:12:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "9990:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4852, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9990:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 4860, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 4859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4854, + "name": "sign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4826, + "src": "10010:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "2d", + "id": 4857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + } + ], + "id": 4856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10018:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 4855, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "10018:6:29", + "typeDescriptions": {} + } + }, + "id": 4858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10018:11:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "10010:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9990:39:29" + }, + { + "assignments": [ + 4862 + ], + "declarations": [ + { + "constant": false, + "id": 4862, + "mutability": "mutable", + "name": "offset", + "nameLocation": "10047:6:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "10039:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10039:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4869, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4863, + "name": "positiveSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4844, + "src": "10057:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 4864, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "10073:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10057:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 4866, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10056:30:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10087:6:29", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "10056:37:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 4868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10056:39:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10039:56:29" + }, + { + "assignments": [ + 4871, + 4873 + ], + "declarations": [ + { + "constant": false, + "id": 4871, + "mutability": "mutable", + "name": "absSuccess", + "nameLocation": "10112:10:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "10107:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4870, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10107:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "absValue", + "nameLocation": "10132:8:29", + "nodeType": "VariableDeclaration", + "scope": 4924, + "src": "10124:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10124:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4881, + "initialValue": { + "arguments": [ + { + "id": 4875, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4807, + "src": "10157:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4876, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4809, + "src": "10164:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4877, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4862, + "src": "10172:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10164:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4879, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "10180:3:29", + "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": 4874, + "name": "tryParseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4584, + 4621 + ], + "referencedDeclaration": 4621, + "src": "10144:12:29", + "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": 4880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10144:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10106:78:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4882, + "name": "absSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4871, + "src": "10199:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4883, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4873, + "src": "10213:8:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4884, + "name": "ABS_MIN_INT256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4767, + "src": "10224:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10213:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10199:39:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4902, + "name": "absSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4871, + "src": "10341:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 4903, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "10355:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10341:26:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4905, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4873, + "src": "10371:8:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4906, + "name": "ABS_MIN_INT256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4767, + "src": "10383:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10371:26:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10341:56:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 4918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10469:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 4919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10476:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 4920, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10468:10:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 4817, + "id": 4921, + "nodeType": "Return", + "src": "10461:17:29" + }, + "id": 4922, + "nodeType": "IfStatement", + "src": "10337:141:29", + "trueBody": { + "id": 4917, + "nodeType": "Block", + "src": "10399:56:29", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 4909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10421:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "arguments": [ + { + "id": 4912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10432:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 4911, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10432:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 4910, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10427:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10427:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 4914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10440:3:29", + "memberName": "min", + "nodeType": "MemberAccess", + "src": "10427:16:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 4915, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10420:24:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 4817, + "id": 4916, + "nodeType": "Return", + "src": "10413:31:29" + } + ] + } + }, + "id": 4923, + "nodeType": "IfStatement", + "src": "10195:283:29", + "trueBody": { + "id": 4901, + "nodeType": "Block", + "src": "10240:91:29", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10262:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "condition": { + "id": 4888, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "10268:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "id": 4896, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4873, + "src": "10310:8:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10303:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 4894, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10303:6:29", + "typeDescriptions": {} + } + }, + "id": 4897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10303:16:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 4898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10268:51:29", + "trueExpression": { + "id": 4893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "10283:17:29", + "subExpression": { + "arguments": [ + { + "id": 4891, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4873, + "src": "10291:8:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10284:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 4889, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10284:6:29", + "typeDescriptions": {} + } + }, + "id": 4892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10284:16:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 4899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10261:59:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 4817, + "id": 4900, + "nodeType": "Return", + "src": "10254:66:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 4805, + "nodeType": "StructuredDocumentation", + "src": "9279:223:29", + "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": 4925, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseIntUncheckedBounds", + "nameLocation": "9516:27:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4812, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4807, + "mutability": "mutable", + "name": "input", + "nameLocation": "9567:5:29", + "nodeType": "VariableDeclaration", + "scope": 4925, + "src": "9553:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4806, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9553:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4809, + "mutability": "mutable", + "name": "begin", + "nameLocation": "9590:5:29", + "nodeType": "VariableDeclaration", + "scope": 4925, + "src": "9582:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9582:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4811, + "mutability": "mutable", + "name": "end", + "nameLocation": "9613:3:29", + "nodeType": "VariableDeclaration", + "scope": 4925, + "src": "9605:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4810, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9605:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9543:79:29" + }, + "returnParameters": { + "id": 4817, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4814, + "mutability": "mutable", + "name": "success", + "nameLocation": "9650:7:29", + "nodeType": "VariableDeclaration", + "scope": 4925, + "src": "9645:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4813, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9645:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4816, + "mutability": "mutable", + "name": "value", + "nameLocation": "9666:5:29", + "nodeType": "VariableDeclaration", + "scope": 4925, + "src": "9659:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 4815, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "9659:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "9644:28:29" + }, + "scope": 5550, + "src": "9507:978:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 4943, + "nodeType": "Block", + "src": "10830:67:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4934, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4928, + "src": "10860:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10867:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 4938, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4928, + "src": "10876:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10870:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4936, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10870:5:29", + "typeDescriptions": {} + } + }, + "id": 4939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10870:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10883:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10870:19:29", + "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": 4933, + "name": "parseHexUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4944, + 4975 + ], + "referencedDeclaration": 4975, + "src": "10847:12:29", + "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": 4941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10847:43:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4932, + "id": 4942, + "nodeType": "Return", + "src": "10840:50:29" + } + ] + }, + "documentation": { + "id": 4926, + "nodeType": "StructuredDocumentation", + "src": "10491:259:29", + "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": 4944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseHexUint", + "nameLocation": "10764:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4929, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4928, + "mutability": "mutable", + "name": "input", + "nameLocation": "10791:5:29", + "nodeType": "VariableDeclaration", + "scope": 4944, + "src": "10777:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10777:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "10776:21:29" + }, + "returnParameters": { + "id": 4932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4931, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4944, + "src": "10821:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10821:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10820:9:29" + }, + "scope": 5550, + "src": "10755:142:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4974, + "nodeType": "Block", + "src": "11318:156:29", + "statements": [ + { + "assignments": [ + 4957, + 4959 + ], + "declarations": [ + { + "constant": false, + "id": 4957, + "mutability": "mutable", + "name": "success", + "nameLocation": "11334:7:29", + "nodeType": "VariableDeclaration", + "scope": 4974, + "src": "11329:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11329:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4959, + "mutability": "mutable", + "name": "value", + "nameLocation": "11351:5:29", + "nodeType": "VariableDeclaration", + "scope": 4974, + "src": "11343:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11343:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4965, + "initialValue": { + "arguments": [ + { + "id": 4961, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "11376:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 4962, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4949, + "src": "11383:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4963, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4951, + "src": "11390:3:29", + "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": 4960, + "name": "tryParseHexUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4996, + 5033 + ], + "referencedDeclaration": 5033, + "src": "11360:15:29", + "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": 4964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11360:34:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11328:66:29" + }, + { + "condition": { + "id": 4967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11408:8:29", + "subExpression": { + "id": 4966, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4957, + "src": "11409:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4971, + "nodeType": "IfStatement", + "src": "11404:41:29", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4968, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "11425:18:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11425:20:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4970, + "nodeType": "RevertStatement", + "src": "11418:27:29" + } + }, + { + "expression": { + "id": 4972, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4959, + "src": "11462:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4955, + "id": 4973, + "nodeType": "Return", + "src": "11455:12:29" + } + ] + }, + "documentation": { + "id": 4945, + "nodeType": "StructuredDocumentation", + "src": "10903:307:29", + "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": 4975, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseHexUint", + "nameLocation": "11224:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "input", + "nameLocation": "11251:5:29", + "nodeType": "VariableDeclaration", + "scope": 4975, + "src": "11237:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4946, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11237:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4949, + "mutability": "mutable", + "name": "begin", + "nameLocation": "11266:5:29", + "nodeType": "VariableDeclaration", + "scope": 4975, + "src": "11258:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11258:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4951, + "mutability": "mutable", + "name": "end", + "nameLocation": "11281:3:29", + "nodeType": "VariableDeclaration", + "scope": 4975, + "src": "11273:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11273:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11236:49:29" + }, + "returnParameters": { + "id": 4955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4954, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4975, + "src": "11309:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11309:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11308:9:29" + }, + "scope": 5550, + "src": "11215:259:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4995, + "nodeType": "Block", + "src": "11801:86:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4986, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4978, + "src": "11850:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11857:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 4990, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4978, + "src": "11866:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11860:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 4988, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11860:5:29", + "typeDescriptions": {} + } + }, + "id": 4991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11860:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 4992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11873:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11860:19:29", + "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": 4985, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5136, + "src": "11818:31:29", + "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": 4993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11818:62:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 4984, + "id": 4994, + "nodeType": "Return", + "src": "11811:69:29" + } + ] + }, + "documentation": { + "id": 4976, + "nodeType": "StructuredDocumentation", + "src": "11480:218:29", + "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": 4996, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseHexUint", + "nameLocation": "11712:15:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4979, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4978, + "mutability": "mutable", + "name": "input", + "nameLocation": "11742:5:29", + "nodeType": "VariableDeclaration", + "scope": 4996, + "src": "11728:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4977, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11728:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "11727:21:29" + }, + "returnParameters": { + "id": 4984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4981, + "mutability": "mutable", + "name": "success", + "nameLocation": "11777:7:29", + "nodeType": "VariableDeclaration", + "scope": 4996, + "src": "11772:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4980, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11772:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4983, + "mutability": "mutable", + "name": "value", + "nameLocation": "11794:5:29", + "nodeType": "VariableDeclaration", + "scope": 4996, + "src": "11786:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11786:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11771:29:29" + }, + "scope": 5550, + "src": "11703:184:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5032, + "nodeType": "Block", + "src": "12295:147:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5010, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "12309:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5013, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4999, + "src": "12321:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12315:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5011, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12315:5:29", + "typeDescriptions": {} + } + }, + "id": 5014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12315:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12328:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12315:19:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12309:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5017, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "12338:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 5018, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "12346:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12338:11:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12309:40:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5025, + "nodeType": "IfStatement", + "src": "12305:63:29", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12359:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 5022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12366:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 5023, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12358:10:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 5009, + "id": 5024, + "nodeType": "Return", + "src": "12351:17:29" + } + }, + { + "expression": { + "arguments": [ + { + "id": 5027, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4999, + "src": "12417:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5028, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5001, + "src": "12424:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5029, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "12431:3:29", + "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": 5026, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5136, + "src": "12385:31:29", + "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": 5030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12385:50:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 5009, + "id": 5031, + "nodeType": "Return", + "src": "12378:57:29" + } + ] + }, + "documentation": { + "id": 4997, + "nodeType": "StructuredDocumentation", + "src": "11893:241:29", + "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": 5033, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseHexUint", + "nameLocation": "12148:15:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4999, + "mutability": "mutable", + "name": "input", + "nameLocation": "12187:5:29", + "nodeType": "VariableDeclaration", + "scope": 5033, + "src": "12173:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4998, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12173:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5001, + "mutability": "mutable", + "name": "begin", + "nameLocation": "12210:5:29", + "nodeType": "VariableDeclaration", + "scope": 5033, + "src": "12202:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12202:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5003, + "mutability": "mutable", + "name": "end", + "nameLocation": "12233:3:29", + "nodeType": "VariableDeclaration", + "scope": 5033, + "src": "12225:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12225:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12163:79:29" + }, + "returnParameters": { + "id": 5009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5006, + "mutability": "mutable", + "name": "success", + "nameLocation": "12271:7:29", + "nodeType": "VariableDeclaration", + "scope": 5033, + "src": "12266:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12266:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5008, + "mutability": "mutable", + "name": "value", + "nameLocation": "12288:5:29", + "nodeType": "VariableDeclaration", + "scope": 5033, + "src": "12280:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12280:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12265:29:29" + }, + "scope": 5550, + "src": "12139:303:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5135, + "nodeType": "Block", + "src": "12851:881:29", + "statements": [ + { + "assignments": [ + 5048 + ], + "declarations": [ + { + "constant": false, + "id": 5048, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "12874:6:29", + "nodeType": "VariableDeclaration", + "scope": 5135, + "src": "12861:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5047, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12861:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 5053, + "initialValue": { + "arguments": [ + { + "id": 5051, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "12889:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12883:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5049, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12883:5:29", + "typeDescriptions": {} + } + }, + "id": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12883:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12861:34:29" + }, + { + "assignments": [ + 5055 + ], + "declarations": [ + { + "constant": false, + "id": 5055, + "mutability": "mutable", + "name": "hasPrefix", + "nameLocation": "12948:9:29", + "nodeType": "VariableDeclaration", + "scope": 5135, + "src": "12943:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5054, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12943:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5075, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5056, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5040, + "src": "12961:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5057, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5038, + "src": "12967:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 5058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12975:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12967:9:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12961:15:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5061, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12960:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 5065, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "13011:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5066, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5038, + "src": "13019:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5064, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5549, + "src": "12988:22:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12988:37:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12981:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 5062, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "12981:6:29", + "typeDescriptions": {} + } + }, + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12981:45:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "3078", + "id": 5071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13037:4:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + }, + "value": "0x" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + } + ], + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13030:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 5069, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "13030:6:29", + "typeDescriptions": {} + } + }, + "id": 5072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13030:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "src": "12981:61:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12960:82:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12943:99:29" + }, + { + "assignments": [ + 5077 + ], + "declarations": [ + { + "constant": false, + "id": 5077, + "mutability": "mutable", + "name": "offset", + "nameLocation": "13131:6:29", + "nodeType": "VariableDeclaration", + "scope": 5135, + "src": "13123:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5076, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13123:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5083, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 5078, + "name": "hasPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5055, + "src": "13140:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13150:6:29", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "13140:16:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13140:18:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "32", + "id": 5081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13161:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "13140:22:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13123:39:29" + }, + { + "assignments": [ + 5085 + ], + "declarations": [ + { + "constant": false, + "id": 5085, + "mutability": "mutable", + "name": "result", + "nameLocation": "13181:6:29", + "nodeType": "VariableDeclaration", + "scope": 5135, + "src": "13173:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5084, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13173:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5087, + "initialValue": { + "hexValue": "30", + "id": 5086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13190:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13173:18:29" + }, + { + "body": { + "id": 5129, + "nodeType": "Block", + "src": "13248:447:29", + "statements": [ + { + "assignments": [ + 5101 + ], + "declarations": [ + { + "constant": false, + "id": 5101, + "mutability": "mutable", + "name": "chr", + "nameLocation": "13268:3:29", + "nodeType": "VariableDeclaration", + "scope": 5129, + "src": "13262:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5100, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "13262:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 5111, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 5106, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "13317:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5107, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5089, + "src": "13325:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5105, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5549, + "src": "13294:22:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13294:33:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13287:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 5103, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "13287:6:29", + "typeDescriptions": {} + } + }, + "id": 5109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13287:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 5102, + "name": "_tryParseChr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5371, + "src": "13274:12:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$", + "typeString": "function (bytes1) pure returns (uint8)" + } + }, + "id": 5110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13274:55:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13262:67:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5112, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5101, + "src": "13347:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3135", + "id": 5113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13353:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "15" + }, + "src": "13347:8:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5119, + "nodeType": "IfStatement", + "src": "13343:31:29", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 5115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13365:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 5116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13372:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 5117, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13364:10:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 5046, + "id": 5118, + "nodeType": "Return", + "src": "13357:17:29" + } + }, + { + "expression": { + "id": 5122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5120, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5085, + "src": "13388:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "hexValue": "3136", + "id": 5121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13398:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13388:12:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5123, + "nodeType": "ExpressionStatement", + "src": "13388:12:29" + }, + { + "id": 5128, + "nodeType": "UncheckedBlock", + "src": "13414:271:29", + "statements": [ + { + "expression": { + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5124, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5085, + "src": "13657:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 5125, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5101, + "src": "13667:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13657:13:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "13657:13:29" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5094, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5089, + "src": "13234:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 5095, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5040, + "src": "13238:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13234:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5130, + "initializationExpression": { + "assignments": [ + 5089 + ], + "declarations": [ + { + "constant": false, + "id": 5089, + "mutability": "mutable", + "name": "i", + "nameLocation": "13214:1:29", + "nodeType": "VariableDeclaration", + "scope": 5130, + "src": "13206:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13206:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5093, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5090, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5038, + "src": "13218:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 5091, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5077, + "src": "13226:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13218:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13206:26:29" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "13243:3:29", + "subExpression": { + "id": 5097, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5089, + "src": "13245:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5099, + "nodeType": "ExpressionStatement", + "src": "13243:3:29" + }, + "nodeType": "ForStatement", + "src": "13201:494:29" + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 5131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13712:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 5132, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5085, + "src": "13718:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5133, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13711:14:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 5046, + "id": 5134, + "nodeType": "Return", + "src": "13704:21:29" + } + ] + }, + "documentation": { + "id": 5034, + "nodeType": "StructuredDocumentation", + "src": "12448:227:29", + "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": 5136, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseHexUintUncheckedBounds", + "nameLocation": "12689:31:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "mutability": "mutable", + "name": "input", + "nameLocation": "12744:5:29", + "nodeType": "VariableDeclaration", + "scope": 5136, + "src": "12730:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5035, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12730:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5038, + "mutability": "mutable", + "name": "begin", + "nameLocation": "12767:5:29", + "nodeType": "VariableDeclaration", + "scope": 5136, + "src": "12759:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12759:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5040, + "mutability": "mutable", + "name": "end", + "nameLocation": "12790:3:29", + "nodeType": "VariableDeclaration", + "scope": 5136, + "src": "12782:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12782:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12720:79:29" + }, + "returnParameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "success", + "nameLocation": "12827:7:29", + "nodeType": "VariableDeclaration", + "scope": 5136, + "src": "12822:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5042, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12822:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nameLocation": "12844:5:29", + "nodeType": "VariableDeclaration", + "scope": 5136, + "src": "12836:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12836:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12821:29:29" + }, + "scope": 5550, + "src": "12680:1052:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5154, + "nodeType": "Block", + "src": "14030:67:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 5145, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "14060:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 5146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14067:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 5149, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "14076:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14070:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5147, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14070:5:29", + "typeDescriptions": {} + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14070:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14083:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14070:19:29", + "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": 5144, + "name": "parseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5155, + 5186 + ], + "referencedDeclaration": 5186, + "src": "14047:12:29", + "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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14047:43:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5143, + "id": 5153, + "nodeType": "Return", + "src": "14040:50:29" + } + ] + }, + "documentation": { + "id": 5137, + "nodeType": "StructuredDocumentation", + "src": "13738:212:29", + "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": 5155, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseAddress", + "nameLocation": "13964:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "input", + "nameLocation": "13991:5:29", + "nodeType": "VariableDeclaration", + "scope": 5155, + "src": "13977:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5138, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "13977:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "13976:21:29" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5155, + "src": "14021:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14021:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14020:9:29" + }, + "scope": 5550, + "src": "13955:142:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5185, + "nodeType": "Block", + "src": "14470:165:29", + "statements": [ + { + "assignments": [ + 5168, + 5170 + ], + "declarations": [ + { + "constant": false, + "id": 5168, + "mutability": "mutable", + "name": "success", + "nameLocation": "14486:7:29", + "nodeType": "VariableDeclaration", + "scope": 5185, + "src": "14481:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5167, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14481:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "mutability": "mutable", + "name": "value", + "nameLocation": "14503:5:29", + "nodeType": "VariableDeclaration", + "scope": 5185, + "src": "14495:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14495:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 5176, + "initialValue": { + "arguments": [ + { + "id": 5172, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5158, + "src": "14528:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5173, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5160, + "src": "14535:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5174, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5162, + "src": "14542:3:29", + "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": 5171, + "name": "tryParseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5207, + 5311 + ], + "referencedDeclaration": 5311, + "src": "14512:15:29", + "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": 5175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14512:34:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14480:66:29" + }, + { + "condition": { + "id": 5178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14560:8:29", + "subExpression": { + "id": 5177, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5168, + "src": "14561:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5182, + "nodeType": "IfStatement", + "src": "14556:50:29", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5179, + "name": "StringsInvalidAddressFormat", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4214, + "src": "14577:27:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14577:29:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5181, + "nodeType": "RevertStatement", + "src": "14570:36:29" + } + }, + { + "expression": { + "id": 5183, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5170, + "src": "14623:5:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5166, + "id": 5184, + "nodeType": "Return", + "src": "14616:12:29" + } + ] + }, + "documentation": { + "id": 5156, + "nodeType": "StructuredDocumentation", + "src": "14103:259:29", + "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": 5186, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseAddress", + "nameLocation": "14376:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5158, + "mutability": "mutable", + "name": "input", + "nameLocation": "14403:5:29", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "14389:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5157, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14389:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5160, + "mutability": "mutable", + "name": "begin", + "nameLocation": "14418:5:29", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "14410:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14410:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5162, + "mutability": "mutable", + "name": "end", + "nameLocation": "14433:3:29", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "14425:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14425:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14388:49:29" + }, + "returnParameters": { + "id": 5166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5165, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "14461:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14461:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14460:9:29" + }, + "scope": 5550, + "src": "14367:268:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5206, + "nodeType": "Block", + "src": "14942:70:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 5197, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5189, + "src": "14975:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 5198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14982:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 5201, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5189, + "src": "14991:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14985:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5199, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14985:5:29", + "typeDescriptions": {} + } + }, + "id": 5202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14985:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14998:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14985:19:29", + "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": 5196, + "name": "tryParseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5207, + 5311 + ], + "referencedDeclaration": 5311, + "src": "14959:15:29", + "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": 5204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14959:46:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 5195, + "id": 5205, + "nodeType": "Return", + "src": "14952:53:29" + } + ] + }, + "documentation": { + "id": 5187, + "nodeType": "StructuredDocumentation", + "src": "14641:198:29", + "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": 5207, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseAddress", + "nameLocation": "14853:15:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5189, + "mutability": "mutable", + "name": "input", + "nameLocation": "14883:5:29", + "nodeType": "VariableDeclaration", + "scope": 5207, + "src": "14869:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5188, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14869:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14868:21:29" + }, + "returnParameters": { + "id": 5195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5192, + "mutability": "mutable", + "name": "success", + "nameLocation": "14918:7:29", + "nodeType": "VariableDeclaration", + "scope": 5207, + "src": "14913:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5191, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14913:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "value", + "nameLocation": "14935:5:29", + "nodeType": "VariableDeclaration", + "scope": 5207, + "src": "14927:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14927:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14912:29:29" + }, + "scope": 5550, + "src": "14844:168:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "15405:733:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5221, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "15419:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5224, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "15431:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15425:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5222, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15425:5:29", + "typeDescriptions": {} + } + }, + "id": 5225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15425:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15438:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15425:19:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15419:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5228, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "15448:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 5229, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "15456:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15448:11:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15419:40:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5239, + "nodeType": "IfStatement", + "src": "15415:72:29", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15469:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15484:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15476:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5233, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15476:7:29", + "typeDescriptions": {} + } + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15476:10:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 5237, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15468:19:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 5220, + "id": 5238, + "nodeType": "Return", + "src": "15461:26:29" + } + }, + { + "assignments": [ + 5241 + ], + "declarations": [ + { + "constant": false, + "id": 5241, + "mutability": "mutable", + "name": "hasPrefix", + "nameLocation": "15503:9:29", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "15498:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5240, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15498:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5264, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5242, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "15516:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5243, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "15522:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15530:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15522:9:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15516:15:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5247, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15515:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "id": 5262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 5253, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "15572:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15566:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5251, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15566:5:29", + "typeDescriptions": {} + } + }, + "id": 5254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15566:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5255, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "15580:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5250, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5549, + "src": "15543:22:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 5256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15543:43:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15536:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 5248, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "15536:6:29", + "typeDescriptions": {} + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15536:51:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "3078", + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15598:4:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + }, + "value": "0x" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + } + ], + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15591:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 5258, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "15591:6:29", + "typeDescriptions": {} + } + }, + "id": 5261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15591:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "src": "15536:67:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15515:88:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15498:105:29" + }, + { + "assignments": [ + 5266 + ], + "declarations": [ + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "expectedLength", + "nameLocation": "15692:14:29", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "15684:22:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15684:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5274, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3430", + "id": 5267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15709:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 5268, + "name": "hasPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5241, + "src": "15714:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15724:6:29", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "15714:16:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15714:18:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "32", + "id": 5271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15735:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15714:22:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15709:27:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15684:52:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5275, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "15801:3:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 5276, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "15807:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15801:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 5278, + "name": "expectedLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "15816:14:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15801:29:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5308, + "nodeType": "Block", + "src": "16081:51:29", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 5301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16103:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16118:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16110:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16110:7:29", + "typeDescriptions": {} + } + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:10:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 5306, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16102:19:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 5220, + "id": 5307, + "nodeType": "Return", + "src": "16095:26:29" + } + ] + }, + "id": 5309, + "nodeType": "IfStatement", + "src": "15797:335:29", + "trueBody": { + "id": 5300, + "nodeType": "Block", + "src": "15832:243:29", + "statements": [ + { + "assignments": [ + 5281, + 5283 + ], + "declarations": [ + { + "constant": false, + "id": 5281, + "mutability": "mutable", + "name": "s", + "nameLocation": "15953:1:29", + "nodeType": "VariableDeclaration", + "scope": 5300, + "src": "15948:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5280, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15948:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5283, + "mutability": "mutable", + "name": "v", + "nameLocation": "15964:1:29", + "nodeType": "VariableDeclaration", + "scope": 5300, + "src": "15956:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15956:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5289, + "initialValue": { + "arguments": [ + { + "id": 5285, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "16001:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5286, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "16008:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5287, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "16015:3:29", + "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": 5284, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5136, + "src": "15969:31:29", + "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": 5288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15969:50:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:72:29" + }, + { + "expression": { + "components": [ + { + "id": 5290, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5281, + "src": "16041:1:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 5295, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5283, + "src": "16060:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16052:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 5293, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "16052:7:29", + "typeDescriptions": {} + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16052:10:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16044:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16044:7:29", + "typeDescriptions": {} + } + }, + "id": 5297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16044:19:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 5298, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16040:24:29", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 5220, + "id": 5299, + "nodeType": "Return", + "src": "16033:31:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 5208, + "nodeType": "StructuredDocumentation", + "src": "15018:226:29", + "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": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseAddress", + "nameLocation": "15258:15:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5210, + "mutability": "mutable", + "name": "input", + "nameLocation": "15297:5:29", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "15283:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5209, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15283:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5212, + "mutability": "mutable", + "name": "begin", + "nameLocation": "15320:5:29", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "15312:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15312:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "mutability": "mutable", + "name": "end", + "nameLocation": "15343:3:29", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "15335:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5213, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15335:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15273:79:29" + }, + "returnParameters": { + "id": 5220, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "success", + "nameLocation": "15381:7:29", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "15376:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5216, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15376:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5219, + "mutability": "mutable", + "name": "value", + "nameLocation": "15398:5:29", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "15390:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15390:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15375:29:29" + }, + "scope": 5550, + "src": "15249:889:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5370, + "nodeType": "Block", + "src": "16207:461:29", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "mutability": "mutable", + "name": "value", + "nameLocation": "16223:5:29", + "nodeType": "VariableDeclaration", + "scope": 5370, + "src": "16217:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5318, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16217:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 5324, + "initialValue": { + "arguments": [ + { + "id": 5322, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "16237:3:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 5321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16231:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 5320, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16231:5:29", + "typeDescriptions": {} + } + }, + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16231:10:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16217:24:29" + }, + { + "id": 5367, + "nodeType": "UncheckedBlock", + "src": "16401:238:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5325, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16429:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3437", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16437:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_47_by_1", + "typeString": "int_const 47" + }, + "value": "47" + }, + "src": "16429:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5328, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16443:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3538", + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16451:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_58_by_1", + "typeString": "int_const 58" + }, + "value": "58" + }, + "src": "16443:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16429:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5336, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16489:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3936", + "id": 5337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16497:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "16489:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5339, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16503:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "313033", + "id": 5340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16511:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_103_by_1", + "typeString": "int_const 103" + }, + "value": "103" + }, + "src": "16503:11:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16489:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5347, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16550:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3634", + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16558:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "16550:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5350, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16564:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3731", + "id": 5351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16572:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "src": "16564:10:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16550:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "expression": { + "arguments": [ + { + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16618:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 5359, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16618:5:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 5358, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16613:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16613:11:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 5362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16625:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16613:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 5317, + "id": 5363, + "nodeType": "Return", + "src": "16606:22:29" + }, + "id": 5364, + "nodeType": "IfStatement", + "src": "16546:82:29", + "trueBody": { + "expression": { + "id": 5356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5354, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16576:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3535", + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16585:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_55_by_1", + "typeString": "int_const 55" + }, + "value": "55" + }, + "src": "16576:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 5357, + "nodeType": "ExpressionStatement", + "src": "16576:11:29" + } + }, + "id": 5365, + "nodeType": "IfStatement", + "src": "16485:143:29", + "trueBody": { + "expression": { + "id": 5345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5343, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16516:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3837", + "id": 5344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16525:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_87_by_1", + "typeString": "int_const 87" + }, + "value": "87" + }, + "src": "16516:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 5346, + "nodeType": "ExpressionStatement", + "src": "16516:11:29" + } + }, + "id": 5366, + "nodeType": "IfStatement", + "src": "16425:203:29", + "trueBody": { + "expression": { + "id": 5334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5332, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16455:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3438", + "id": 5333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16464:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "src": "16455:11:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 5335, + "nodeType": "ExpressionStatement", + "src": "16455:11:29" + } + } + ] + }, + { + "expression": { + "id": 5368, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "16656:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 5317, + "id": 5369, + "nodeType": "Return", + "src": "16649:12:29" + } + ] + }, + "id": 5371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseChr", + "nameLocation": "16153:12:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "mutability": "mutable", + "name": "chr", + "nameLocation": "16173:3:29", + "nodeType": "VariableDeclaration", + "scope": 5371, + "src": "16166:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 5312, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "16166:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "src": "16165:12:29" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5371, + "src": "16200:5:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5315, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16200:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16199:7:29" + }, + "scope": 5550, + "src": "16144:524:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5536, + "nodeType": "Block", + "src": "17334:1331:29", + "statements": [ + { + "assignments": [ + 5380 + ], + "declarations": [ + { + "constant": false, + "id": 5380, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "17357:6:29", + "nodeType": "VariableDeclaration", + "scope": 5536, + "src": "17344:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5379, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17344:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 5385, + "initialValue": { + "arguments": [ + { + "id": 5383, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5374, + "src": "17372:5:29", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17366:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5381, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17366:5:29", + "typeDescriptions": {} + } + }, + "id": 5384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17366:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17344:34:29" + }, + { + "assignments": [ + 5387 + ], + "declarations": [ + { + "constant": false, + "id": 5387, + "mutability": "mutable", + "name": "output", + "nameLocation": "17401:6:29", + "nodeType": "VariableDeclaration", + "scope": 5536, + "src": "17388:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5386, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17388:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 5395, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 5390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17420:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "expression": { + "id": 5391, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5380, + "src": "17424:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17431:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17424:13:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17420:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "17410:9:29", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 5388, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17414:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17410:28:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17388:50:29" + }, + { + "assignments": [ + 5397 + ], + "declarations": [ + { + "constant": false, + "id": 5397, + "mutability": "mutable", + "name": "outputLength", + "nameLocation": "17479:12:29", + "nodeType": "VariableDeclaration", + "scope": 5536, + "src": "17471:20:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17471:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5399, + "initialValue": { + "hexValue": "30", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17494:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "17471:24:29" + }, + { + "body": { + "id": 5528, + "nodeType": "Block", + "src": "17546:854:29", + "statements": [ + { + "assignments": [ + 5411 + ], + "declarations": [ + { + "constant": false, + "id": 5411, + "mutability": "mutable", + "name": "char", + "nameLocation": "17567:4:29", + "nodeType": "VariableDeclaration", + "scope": 5528, + "src": "17560:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 5410, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "17560:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "id": 5419, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 5415, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5380, + "src": "17604:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 5416, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5401, + "src": "17612:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5414, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5549, + "src": "17581:22:29", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 5417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17581:33:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17574:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 5412, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "17574:6:29", + "typeDescriptions": {} + } + }, + "id": 5418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17574:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17560:55:29" + }, + { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5420, + "name": "SPECIAL_CHARS_LOOKUP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4201, + "src": "17635:20:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17659:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "arguments": [ + { + "id": 5424, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "17670:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 5423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17664:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 5422, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "17664:5:29", + "typeDescriptions": {} + } + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17664:11:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "17659:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5427, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17658:18:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17635:41:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5429, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17634:43:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 5430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17681:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17634:48:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5432, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17633:50:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5526, + "nodeType": "Block", + "src": "18328:62:29", + "statements": [ + { + "expression": { + "id": 5524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5519, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "18346:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5522, + "indexExpression": { + "id": 5521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18353:14:29", + "subExpression": { + "id": 5520, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "18353:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5523, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "18371:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "18346:29:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5525, + "nodeType": "ExpressionStatement", + "src": "18346:29:29" + } + ] + }, + "id": 5527, + "nodeType": "IfStatement", + "src": "17629:761:29", + "trueBody": { + "id": 5518, + "nodeType": "Block", + "src": "17685:637:29", + "statements": [ + { + "expression": { + "id": 5438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5433, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "17703:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5436, + "indexExpression": { + "id": 5435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17710:14:29", + "subExpression": { + "id": 5434, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "17710:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "5c", + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17728:4:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095", + "typeString": "literal_string \"\\\"" + }, + "value": "\\" + }, + "src": "17703:29:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5439, + "nodeType": "ExpressionStatement", + "src": "17703:29:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5440, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "17754:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783038", + "id": 5441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17762:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "src": "17754:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5450, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "17823:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783039", + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17831:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "0x09" + }, + "src": "17823:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5460, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "17892:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783061", + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17900:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "0x0a" + }, + "src": "17892:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5470, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "17961:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783063", + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17969:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "0x0c" + }, + "src": "17961:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5480, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "18030:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783064", + "id": 5481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18038:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "0x0d" + }, + "src": "18030:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5490, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "18099:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783563", + "id": 5491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18107:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "0x5c" + }, + "src": "18099:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5500, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5411, + "src": "18169:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783232", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18177:4:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "src": "18169:12:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5511, + "nodeType": "IfStatement", + "src": "18165:143:29", + "trueBody": { + "id": 5510, + "nodeType": "Block", + "src": "18183:125:29", + "statements": [ + { + "expression": { + "id": 5508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5503, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "18261:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5506, + "indexExpression": { + "id": 5505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18268:14:29", + "subExpression": { + "id": 5504, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "18268:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "22", + "id": 5507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18286:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0", + "typeString": "literal_string \"\"\"" + }, + "value": "\"" + }, + "src": "18261:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5509, + "nodeType": "ExpressionStatement", + "src": "18261:28:29" + } + ] + } + }, + "id": 5512, + "nodeType": "IfStatement", + "src": "18095:213:29", + "trueBody": { + "expression": { + "id": 5498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5493, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "18113:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5496, + "indexExpression": { + "id": 5495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18120:14:29", + "subExpression": { + "id": 5494, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "18120:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "5c", + "id": 5497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18138:4:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095", + "typeString": "literal_string \"\\\"" + }, + "value": "\\" + }, + "src": "18113:29:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5499, + "nodeType": "ExpressionStatement", + "src": "18113:29:29" + } + }, + "id": 5513, + "nodeType": "IfStatement", + "src": "18026:282:29", + "trueBody": { + "expression": { + "id": 5488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5483, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "18044:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5486, + "indexExpression": { + "id": 5485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18051:14:29", + "subExpression": { + "id": 5484, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "18051:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "72", + "id": 5487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18069:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_414f72a4d550cad29f17d9d99a4af64b3776ec5538cd440cef0f03fef2e9e010", + "typeString": "literal_string \"r\"" + }, + "value": "r" + }, + "src": "18044:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5489, + "nodeType": "ExpressionStatement", + "src": "18044:28:29" + } + }, + "id": 5514, + "nodeType": "IfStatement", + "src": "17957:351:29", + "trueBody": { + "expression": { + "id": 5478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5473, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "17975:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5476, + "indexExpression": { + "id": 5475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17982:14:29", + "subExpression": { + "id": 5474, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "17982:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66", + "id": 5477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18000:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1e8aeb79500496ef3dc2e57ba746a8315d048b7a664a2bf948db4fa91960483", + "typeString": "literal_string \"f\"" + }, + "value": "f" + }, + "src": "17975:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5479, + "nodeType": "ExpressionStatement", + "src": "17975:28:29" + } + }, + "id": 5515, + "nodeType": "IfStatement", + "src": "17888:420:29", + "trueBody": { + "expression": { + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5463, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "17906:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5466, + "indexExpression": { + "id": 5465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17913:14:29", + "subExpression": { + "id": 5464, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "17913:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "6e", + "id": 5467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17931:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b4ecedb4964a40fe416b16c7bd8b46092040ec42ef0aa69e59f09872f105cf3", + "typeString": "literal_string \"n\"" + }, + "value": "n" + }, + "src": "17906:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5469, + "nodeType": "ExpressionStatement", + "src": "17906:28:29" + } + }, + "id": 5516, + "nodeType": "IfStatement", + "src": "17819:489:29", + "trueBody": { + "expression": { + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5453, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "17837:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5456, + "indexExpression": { + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17844:14:29", + "subExpression": { + "id": 5454, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "17844:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74", + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17862:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cac1bb71f0a97c8ac94ca9546b43178a9ad254c7b757ac07433aa6df35cd8089", + "typeString": "literal_string \"t\"" + }, + "value": "t" + }, + "src": "17837:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5459, + "nodeType": "ExpressionStatement", + "src": "17837:28:29" + } + }, + "id": 5517, + "nodeType": "IfStatement", + "src": "17750:558:29", + "trueBody": { + "expression": { + "id": 5448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 5443, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "17768:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5446, + "indexExpression": { + "id": 5445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17775:14:29", + "subExpression": { + "id": 5444, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5397, + "src": "17775:12:29", + "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:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "62", + "id": 5447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17793:3:29", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b5553de315e0edf504d9150af82dafa5c4667fa618ed0a6f19c69b41166c5510", + "typeString": "literal_string \"b\"" + }, + "value": "b" + }, + "src": "17768:28:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 5449, + "nodeType": "ExpressionStatement", + "src": "17768:28:29" + } + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5403, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5401, + "src": "17522:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 5404, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5380, + "src": "17526:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17533:6:29", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17526:13:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17522:17:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5529, + "initializationExpression": { + "assignments": [ + 5401 + ], + "declarations": [ + { + "constant": false, + "id": 5401, + "mutability": "mutable", + "name": "i", + "nameLocation": "17519:1:29", + "nodeType": "VariableDeclaration", + "scope": 5529, + "src": "17511:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17511:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5402, + "nodeType": "VariableDeclarationStatement", + "src": "17511:9:29" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 5408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "17541:3:29", + "subExpression": { + "id": 5407, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5401, + "src": "17543:1:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5409, + "nodeType": "ExpressionStatement", + "src": "17541:3:29" + }, + "nodeType": "ForStatement", + "src": "17506:894:29" + }, + { + "AST": { + "nativeSrc": "18498:129:29", + "nodeType": "YulBlock", + "src": "18498:129:29", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "output", + "nativeSrc": "18519:6:29", + "nodeType": "YulIdentifier", + "src": "18519:6:29" + }, + { + "name": "outputLength", + "nativeSrc": "18527:12:29", + "nodeType": "YulIdentifier", + "src": "18527:12:29" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18512:6:29", + "nodeType": "YulIdentifier", + "src": "18512:6:29" + }, + "nativeSrc": "18512:28:29", + "nodeType": "YulFunctionCall", + "src": "18512:28:29" + }, + "nativeSrc": "18512:28:29", + "nodeType": "YulExpressionStatement", + "src": "18512:28:29" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18560:4:29", + "nodeType": "YulLiteral", + "src": "18560:4:29", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "output", + "nativeSrc": "18570:6:29", + "nodeType": "YulIdentifier", + "src": "18570:6:29" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18582:1:29", + "nodeType": "YulLiteral", + "src": "18582:1:29", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18589:1:29", + "nodeType": "YulLiteral", + "src": "18589:1:29", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "outputLength", + "nativeSrc": "18596:12:29", + "nodeType": "YulIdentifier", + "src": "18596:12:29" + }, + { + "kind": "number", + "nativeSrc": "18610:2:29", + "nodeType": "YulLiteral", + "src": "18610:2:29", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18592:3:29", + "nodeType": "YulIdentifier", + "src": "18592:3:29" + }, + "nativeSrc": "18592:21:29", + "nodeType": "YulFunctionCall", + "src": "18592:21:29" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18585:3:29", + "nodeType": "YulIdentifier", + "src": "18585:3:29" + }, + "nativeSrc": "18585:29:29", + "nodeType": "YulFunctionCall", + "src": "18585:29:29" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18578:3:29", + "nodeType": "YulIdentifier", + "src": "18578:3:29" + }, + "nativeSrc": "18578:37:29", + "nodeType": "YulFunctionCall", + "src": "18578:37:29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18566:3:29", + "nodeType": "YulIdentifier", + "src": "18566:3:29" + }, + "nativeSrc": "18566:50:29", + "nodeType": "YulFunctionCall", + "src": "18566:50:29" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18553:6:29", + "nodeType": "YulIdentifier", + "src": "18553:6:29" + }, + "nativeSrc": "18553:64:29", + "nodeType": "YulFunctionCall", + "src": "18553:64:29" + }, + "nativeSrc": "18553:64:29", + "nodeType": "YulExpressionStatement", + "src": "18553:64:29" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5387, + "isOffset": false, + "isSlot": false, + "src": "18519:6:29", + "valueSize": 1 + }, + { + "declaration": 5387, + "isOffset": false, + "isSlot": false, + "src": "18570:6:29", + "valueSize": 1 + }, + { + "declaration": 5397, + "isOffset": false, + "isSlot": false, + "src": "18527:12:29", + "valueSize": 1 + }, + { + "declaration": 5397, + "isOffset": false, + "isSlot": false, + "src": "18596:12:29", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5530, + "nodeType": "InlineAssembly", + "src": "18473:154:29" + }, + { + "expression": { + "arguments": [ + { + "id": 5533, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5387, + "src": "18651:6:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18644:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 5531, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "18644:6:29", + "typeDescriptions": {} + } + }, + "id": 5534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18644:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 5378, + "id": 5535, + "nodeType": "Return", + "src": "18637:21:29" + } + ] + }, + "documentation": { + "id": 5372, + "nodeType": "StructuredDocumentation", + "src": "16674:576:29", + "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": 5537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "escapeJSON", + "nameLocation": "17264:10:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5374, + "mutability": "mutable", + "name": "input", + "nameLocation": "17289:5:29", + "nodeType": "VariableDeclaration", + "scope": 5537, + "src": "17275:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5373, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17275:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17274:21:29" + }, + "returnParameters": { + "id": 5378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5537, + "src": "17319:13:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5376, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17319:6:29", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17318:15:29" + }, + "scope": 5550, + "src": "17255:1410:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5548, + "nodeType": "Block", + "src": "19050:225:29", + "statements": [ + { + "AST": { + "nativeSrc": "19199:70:29", + "nodeType": "YulBlock", + "src": "19199:70:29", + "statements": [ + { + "nativeSrc": "19213:46:29", + "nodeType": "YulAssignment", + "src": "19213:46:29", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "19232:6:29", + "nodeType": "YulIdentifier", + "src": "19232:6:29" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19244:4:29", + "nodeType": "YulLiteral", + "src": "19244:4:29", + "type": "", + "value": "0x20" + }, + { + "name": "offset", + "nativeSrc": "19250:6:29", + "nodeType": "YulIdentifier", + "src": "19250:6:29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19240:3:29", + "nodeType": "YulIdentifier", + "src": "19240:3:29" + }, + "nativeSrc": "19240:17:29", + "nodeType": "YulFunctionCall", + "src": "19240:17:29" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19228:3:29", + "nodeType": "YulIdentifier", + "src": "19228:3:29" + }, + "nativeSrc": "19228:30:29", + "nodeType": "YulFunctionCall", + "src": "19228:30:29" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19222:5:29", + "nodeType": "YulIdentifier", + "src": "19222:5:29" + }, + "nativeSrc": "19222:37:29", + "nodeType": "YulFunctionCall", + "src": "19222:37:29" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19213:5:29", + "nodeType": "YulIdentifier", + "src": "19213:5:29" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5540, + "isOffset": false, + "isSlot": false, + "src": "19232:6:29", + "valueSize": 1 + }, + { + "declaration": 5542, + "isOffset": false, + "isSlot": false, + "src": "19250:6:29", + "valueSize": 1 + }, + { + "declaration": 5545, + "isOffset": false, + "isSlot": false, + "src": "19213:5:29", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5547, + "nodeType": "InlineAssembly", + "src": "19174:95:29" + } + ] + }, + "documentation": { + "id": 5538, + "nodeType": "StructuredDocumentation", + "src": "18671:268:29", + "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": 5549, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_unsafeReadBytesOffset", + "nameLocation": "18953:22:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "18989:6:29", + "nodeType": "VariableDeclaration", + "scope": 5549, + "src": "18976:19:29", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5539, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18976:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5542, + "mutability": "mutable", + "name": "offset", + "nameLocation": "19005:6:29", + "nodeType": "VariableDeclaration", + "scope": 5549, + "src": "18997:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5541, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18997:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18975:37:29" + }, + "returnParameters": { + "id": 5546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5545, + "mutability": "mutable", + "name": "value", + "nameLocation": "19043:5:29", + "nodeType": "VariableDeclaration", + "scope": 5549, + "src": "19035:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5544, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19035:7:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "19034:15:29" + }, + "scope": 5550, + "src": "18944:331:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 5551, + "src": "297:18980:29", + "usedErrors": [ + 4208, + 4211, + 4214 + ], + "usedEvents": [] + } + ], + "src": "101:19177:29" + }, + "id": 29 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 5562 + ] + }, + "id": 5563, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5552, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:30" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 5553, + "nodeType": "StructuredDocumentation", + "src": "141:280:30", + "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 5562, + "linearizedBaseContracts": [ + 5562 + ], + "name": "IERC165", + "nameLocation": "432:7:30", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 5554, + "nodeType": "StructuredDocumentation", + "src": "446:340:30", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 5561, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "800:17:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5556, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "825:11:30", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "818:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5555, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "818:6:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "817:20:30" + }, + "returnParameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5559, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5561, + "src": "861:4:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5558, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "861:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "860:6:30" + }, + "scope": 5562, + "src": "791:76:30", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 5563, + "src": "422:447:30", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:755:30" + }, + "id": 30 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 7183 + ], + "Panic": [ + 4024 + ], + "SafeCast": [ + 8948 + ] + }, + "id": 7184, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5564, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:31" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", + "file": "../Panic.sol", + "id": 5566, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7184, + "sourceUnit": 4025, + "src": "129:35:31", + "symbolAliases": [ + { + "foreign": { + "id": 5565, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "137:5:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./SafeCast.sol", + "id": 5568, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 7184, + "sourceUnit": 8949, + "src": "165:40:31", + "symbolAliases": [ + { + "foreign": { + "id": 5567, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "173:8:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 5569, + "nodeType": "StructuredDocumentation", + "src": "207:73:31", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 7183, + "linearizedBaseContracts": [ + 7183 + ], + "name": "Math", + "nameLocation": "289:4:31", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Math.Rounding", + "id": 5574, + "members": [ + { + "id": 5570, + "name": "Floor", + "nameLocation": "324:5:31", + "nodeType": "EnumValue", + "src": "324:5:31" + }, + { + "id": 5571, + "name": "Ceil", + "nameLocation": "367:4:31", + "nodeType": "EnumValue", + "src": "367:4:31" + }, + { + "id": 5572, + "name": "Trunc", + "nameLocation": "409:5:31", + "nodeType": "EnumValue", + "src": "409:5:31" + }, + { + "id": 5573, + "name": "Expand", + "nameLocation": "439:6:31", + "nodeType": "EnumValue", + "src": "439:6:31" + } + ], + "name": "Rounding", + "nameLocation": "305:8:31", + "nodeType": "EnumDefinition", + "src": "300:169:31" + }, + { + "body": { + "id": 5587, + "nodeType": "Block", + "src": "731:112:31", + "statements": [ + { + "AST": { + "nativeSrc": "766:71:31", + "nodeType": "YulBlock", + "src": "766:71:31", + "statements": [ + { + "nativeSrc": "780:16:31", + "nodeType": "YulAssignment", + "src": "780:16:31", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "791:1:31", + "nodeType": "YulIdentifier", + "src": "791:1:31" + }, + { + "name": "b", + "nativeSrc": "794:1:31", + "nodeType": "YulIdentifier", + "src": "794:1:31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "787:3:31", + "nodeType": "YulIdentifier", + "src": "787:3:31" + }, + "nativeSrc": "787:9:31", + "nodeType": "YulFunctionCall", + "src": "787:9:31" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "780:3:31", + "nodeType": "YulIdentifier", + "src": "780:3:31" + } + ] + }, + { + "nativeSrc": "809:18:31", + "nodeType": "YulAssignment", + "src": "809:18:31", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "820:3:31", + "nodeType": "YulIdentifier", + "src": "820:3:31" + }, + { + "name": "a", + "nativeSrc": "825:1:31", + "nodeType": "YulIdentifier", + "src": "825:1:31" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "817:2:31", + "nodeType": "YulIdentifier", + "src": "817:2:31" + }, + "nativeSrc": "817:10:31", + "nodeType": "YulFunctionCall", + "src": "817:10:31" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "809:4:31", + "nodeType": "YulIdentifier", + "src": "809:4:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5577, + "isOffset": false, + "isSlot": false, + "src": "791:1:31", + "valueSize": 1 + }, + { + "declaration": 5577, + "isOffset": false, + "isSlot": false, + "src": "825:1:31", + "valueSize": 1 + }, + { + "declaration": 5579, + "isOffset": false, + "isSlot": false, + "src": "794:1:31", + "valueSize": 1 + }, + { + "declaration": 5582, + "isOffset": false, + "isSlot": false, + "src": "809:4:31", + "valueSize": 1 + }, + { + "declaration": 5584, + "isOffset": false, + "isSlot": false, + "src": "780:3:31", + "valueSize": 1 + }, + { + "declaration": 5584, + "isOffset": false, + "isSlot": false, + "src": "820:3:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5586, + "nodeType": "InlineAssembly", + "src": "741:96:31" + } + ] + }, + "documentation": { + "id": 5575, + "nodeType": "StructuredDocumentation", + "src": "475:163:31", + "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": 5588, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add512", + "nameLocation": "652:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5577, + "mutability": "mutable", + "name": "a", + "nameLocation": "667:1:31", + "nodeType": "VariableDeclaration", + "scope": 5588, + "src": "659:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "659:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5579, + "mutability": "mutable", + "name": "b", + "nameLocation": "678:1:31", + "nodeType": "VariableDeclaration", + "scope": 5588, + "src": "670:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "658:22:31" + }, + "returnParameters": { + "id": 5585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5582, + "mutability": "mutable", + "name": "high", + "nameLocation": "712:4:31", + "nodeType": "VariableDeclaration", + "scope": 5588, + "src": "704:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "704:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5584, + "mutability": "mutable", + "name": "low", + "nameLocation": "726:3:31", + "nodeType": "VariableDeclaration", + "scope": 5588, + "src": "718:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "703:27:31" + }, + "scope": 7183, + "src": "643:200:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5601, + "nodeType": "Block", + "src": "1115:462:31", + "statements": [ + { + "AST": { + "nativeSrc": "1437:134:31", + "nodeType": "YulBlock", + "src": "1437:134:31", + "statements": [ + { + "nativeSrc": "1451:30:31", + "nodeType": "YulVariableDeclaration", + "src": "1451:30:31", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "1468:1:31", + "nodeType": "YulIdentifier", + "src": "1468:1:31" + }, + { + "name": "b", + "nativeSrc": "1471:1:31", + "nodeType": "YulIdentifier", + "src": "1471:1:31" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1478:1:31", + "nodeType": "YulLiteral", + "src": "1478:1:31", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1474:3:31", + "nodeType": "YulIdentifier", + "src": "1474:3:31" + }, + "nativeSrc": "1474:6:31", + "nodeType": "YulFunctionCall", + "src": "1474:6:31" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "1461:6:31", + "nodeType": "YulIdentifier", + "src": "1461:6:31" + }, + "nativeSrc": "1461:20:31", + "nodeType": "YulFunctionCall", + "src": "1461:20:31" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "1455:2:31", + "nodeType": "YulTypedName", + "src": "1455:2:31", + "type": "" + } + ] + }, + { + "nativeSrc": "1494:16:31", + "nodeType": "YulAssignment", + "src": "1494:16:31", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "1505:1:31", + "nodeType": "YulIdentifier", + "src": "1505:1:31" + }, + { + "name": "b", + "nativeSrc": "1508:1:31", + "nodeType": "YulIdentifier", + "src": "1508:1:31" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "1501:3:31", + "nodeType": "YulIdentifier", + "src": "1501:3:31" + }, + "nativeSrc": "1501:9:31", + "nodeType": "YulFunctionCall", + "src": "1501:9:31" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "1494:3:31", + "nodeType": "YulIdentifier", + "src": "1494:3:31" + } + ] + }, + { + "nativeSrc": "1523:38:31", + "nodeType": "YulAssignment", + "src": "1523:38:31", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "1539:2:31", + "nodeType": "YulIdentifier", + "src": "1539:2:31" + }, + { + "name": "low", + "nativeSrc": "1543:3:31", + "nodeType": "YulIdentifier", + "src": "1543:3:31" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1535:3:31", + "nodeType": "YulIdentifier", + "src": "1535:3:31" + }, + "nativeSrc": "1535:12:31", + "nodeType": "YulFunctionCall", + "src": "1535:12:31" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "1552:2:31", + "nodeType": "YulIdentifier", + "src": "1552:2:31" + }, + { + "name": "low", + "nativeSrc": "1556:3:31", + "nodeType": "YulIdentifier", + "src": "1556:3:31" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1549:2:31", + "nodeType": "YulIdentifier", + "src": "1549:2:31" + }, + "nativeSrc": "1549:11:31", + "nodeType": "YulFunctionCall", + "src": "1549:11:31" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1531:3:31", + "nodeType": "YulIdentifier", + "src": "1531:3:31" + }, + "nativeSrc": "1531:30:31", + "nodeType": "YulFunctionCall", + "src": "1531:30:31" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "1523:4:31", + "nodeType": "YulIdentifier", + "src": "1523:4:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5591, + "isOffset": false, + "isSlot": false, + "src": "1468:1:31", + "valueSize": 1 + }, + { + "declaration": 5591, + "isOffset": false, + "isSlot": false, + "src": "1505:1:31", + "valueSize": 1 + }, + { + "declaration": 5593, + "isOffset": false, + "isSlot": false, + "src": "1471:1:31", + "valueSize": 1 + }, + { + "declaration": 5593, + "isOffset": false, + "isSlot": false, + "src": "1508:1:31", + "valueSize": 1 + }, + { + "declaration": 5596, + "isOffset": false, + "isSlot": false, + "src": "1523:4:31", + "valueSize": 1 + }, + { + "declaration": 5598, + "isOffset": false, + "isSlot": false, + "src": "1494:3:31", + "valueSize": 1 + }, + { + "declaration": 5598, + "isOffset": false, + "isSlot": false, + "src": "1543:3:31", + "valueSize": 1 + }, + { + "declaration": 5598, + "isOffset": false, + "isSlot": false, + "src": "1556:3:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5600, + "nodeType": "InlineAssembly", + "src": "1412:159:31" + } + ] + }, + "documentation": { + "id": 5589, + "nodeType": "StructuredDocumentation", + "src": "849:173:31", + "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": 5602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul512", + "nameLocation": "1036:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5591, + "mutability": "mutable", + "name": "a", + "nameLocation": "1051:1:31", + "nodeType": "VariableDeclaration", + "scope": 5602, + "src": "1043:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1043:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5593, + "mutability": "mutable", + "name": "b", + "nameLocation": "1062:1:31", + "nodeType": "VariableDeclaration", + "scope": 5602, + "src": "1054:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1054:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1042:22:31" + }, + "returnParameters": { + "id": 5599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "high", + "nameLocation": "1096:4:31", + "nodeType": "VariableDeclaration", + "scope": 5602, + "src": "1088:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5598, + "mutability": "mutable", + "name": "low", + "nameLocation": "1110:3:31", + "nodeType": "VariableDeclaration", + "scope": 5602, + "src": "1102:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1102:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1087:27:31" + }, + "scope": 7183, + "src": "1027:550:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5636, + "nodeType": "Block", + "src": "1784:149:31", + "statements": [ + { + "id": 5635, + "nodeType": "UncheckedBlock", + "src": "1794:133:31", + "statements": [ + { + "assignments": [ + 5615 + ], + "declarations": [ + { + "constant": false, + "id": 5615, + "mutability": "mutable", + "name": "c", + "nameLocation": "1826:1:31", + "nodeType": "VariableDeclaration", + "scope": 5635, + "src": "1818:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1818:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5619, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5616, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "1830:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 5617, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5607, + "src": "1834:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1830:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1818:17:31" + }, + { + "expression": { + "id": 5624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5620, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5610, + "src": "1849:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5621, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5615, + "src": "1859:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5622, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "1864:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1859:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1849:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5625, + "nodeType": "ExpressionStatement", + "src": "1849:16:31" + }, + { + "expression": { + "id": 5633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5626, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5612, + "src": "1879:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5627, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5615, + "src": "1888:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 5630, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5610, + "src": "1908:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 5628, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "1892:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1901:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "1892:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1892:24:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1888:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1879:37:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5634, + "nodeType": "ExpressionStatement", + "src": "1879:37:31" + } + ] + } + ] + }, + "documentation": { + "id": 5603, + "nodeType": "StructuredDocumentation", + "src": "1583:105:31", + "text": " @dev Returns the addition of two unsigned integers, with a success flag (no overflow)." + }, + "id": 5637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "1702:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5605, + "mutability": "mutable", + "name": "a", + "nameLocation": "1717:1:31", + "nodeType": "VariableDeclaration", + "scope": 5637, + "src": "1709:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1709:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5607, + "mutability": "mutable", + "name": "b", + "nameLocation": "1728:1:31", + "nodeType": "VariableDeclaration", + "scope": 5637, + "src": "1720:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1720:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1708:22:31" + }, + "returnParameters": { + "id": 5613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "success", + "nameLocation": "1759:7:31", + "nodeType": "VariableDeclaration", + "scope": 5637, + "src": "1754:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1754:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "result", + "nameLocation": "1776:6:31", + "nodeType": "VariableDeclaration", + "scope": 5637, + "src": "1768:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1768:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1753:30:31" + }, + "scope": 7183, + "src": "1693:240:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5671, + "nodeType": "Block", + "src": "2143:149:31", + "statements": [ + { + "id": 5670, + "nodeType": "UncheckedBlock", + "src": "2153:133:31", + "statements": [ + { + "assignments": [ + 5650 + ], + "declarations": [ + { + "constant": false, + "id": 5650, + "mutability": "mutable", + "name": "c", + "nameLocation": "2185:1:31", + "nodeType": "VariableDeclaration", + "scope": 5670, + "src": "2177:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2177:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5654, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5651, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5640, + "src": "2189:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 5652, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "2193:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2189:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2177:17:31" + }, + { + "expression": { + "id": 5659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5655, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "2208:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5656, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "2218:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 5657, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5640, + "src": "2223:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2218:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2208:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5660, + "nodeType": "ExpressionStatement", + "src": "2208:16:31" + }, + { + "expression": { + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5661, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "2238:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5662, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "2247:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 5665, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "2267:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 5663, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "2251:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 5664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2260:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "2251:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2251:24:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2247:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2238:37:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5669, + "nodeType": "ExpressionStatement", + "src": "2238:37:31" + } + ] + } + ] + }, + "documentation": { + "id": 5638, + "nodeType": "StructuredDocumentation", + "src": "1939:108:31", + "text": " @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow)." + }, + "id": 5672, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "2061:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5640, + "mutability": "mutable", + "name": "a", + "nameLocation": "2076:1:31", + "nodeType": "VariableDeclaration", + "scope": 5672, + "src": "2068:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2068:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5642, + "mutability": "mutable", + "name": "b", + "nameLocation": "2087:1:31", + "nodeType": "VariableDeclaration", + "scope": 5672, + "src": "2079:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2079:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2067:22:31" + }, + "returnParameters": { + "id": 5648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5645, + "mutability": "mutable", + "name": "success", + "nameLocation": "2118:7:31", + "nodeType": "VariableDeclaration", + "scope": 5672, + "src": "2113:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2113:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5647, + "mutability": "mutable", + "name": "result", + "nameLocation": "2135:6:31", + "nodeType": "VariableDeclaration", + "scope": 5672, + "src": "2127:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2127:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2112:30:31" + }, + "scope": 7183, + "src": "2052:240:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5701, + "nodeType": "Block", + "src": "2505:391:31", + "statements": [ + { + "id": 5700, + "nodeType": "UncheckedBlock", + "src": "2515:375:31", + "statements": [ + { + "assignments": [ + 5685 + ], + "declarations": [ + { + "constant": false, + "id": 5685, + "mutability": "mutable", + "name": "c", + "nameLocation": "2547:1:31", + "nodeType": "VariableDeclaration", + "scope": 5700, + "src": "2539:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5689, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5686, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5675, + "src": "2551:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 5687, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5677, + "src": "2555:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2551:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2539:17:31" + }, + { + "AST": { + "nativeSrc": "2595:188:31", + "nodeType": "YulBlock", + "src": "2595:188:31", + "statements": [ + { + "nativeSrc": "2727:42:31", + "nodeType": "YulAssignment", + "src": "2727:42:31", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "c", + "nativeSrc": "2748:1:31", + "nodeType": "YulIdentifier", + "src": "2748:1:31" + }, + { + "name": "a", + "nativeSrc": "2751:1:31", + "nodeType": "YulIdentifier", + "src": "2751:1:31" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "2744:3:31", + "nodeType": "YulIdentifier", + "src": "2744:3:31" + }, + "nativeSrc": "2744:9:31", + "nodeType": "YulFunctionCall", + "src": "2744:9:31" + }, + { + "name": "b", + "nativeSrc": "2755:1:31", + "nodeType": "YulIdentifier", + "src": "2755:1:31" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2741:2:31", + "nodeType": "YulIdentifier", + "src": "2741:2:31" + }, + "nativeSrc": "2741:16:31", + "nodeType": "YulFunctionCall", + "src": "2741:16:31" + }, + { + "arguments": [ + { + "name": "a", + "nativeSrc": "2766:1:31", + "nodeType": "YulIdentifier", + "src": "2766:1:31" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2759:6:31", + "nodeType": "YulIdentifier", + "src": "2759:6:31" + }, + "nativeSrc": "2759:9:31", + "nodeType": "YulFunctionCall", + "src": "2759:9:31" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2738:2:31", + "nodeType": "YulIdentifier", + "src": "2738:2:31" + }, + "nativeSrc": "2738:31:31", + "nodeType": "YulFunctionCall", + "src": "2738:31:31" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "2727:7:31", + "nodeType": "YulIdentifier", + "src": "2727:7:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5675, + "isOffset": false, + "isSlot": false, + "src": "2751:1:31", + "valueSize": 1 + }, + { + "declaration": 5675, + "isOffset": false, + "isSlot": false, + "src": "2766:1:31", + "valueSize": 1 + }, + { + "declaration": 5677, + "isOffset": false, + "isSlot": false, + "src": "2755:1:31", + "valueSize": 1 + }, + { + "declaration": 5685, + "isOffset": false, + "isSlot": false, + "src": "2748:1:31", + "valueSize": 1 + }, + { + "declaration": 5680, + "isOffset": false, + "isSlot": false, + "src": "2727:7:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5690, + "nodeType": "InlineAssembly", + "src": "2570:213:31" + }, + { + "expression": { + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5691, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "2842:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5692, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5685, + "src": "2851:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 5695, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5680, + "src": "2871:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 5693, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "2855:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2864:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "2855:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2855:24:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2851:28:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2842:37:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "2842:37:31" + } + ] + } + ] + }, + "documentation": { + "id": 5673, + "nodeType": "StructuredDocumentation", + "src": "2298:111:31", + "text": " @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow)." + }, + "id": 5702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "2423:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5675, + "mutability": "mutable", + "name": "a", + "nameLocation": "2438:1:31", + "nodeType": "VariableDeclaration", + "scope": 5702, + "src": "2430:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5677, + "mutability": "mutable", + "name": "b", + "nameLocation": "2449:1:31", + "nodeType": "VariableDeclaration", + "scope": 5702, + "src": "2441:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2441:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2429:22:31" + }, + "returnParameters": { + "id": 5683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5680, + "mutability": "mutable", + "name": "success", + "nameLocation": "2480:7:31", + "nodeType": "VariableDeclaration", + "scope": 5702, + "src": "2475:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5679, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2475:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5682, + "mutability": "mutable", + "name": "result", + "nameLocation": "2497:6:31", + "nodeType": "VariableDeclaration", + "scope": 5702, + "src": "2489:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2489:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2474:30:31" + }, + "scope": 7183, + "src": "2414:482:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5722, + "nodeType": "Block", + "src": "3111:231:31", + "statements": [ + { + "id": 5721, + "nodeType": "UncheckedBlock", + "src": "3121:215:31", + "statements": [ + { + "expression": { + "id": 5718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5714, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5710, + "src": "3145:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5715, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "3155:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3159:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3155:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3145:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5719, + "nodeType": "ExpressionStatement", + "src": "3145:15:31" + }, + { + "AST": { + "nativeSrc": "3199:127:31", + "nodeType": "YulBlock", + "src": "3199:127:31", + "statements": [ + { + "nativeSrc": "3293:19:31", + "nodeType": "YulAssignment", + "src": "3293:19:31", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "3307:1:31", + "nodeType": "YulIdentifier", + "src": "3307:1:31" + }, + { + "name": "b", + "nativeSrc": "3310:1:31", + "nodeType": "YulIdentifier", + "src": "3310:1:31" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3303:3:31", + "nodeType": "YulIdentifier", + "src": "3303:3:31" + }, + "nativeSrc": "3303:9:31", + "nodeType": "YulFunctionCall", + "src": "3303:9:31" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3293:6:31", + "nodeType": "YulIdentifier", + "src": "3293:6:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5705, + "isOffset": false, + "isSlot": false, + "src": "3307:1:31", + "valueSize": 1 + }, + { + "declaration": 5707, + "isOffset": false, + "isSlot": false, + "src": "3310:1:31", + "valueSize": 1 + }, + { + "declaration": 5712, + "isOffset": false, + "isSlot": false, + "src": "3293:6:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5720, + "nodeType": "InlineAssembly", + "src": "3174:152:31" + } + ] + } + ] + }, + "documentation": { + "id": 5703, + "nodeType": "StructuredDocumentation", + "src": "2902:113:31", + "text": " @dev Returns the division of two unsigned integers, with a success flag (no division by zero)." + }, + "id": 5723, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "3029:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5705, + "mutability": "mutable", + "name": "a", + "nameLocation": "3044:1:31", + "nodeType": "VariableDeclaration", + "scope": 5723, + "src": "3036:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3036:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "b", + "nameLocation": "3055:1:31", + "nodeType": "VariableDeclaration", + "scope": 5723, + "src": "3047:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3047:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3035:22:31" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5710, + "mutability": "mutable", + "name": "success", + "nameLocation": "3086:7:31", + "nodeType": "VariableDeclaration", + "scope": 5723, + "src": "3081:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5709, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3081:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5712, + "mutability": "mutable", + "name": "result", + "nameLocation": "3103:6:31", + "nodeType": "VariableDeclaration", + "scope": 5723, + "src": "3095:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5711, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3095:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3080:30:31" + }, + "scope": 7183, + "src": "3020:322:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5743, + "nodeType": "Block", + "src": "3567:231:31", + "statements": [ + { + "id": 5742, + "nodeType": "UncheckedBlock", + "src": "3577:215:31", + "statements": [ + { + "expression": { + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5735, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "3601:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5736, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5728, + "src": "3611:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3615:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3611:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3601:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5740, + "nodeType": "ExpressionStatement", + "src": "3601:15:31" + }, + { + "AST": { + "nativeSrc": "3655:127:31", + "nodeType": "YulBlock", + "src": "3655:127:31", + "statements": [ + { + "nativeSrc": "3749:19:31", + "nodeType": "YulAssignment", + "src": "3749:19:31", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "3763:1:31", + "nodeType": "YulIdentifier", + "src": "3763:1:31" + }, + { + "name": "b", + "nativeSrc": "3766:1:31", + "nodeType": "YulIdentifier", + "src": "3766:1:31" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "3759:3:31", + "nodeType": "YulIdentifier", + "src": "3759:3:31" + }, + "nativeSrc": "3759:9:31", + "nodeType": "YulFunctionCall", + "src": "3759:9:31" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3749:6:31", + "nodeType": "YulIdentifier", + "src": "3749:6:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5726, + "isOffset": false, + "isSlot": false, + "src": "3763:1:31", + "valueSize": 1 + }, + { + "declaration": 5728, + "isOffset": false, + "isSlot": false, + "src": "3766:1:31", + "valueSize": 1 + }, + { + "declaration": 5733, + "isOffset": false, + "isSlot": false, + "src": "3749:6:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5741, + "nodeType": "InlineAssembly", + "src": "3630:152:31" + } + ] + } + ] + }, + "documentation": { + "id": 5724, + "nodeType": "StructuredDocumentation", + "src": "3348:123:31", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)." + }, + "id": 5744, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "3485:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5726, + "mutability": "mutable", + "name": "a", + "nameLocation": "3500:1:31", + "nodeType": "VariableDeclaration", + "scope": 5744, + "src": "3492:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3492:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5728, + "mutability": "mutable", + "name": "b", + "nameLocation": "3511:1:31", + "nodeType": "VariableDeclaration", + "scope": 5744, + "src": "3503:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3503:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3491:22:31" + }, + "returnParameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5731, + "mutability": "mutable", + "name": "success", + "nameLocation": "3542:7:31", + "nodeType": "VariableDeclaration", + "scope": 5744, + "src": "3537:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5730, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3537:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "mutability": "mutable", + "name": "result", + "nameLocation": "3559:6:31", + "nodeType": "VariableDeclaration", + "scope": 5744, + "src": "3551:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3536:30:31" + }, + "scope": 7183, + "src": "3476:322:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5773, + "nodeType": "Block", + "src": "3989:122:31", + "statements": [ + { + "assignments": [ + 5755, + 5757 + ], + "declarations": [ + { + "constant": false, + "id": 5755, + "mutability": "mutable", + "name": "success", + "nameLocation": "4005:7:31", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "4000:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5754, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4000:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5757, + "mutability": "mutable", + "name": "result", + "nameLocation": "4022:6:31", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "4014:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4014:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5762, + "initialValue": { + "arguments": [ + { + "id": 5759, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "4039:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5760, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5749, + "src": "4042:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5758, + "name": "tryAdd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5637, + "src": "4032:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 5761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4032:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3999:45:31" + }, + { + "expression": { + "arguments": [ + { + "id": 5764, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5755, + "src": "4069:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5765, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5757, + "src": "4078:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 5768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4091:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4091:7:31", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 5766, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4086:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4086:13:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 5770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4100:3:31", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4086:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5763, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5851, + "src": "4061:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4061:43:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5753, + "id": 5772, + "nodeType": "Return", + "src": "4054:50:31" + } + ] + }, + "documentation": { + "id": 5745, + "nodeType": "StructuredDocumentation", + "src": "3804:103:31", + "text": " @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing." + }, + "id": 5774, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingAdd", + "nameLocation": "3921:13:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5747, + "mutability": "mutable", + "name": "a", + "nameLocation": "3943:1:31", + "nodeType": "VariableDeclaration", + "scope": 5774, + "src": "3935:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3935:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5749, + "mutability": "mutable", + "name": "b", + "nameLocation": "3954:1:31", + "nodeType": "VariableDeclaration", + "scope": 5774, + "src": "3946:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3934:22:31" + }, + "returnParameters": { + "id": 5753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5752, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5774, + "src": "3980:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3980:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3979:9:31" + }, + "scope": 7183, + "src": "3912:199:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5793, + "nodeType": "Block", + "src": "4294:73:31", + "statements": [ + { + "assignments": [ + null, + 5785 + ], + "declarations": [ + null, + { + "constant": false, + "id": 5785, + "mutability": "mutable", + "name": "result", + "nameLocation": "4315:6:31", + "nodeType": "VariableDeclaration", + "scope": 5793, + "src": "4307:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4307:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5790, + "initialValue": { + "arguments": [ + { + "id": 5787, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5777, + "src": "4332:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5788, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5779, + "src": "4335:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5786, + "name": "trySub", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5672, + "src": "4325:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 5789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4325:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4304:33:31" + }, + { + "expression": { + "id": 5791, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5785, + "src": "4354:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5783, + "id": 5792, + "nodeType": "Return", + "src": "4347:13:31" + } + ] + }, + "documentation": { + "id": 5775, + "nodeType": "StructuredDocumentation", + "src": "4117:95:31", + "text": " @dev Unsigned saturating subtraction, bounds to zero instead of overflowing." + }, + "id": 5794, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingSub", + "nameLocation": "4226:13:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5777, + "mutability": "mutable", + "name": "a", + "nameLocation": "4248:1:31", + "nodeType": "VariableDeclaration", + "scope": 5794, + "src": "4240:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4240:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5779, + "mutability": "mutable", + "name": "b", + "nameLocation": "4259:1:31", + "nodeType": "VariableDeclaration", + "scope": 5794, + "src": "4251:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4251:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4239:22:31" + }, + "returnParameters": { + "id": 5783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5794, + "src": "4285:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4285:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4284:9:31" + }, + "scope": 7183, + "src": "4217:150:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5823, + "nodeType": "Block", + "src": "4564:122:31", + "statements": [ + { + "assignments": [ + 5805, + 5807 + ], + "declarations": [ + { + "constant": false, + "id": 5805, + "mutability": "mutable", + "name": "success", + "nameLocation": "4580:7:31", + "nodeType": "VariableDeclaration", + "scope": 5823, + "src": "4575:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5804, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4575:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5807, + "mutability": "mutable", + "name": "result", + "nameLocation": "4597:6:31", + "nodeType": "VariableDeclaration", + "scope": 5823, + "src": "4589:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4589:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5812, + "initialValue": { + "arguments": [ + { + "id": 5809, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "4614:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5810, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "4617:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5808, + "name": "tryMul", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5702, + "src": "4607:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 5811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4607:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4574:45:31" + }, + { + "expression": { + "arguments": [ + { + "id": 5814, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5805, + "src": "4644:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5815, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5807, + "src": "4653:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 5818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4666:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4666:7:31", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 5816, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4661:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4661:13:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 5820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4675:3:31", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4661:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5813, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5851, + "src": "4636:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4636:43:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5803, + "id": 5822, + "nodeType": "Return", + "src": "4629:50:31" + } + ] + }, + "documentation": { + "id": 5795, + "nodeType": "StructuredDocumentation", + "src": "4373:109:31", + "text": " @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing." + }, + "id": 5824, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingMul", + "nameLocation": "4496:13:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "a", + "nameLocation": "4518:1:31", + "nodeType": "VariableDeclaration", + "scope": 5824, + "src": "4510:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4510:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "b", + "nameLocation": "4529:1:31", + "nodeType": "VariableDeclaration", + "scope": 5824, + "src": "4521:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5798, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4521:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4509:22:31" + }, + "returnParameters": { + "id": 5803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5802, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5824, + "src": "4555:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4555:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4554:9:31" + }, + "scope": 7183, + "src": "4487:199:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5850, + "nodeType": "Block", + "src": "5158:207:31", + "statements": [ + { + "id": 5849, + "nodeType": "UncheckedBlock", + "src": "5168:191:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5831, + "src": "5306:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5837, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "5312:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 5838, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5831, + "src": "5316:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5312:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5840, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5311:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 5843, + "name": "condition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "5337:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 5841, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "5321:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5330:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "5321:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5321:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5311:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5846, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5310:38:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5306:42:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5835, + "id": 5848, + "nodeType": "Return", + "src": "5299:49:31" + } + ] + } + ] + }, + "documentation": { + "id": 5825, + "nodeType": "StructuredDocumentation", + "src": "4692:374:31", + "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": 5851, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ternary", + "nameLocation": "5080:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "condition", + "nameLocation": "5093:9:31", + "nodeType": "VariableDeclaration", + "scope": 5851, + "src": "5088:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5826, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5088:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5829, + "mutability": "mutable", + "name": "a", + "nameLocation": "5112:1:31", + "nodeType": "VariableDeclaration", + "scope": 5851, + "src": "5104:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5104:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5831, + "mutability": "mutable", + "name": "b", + "nameLocation": "5123:1:31", + "nodeType": "VariableDeclaration", + "scope": 5851, + "src": "5115:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5115:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5087:38:31" + }, + "returnParameters": { + "id": 5835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5834, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5851, + "src": "5149:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5149:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5148:9:31" + }, + "scope": 7183, + "src": "5071:294:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5869, + "nodeType": "Block", + "src": "5502:44:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5862, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "5527:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 5863, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "5531:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5527:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5865, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "5534:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5866, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5856, + "src": "5537:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5861, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5851, + "src": "5519:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5519:20:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5860, + "id": 5868, + "nodeType": "Return", + "src": "5512:27:31" + } + ] + }, + "documentation": { + "id": 5852, + "nodeType": "StructuredDocumentation", + "src": "5371:59:31", + "text": " @dev Returns the largest of two numbers." + }, + "id": 5870, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "5444:3:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5854, + "mutability": "mutable", + "name": "a", + "nameLocation": "5456:1:31", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "5448:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5448:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5856, + "mutability": "mutable", + "name": "b", + "nameLocation": "5467:1:31", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "5459:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5855, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5459:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5447:22:31" + }, + "returnParameters": { + "id": 5860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5859, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5870, + "src": "5493:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5493:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5492:9:31" + }, + "scope": 7183, + "src": "5435:111:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5888, + "nodeType": "Block", + "src": "5684:44:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5881, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5873, + "src": "5709:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 5882, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5875, + "src": "5713:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5709:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 5884, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5873, + "src": "5716:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5885, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5875, + "src": "5719:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5880, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5851, + "src": "5701:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5701:20:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5879, + "id": 5887, + "nodeType": "Return", + "src": "5694:27:31" + } + ] + }, + "documentation": { + "id": 5871, + "nodeType": "StructuredDocumentation", + "src": "5552:60:31", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 5889, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "5626:3:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5873, + "mutability": "mutable", + "name": "a", + "nameLocation": "5638:1:31", + "nodeType": "VariableDeclaration", + "scope": 5889, + "src": "5630:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5630:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5875, + "mutability": "mutable", + "name": "b", + "nameLocation": "5649:1:31", + "nodeType": "VariableDeclaration", + "scope": 5889, + "src": "5641:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5874, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5641:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5629:22:31" + }, + "returnParameters": { + "id": 5879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5878, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5889, + "src": "5675:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5675:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5674:9:31" + }, + "scope": 7183, + "src": "5617:111:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5911, + "nodeType": "Block", + "src": "5912:82:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5899, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "5967:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 5900, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "5971:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5967:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5902, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5966:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5892, + "src": "5977:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 5904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5894, + "src": "5981:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5977:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5976:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 5907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5986:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5976:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5966:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5898, + "id": 5910, + "nodeType": "Return", + "src": "5959:28:31" + } + ] + }, + "documentation": { + "id": 5890, + "nodeType": "StructuredDocumentation", + "src": "5734:102:31", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 5912, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "5850:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5892, + "mutability": "mutable", + "name": "a", + "nameLocation": "5866:1:31", + "nodeType": "VariableDeclaration", + "scope": 5912, + "src": "5858:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5858:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5894, + "mutability": "mutable", + "name": "b", + "nameLocation": "5877:1:31", + "nodeType": "VariableDeclaration", + "scope": 5912, + "src": "5869:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5869:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5857:22:31" + }, + "returnParameters": { + "id": 5898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5897, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5912, + "src": "5903:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5903:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5902:9:31" + }, + "scope": 7183, + "src": "5841:153:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5952, + "nodeType": "Block", + "src": "6286:633:31", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5922, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "6300:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6305:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6300:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5933, + "nodeType": "IfStatement", + "src": "6296:150:31", + "trueBody": { + "id": 5932, + "nodeType": "Block", + "src": "6308:138:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 5928, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "6412:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 5929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6418:16:31", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 3991, + "src": "6412:22:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 5925, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "6400:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 5927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6406:5:31", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 4023, + "src": "6400:11:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 5930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6400:35:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5931, + "nodeType": "ExpressionStatement", + "src": "6400:35:31" + } + ] + } + }, + { + "id": 5951, + "nodeType": "UncheckedBlock", + "src": "6829:84:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5936, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5915, + "src": "6876:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6880:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6876:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 5934, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "6860:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 5935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6869:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "6860:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 5939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6860:22:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5940, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5915, + "src": "6887:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 5941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6891:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6887:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5943, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6886:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 5944, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5917, + "src": "6896:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6886:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 5946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6900:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6886:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5948, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6885:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6860:42:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5921, + "id": 5950, + "nodeType": "Return", + "src": "6853:49:31" + } + ] + } + ] + }, + "documentation": { + "id": 5913, + "nodeType": "StructuredDocumentation", + "src": "6000:210:31", + "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": 5953, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "6224:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5915, + "mutability": "mutable", + "name": "a", + "nameLocation": "6240:1:31", + "nodeType": "VariableDeclaration", + "scope": 5953, + "src": "6232:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5917, + "mutability": "mutable", + "name": "b", + "nameLocation": "6251:1:31", + "nodeType": "VariableDeclaration", + "scope": 5953, + "src": "6243:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6243:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6231:22:31" + }, + "returnParameters": { + "id": 5921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5920, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5953, + "src": "6277:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6277:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6276:9:31" + }, + "scope": 7183, + "src": "6215:704:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6088, + "nodeType": "Block", + "src": "7340:3585:31", + "statements": [ + { + "id": 6087, + "nodeType": "UncheckedBlock", + "src": "7350:3569:31", + "statements": [ + { + "assignments": [ + 5966, + 5968 + ], + "declarations": [ + { + "constant": false, + "id": 5966, + "mutability": "mutable", + "name": "high", + "nameLocation": "7383:4:31", + "nodeType": "VariableDeclaration", + "scope": 6087, + "src": "7375:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7375:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5968, + "mutability": "mutable", + "name": "low", + "nameLocation": "7397:3:31", + "nodeType": "VariableDeclaration", + "scope": 6087, + "src": "7389:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5967, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7389:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5973, + "initialValue": { + "arguments": [ + { + "id": 5970, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5956, + "src": "7411:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5971, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5958, + "src": "7414:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5969, + "name": "mul512", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5602, + "src": "7404:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 5972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7404:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7374:42:31" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5974, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5966, + "src": "7498:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7506:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7498:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5982, + "nodeType": "IfStatement", + "src": "7494:365:31", + "trueBody": { + "id": 5981, + "nodeType": "Block", + "src": "7509:350:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5977, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5968, + "src": "7827:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 5978, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "7833:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7827:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5964, + "id": 5980, + "nodeType": "Return", + "src": "7820:24:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5983, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "7969:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 5984, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5966, + "src": "7984:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7969:19:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6001, + "nodeType": "IfStatement", + "src": "7965:142:31", + "trueBody": { + "id": 6000, + "nodeType": "Block", + "src": "7990:117:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5990, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "8028:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8043:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8028:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 5993, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "8046:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8052:16:31", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 3991, + "src": "8046:22:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 5995, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "8070:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8076:14:31", + "memberName": "UNDER_OVERFLOW", + "nodeType": "MemberAccess", + "referencedDeclaration": 3987, + "src": "8070:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5989, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5851, + "src": "8020:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8020:71:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 5986, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "8008:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 5988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8014:5:31", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 4023, + "src": "8008:11:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8008:84:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5999, + "nodeType": "ExpressionStatement", + "src": "8008:84:31" + } + ] + } + }, + { + "assignments": [ + 6003 + ], + "declarations": [ + { + "constant": false, + "id": 6003, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "8367:9:31", + "nodeType": "VariableDeclaration", + "scope": 6087, + "src": "8359:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8359:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6004, + "nodeType": "VariableDeclarationStatement", + "src": "8359:17:31" + }, + { + "AST": { + "nativeSrc": "8415:283:31", + "nodeType": "YulBlock", + "src": "8415:283:31", + "statements": [ + { + "nativeSrc": "8484:38:31", + "nodeType": "YulAssignment", + "src": "8484:38:31", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "8504:1:31", + "nodeType": "YulIdentifier", + "src": "8504:1:31" + }, + { + "name": "y", + "nativeSrc": "8507:1:31", + "nodeType": "YulIdentifier", + "src": "8507:1:31" + }, + { + "name": "denominator", + "nativeSrc": "8510:11:31", + "nodeType": "YulIdentifier", + "src": "8510:11:31" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "8497:6:31", + "nodeType": "YulIdentifier", + "src": "8497:6:31" + }, + "nativeSrc": "8497:25:31", + "nodeType": "YulFunctionCall", + "src": "8497:25:31" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "8484:9:31", + "nodeType": "YulIdentifier", + "src": "8484:9:31" + } + ] + }, + { + "nativeSrc": "8604:37:31", + "nodeType": "YulAssignment", + "src": "8604:37:31", + "value": { + "arguments": [ + { + "name": "high", + "nativeSrc": "8616:4:31", + "nodeType": "YulIdentifier", + "src": "8616:4:31" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "8625:9:31", + "nodeType": "YulIdentifier", + "src": "8625:9:31" + }, + { + "name": "low", + "nativeSrc": "8636:3:31", + "nodeType": "YulIdentifier", + "src": "8636:3:31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8622:2:31", + "nodeType": "YulIdentifier", + "src": "8622:2:31" + }, + "nativeSrc": "8622:18:31", + "nodeType": "YulFunctionCall", + "src": "8622:18:31" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8612:3:31", + "nodeType": "YulIdentifier", + "src": "8612:3:31" + }, + "nativeSrc": "8612:29:31", + "nodeType": "YulFunctionCall", + "src": "8612:29:31" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "8604:4:31", + "nodeType": "YulIdentifier", + "src": "8604:4:31" + } + ] + }, + { + "nativeSrc": "8658:26:31", + "nodeType": "YulAssignment", + "src": "8658:26:31", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "8669:3:31", + "nodeType": "YulIdentifier", + "src": "8669:3:31" + }, + { + "name": "remainder", + "nativeSrc": "8674:9:31", + "nodeType": "YulIdentifier", + "src": "8674:9:31" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8665:3:31", + "nodeType": "YulIdentifier", + "src": "8665:3:31" + }, + "nativeSrc": "8665:19:31", + "nodeType": "YulFunctionCall", + "src": "8665:19:31" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "8658:3:31", + "nodeType": "YulIdentifier", + "src": "8658:3:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5960, + "isOffset": false, + "isSlot": false, + "src": "8510:11:31", + "valueSize": 1 + }, + { + "declaration": 5966, + "isOffset": false, + "isSlot": false, + "src": "8604:4:31", + "valueSize": 1 + }, + { + "declaration": 5966, + "isOffset": false, + "isSlot": false, + "src": "8616:4:31", + "valueSize": 1 + }, + { + "declaration": 5968, + "isOffset": false, + "isSlot": false, + "src": "8636:3:31", + "valueSize": 1 + }, + { + "declaration": 5968, + "isOffset": false, + "isSlot": false, + "src": "8658:3:31", + "valueSize": 1 + }, + { + "declaration": 5968, + "isOffset": false, + "isSlot": false, + "src": "8669:3:31", + "valueSize": 1 + }, + { + "declaration": 6003, + "isOffset": false, + "isSlot": false, + "src": "8484:9:31", + "valueSize": 1 + }, + { + "declaration": 6003, + "isOffset": false, + "isSlot": false, + "src": "8625:9:31", + "valueSize": 1 + }, + { + "declaration": 6003, + "isOffset": false, + "isSlot": false, + "src": "8674:9:31", + "valueSize": 1 + }, + { + "declaration": 5956, + "isOffset": false, + "isSlot": false, + "src": "8504:1:31", + "valueSize": 1 + }, + { + "declaration": 5958, + "isOffset": false, + "isSlot": false, + "src": "8507:1:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6005, + "nodeType": "InlineAssembly", + "src": "8390:308:31" + }, + { + "assignments": [ + 6007 + ], + "declarations": [ + { + "constant": false, + "id": 6007, + "mutability": "mutable", + "name": "twos", + "nameLocation": "8910:4:31", + "nodeType": "VariableDeclaration", + "scope": 6087, + "src": "8902:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8902:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6014, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6008, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "8917:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 6009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8932:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 6010, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "8936:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8932:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6012, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8931:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8917:31:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8902:46:31" + }, + { + "AST": { + "nativeSrc": "8987:359:31", + "nodeType": "YulBlock", + "src": "8987:359:31", + "statements": [ + { + "nativeSrc": "9052:37:31", + "nodeType": "YulAssignment", + "src": "9052:37:31", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "9071:11:31", + "nodeType": "YulIdentifier", + "src": "9071:11:31" + }, + { + "name": "twos", + "nativeSrc": "9084:4:31", + "nodeType": "YulIdentifier", + "src": "9084:4:31" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9067:3:31", + "nodeType": "YulIdentifier", + "src": "9067:3:31" + }, + "nativeSrc": "9067:22:31", + "nodeType": "YulFunctionCall", + "src": "9067:22:31" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "9052:11:31", + "nodeType": "YulIdentifier", + "src": "9052:11:31" + } + ] + }, + { + "nativeSrc": "9153:21:31", + "nodeType": "YulAssignment", + "src": "9153:21:31", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "9164:3:31", + "nodeType": "YulIdentifier", + "src": "9164:3:31" + }, + { + "name": "twos", + "nativeSrc": "9169:4:31", + "nodeType": "YulIdentifier", + "src": "9169:4:31" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9160:3:31", + "nodeType": "YulIdentifier", + "src": "9160:3:31" + }, + "nativeSrc": "9160:14:31", + "nodeType": "YulFunctionCall", + "src": "9160:14:31" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "9153:3:31", + "nodeType": "YulIdentifier", + "src": "9153:3:31" + } + ] + }, + { + "nativeSrc": "9293:39:31", + "nodeType": "YulAssignment", + "src": "9293:39:31", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9313:1:31", + "nodeType": "YulLiteral", + "src": "9313:1:31", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "9316:4:31", + "nodeType": "YulIdentifier", + "src": "9316:4:31" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9309:3:31", + "nodeType": "YulIdentifier", + "src": "9309:3:31" + }, + "nativeSrc": "9309:12:31", + "nodeType": "YulFunctionCall", + "src": "9309:12:31" + }, + { + "name": "twos", + "nativeSrc": "9323:4:31", + "nodeType": "YulIdentifier", + "src": "9323:4:31" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9305:3:31", + "nodeType": "YulIdentifier", + "src": "9305:3:31" + }, + "nativeSrc": "9305:23:31", + "nodeType": "YulFunctionCall", + "src": "9305:23:31" + }, + { + "kind": "number", + "nativeSrc": "9330:1:31", + "nodeType": "YulLiteral", + "src": "9330:1:31", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9301:3:31", + "nodeType": "YulIdentifier", + "src": "9301:3:31" + }, + "nativeSrc": "9301:31:31", + "nodeType": "YulFunctionCall", + "src": "9301:31:31" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "9293:4:31", + "nodeType": "YulIdentifier", + "src": "9293:4:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5960, + "isOffset": false, + "isSlot": false, + "src": "9052:11:31", + "valueSize": 1 + }, + { + "declaration": 5960, + "isOffset": false, + "isSlot": false, + "src": "9071:11:31", + "valueSize": 1 + }, + { + "declaration": 5968, + "isOffset": false, + "isSlot": false, + "src": "9153:3:31", + "valueSize": 1 + }, + { + "declaration": 5968, + "isOffset": false, + "isSlot": false, + "src": "9164:3:31", + "valueSize": 1 + }, + { + "declaration": 6007, + "isOffset": false, + "isSlot": false, + "src": "9084:4:31", + "valueSize": 1 + }, + { + "declaration": 6007, + "isOffset": false, + "isSlot": false, + "src": "9169:4:31", + "valueSize": 1 + }, + { + "declaration": 6007, + "isOffset": false, + "isSlot": false, + "src": "9293:4:31", + "valueSize": 1 + }, + { + "declaration": 6007, + "isOffset": false, + "isSlot": false, + "src": "9316:4:31", + "valueSize": 1 + }, + { + "declaration": 6007, + "isOffset": false, + "isSlot": false, + "src": "9323:4:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6015, + "nodeType": "InlineAssembly", + "src": "8962:384:31" + }, + { + "expression": { + "id": 6020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6016, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5968, + "src": "9409:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6017, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5966, + "src": "9416:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6018, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6007, + "src": "9423:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9416:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9409:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6021, + "nodeType": "ExpressionStatement", + "src": "9409:18:31" + }, + { + "assignments": [ + 6023 + ], + "declarations": [ + { + "constant": false, + "id": 6023, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "9770:7:31", + "nodeType": "VariableDeclaration", + "scope": 6087, + "src": "9762:15:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9762:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6030, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 6024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9781:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6025, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "9785:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9781:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6027, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9780:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 6028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9800:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9780:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9762:39:31" + }, + { + "expression": { + "id": 6037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6031, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10018:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10029:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6033, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "10033:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6034, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10047:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10033:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10029:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10018:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6038, + "nodeType": "ExpressionStatement", + "src": "10018:36:31" + }, + { + "expression": { + "id": 6045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6039, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10088:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10099:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6041, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "10103:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6042, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10117:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10099:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10088:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6046, + "nodeType": "ExpressionStatement", + "src": "10088:36:31" + }, + { + "expression": { + "id": 6053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6047, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10160:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10171:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6049, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "10175:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6050, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10189:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10175:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10171:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10160:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6054, + "nodeType": "ExpressionStatement", + "src": "10160:36:31" + }, + { + "expression": { + "id": 6061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6055, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10231:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10242:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6057, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "10246:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6058, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10260:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10246:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10242:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10231:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6062, + "nodeType": "ExpressionStatement", + "src": "10231:36:31" + }, + { + "expression": { + "id": 6069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6063, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10304:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10315:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6065, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "10319:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6066, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10333:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10319:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10315:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10304:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6070, + "nodeType": "ExpressionStatement", + "src": "10304:36:31" + }, + { + "expression": { + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6071, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10378:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 6072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10389:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6073, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5960, + "src": "10393:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6074, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10407:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10393:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10389:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10378:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6078, + "nodeType": "ExpressionStatement", + "src": "10378:36:31" + }, + { + "expression": { + "id": 6083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6079, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5963, + "src": "10859:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6080, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5968, + "src": "10868:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6081, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6023, + "src": "10874:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10868:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10859:22:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6084, + "nodeType": "ExpressionStatement", + "src": "10859:22:31" + }, + { + "expression": { + "id": 6085, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5963, + "src": "10902:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5964, + "id": 6086, + "nodeType": "Return", + "src": "10895:13:31" + } + ] + } + ] + }, + "documentation": { + "id": 5954, + "nodeType": "StructuredDocumentation", + "src": "6925:312:31", + "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": 6089, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "7251:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5956, + "mutability": "mutable", + "name": "x", + "nameLocation": "7266:1:31", + "nodeType": "VariableDeclaration", + "scope": 6089, + "src": "7258:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7258:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5958, + "mutability": "mutable", + "name": "y", + "nameLocation": "7277:1:31", + "nodeType": "VariableDeclaration", + "scope": 6089, + "src": "7269:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7269:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5960, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "7288:11:31", + "nodeType": "VariableDeclaration", + "scope": 6089, + "src": "7280:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7280:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7257:43:31" + }, + "returnParameters": { + "id": 5964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5963, + "mutability": "mutable", + "name": "result", + "nameLocation": "7332:6:31", + "nodeType": "VariableDeclaration", + "scope": 6089, + "src": "7324:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7324:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7323:16:31" + }, + "scope": 7183, + "src": "7242:3683:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6125, + "nodeType": "Block", + "src": "11164:128:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6105, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6092, + "src": "11188:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6106, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6094, + "src": "11191:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6107, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6096, + "src": "11194:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6104, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6089, + 6126 + ], + "referencedDeclaration": 6089, + "src": "11181:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11181:25:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6112, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6099, + "src": "11242:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 6111, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7182, + "src": "11225:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$5574_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 6113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11225:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6115, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6092, + "src": "11262:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6116, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6094, + "src": "11265:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6117, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6096, + "src": "11268:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6114, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "11255:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11255:25:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11283:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11255:29:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11225:59:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6109, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "11209:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11218:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "11209:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11209:76:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11181:104:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6103, + "id": 6124, + "nodeType": "Return", + "src": "11174:111:31" + } + ] + }, + "documentation": { + "id": 6090, + "nodeType": "StructuredDocumentation", + "src": "10931:118:31", + "text": " @dev Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 6126, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "11063:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6092, + "mutability": "mutable", + "name": "x", + "nameLocation": "11078:1:31", + "nodeType": "VariableDeclaration", + "scope": 6126, + "src": "11070:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6091, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11070:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6094, + "mutability": "mutable", + "name": "y", + "nameLocation": "11089:1:31", + "nodeType": "VariableDeclaration", + "scope": 6126, + "src": "11081:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11081:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6096, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "11100:11:31", + "nodeType": "VariableDeclaration", + "scope": 6126, + "src": "11092:19:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11092:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6099, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11122:8:31", + "nodeType": "VariableDeclaration", + "scope": 6126, + "src": "11113:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 6098, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6097, + "name": "Rounding", + "nameLocations": [ + "11113:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "11113:8:31" + }, + "referencedDeclaration": 5574, + "src": "11113:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11069:62:31" + }, + "returnParameters": { + "id": 6103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6102, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6126, + "src": "11155:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11155:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11154:9:31" + }, + "scope": 7183, + "src": "11054:238:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6175, + "nodeType": "Block", + "src": "11500:245:31", + "statements": [ + { + "id": 6174, + "nodeType": "UncheckedBlock", + "src": "11510:229:31", + "statements": [ + { + "assignments": [ + 6139, + 6141 + ], + "declarations": [ + { + "constant": false, + "id": 6139, + "mutability": "mutable", + "name": "high", + "nameLocation": "11543:4:31", + "nodeType": "VariableDeclaration", + "scope": 6174, + "src": "11535:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11535:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6141, + "mutability": "mutable", + "name": "low", + "nameLocation": "11557:3:31", + "nodeType": "VariableDeclaration", + "scope": 6174, + "src": "11549:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11549:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6146, + "initialValue": { + "arguments": [ + { + "id": 6143, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6129, + "src": "11571:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6144, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6131, + "src": "11574:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6142, + "name": "mul512", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5602, + "src": "11564:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 6145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11564:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11534:42:31" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6147, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6139, + "src": "11594:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11602:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 6149, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6133, + "src": "11607:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11602:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11594:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6160, + "nodeType": "IfStatement", + "src": "11590:86:31", + "trueBody": { + "id": 6159, + "nodeType": "Block", + "src": "11610:66:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 6155, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "11640:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11646:14:31", + "memberName": "UNDER_OVERFLOW", + "nodeType": "MemberAccess", + "referencedDeclaration": 3987, + "src": "11640:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6152, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "11628:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11634:5:31", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 4023, + "src": "11628:11:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11628:33:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "11628:33:31" + } + ] + } + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6161, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6139, + "src": "11697:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 6164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "323536", + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11706:3:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 6163, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6133, + "src": "11712:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11706:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "id": 6165, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11705:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "11697:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6167, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11696:19:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6168, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6141, + "src": "11719:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 6169, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6133, + "src": "11726:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11719:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6171, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11718:10:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11696:32:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6137, + "id": 6173, + "nodeType": "Return", + "src": "11689:39:31" + } + ] + } + ] + }, + "documentation": { + "id": 6127, + "nodeType": "StructuredDocumentation", + "src": "11298:111:31", + "text": " @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256." + }, + "id": 6176, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulShr", + "nameLocation": "11423:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6129, + "mutability": "mutable", + "name": "x", + "nameLocation": "11438:1:31", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "11430:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11430:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6131, + "mutability": "mutable", + "name": "y", + "nameLocation": "11449:1:31", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "11441:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11441:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6133, + "mutability": "mutable", + "name": "n", + "nameLocation": "11458:1:31", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "11452:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6132, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11452:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "11429:31:31" + }, + "returnParameters": { + "id": 6137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6136, + "mutability": "mutable", + "name": "result", + "nameLocation": "11492:6:31", + "nodeType": "VariableDeclaration", + "scope": 6176, + "src": "11484:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11484:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11483:16:31" + }, + "scope": 7183, + "src": "11414:331:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6214, + "nodeType": "Block", + "src": "11963:113:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6192, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6179, + "src": "11987:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6193, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6181, + "src": "11990:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6194, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6183, + "src": "11993:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 6191, + "name": "mulShr", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6176, + 6215 + ], + "referencedDeclaration": 6176, + "src": "11980:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint8) pure returns (uint256)" + } + }, + "id": 6195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11980:15:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6199, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6186, + "src": "12031:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 6198, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7182, + "src": "12014:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$5574_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 6200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12014:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6202, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6179, + "src": "12051:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6203, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6181, + "src": "12054:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12057:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 6205, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6183, + "src": "12062:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12057:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6201, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "12044:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12044:20:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12067:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12044:24:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12014:54:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6196, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "11998:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12007:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "11998:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11998:71:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11980:89:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6190, + "id": 6213, + "nodeType": "Return", + "src": "11973:96:31" + } + ] + }, + "documentation": { + "id": 6177, + "nodeType": "StructuredDocumentation", + "src": "11751:109:31", + "text": " @dev Calculates x * y >> n with full precision, following the selected rounding direction." + }, + "id": 6215, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulShr", + "nameLocation": "11874:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6179, + "mutability": "mutable", + "name": "x", + "nameLocation": "11889:1:31", + "nodeType": "VariableDeclaration", + "scope": 6215, + "src": "11881:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11881:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6181, + "mutability": "mutable", + "name": "y", + "nameLocation": "11900:1:31", + "nodeType": "VariableDeclaration", + "scope": 6215, + "src": "11892:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11892:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6183, + "mutability": "mutable", + "name": "n", + "nameLocation": "11909:1:31", + "nodeType": "VariableDeclaration", + "scope": 6215, + "src": "11903:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6182, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11903:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6186, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11921:8:31", + "nodeType": "VariableDeclaration", + "scope": 6215, + "src": "11912:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 6185, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6184, + "name": "Rounding", + "nameLocations": [ + "11912:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "11912:8:31" + }, + "referencedDeclaration": 5574, + "src": "11912:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11880:50:31" + }, + "returnParameters": { + "id": 6190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6189, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6215, + "src": "11954:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11954:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11953:9:31" + }, + "scope": 7183, + "src": "11865:211:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6311, + "nodeType": "Block", + "src": "12710:1849:31", + "statements": [ + { + "id": 6310, + "nodeType": "UncheckedBlock", + "src": "12720:1833:31", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6225, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6220, + "src": "12748:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12753:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12748:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6230, + "nodeType": "IfStatement", + "src": "12744:20:31", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 6228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12763:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6224, + "id": 6229, + "nodeType": "Return", + "src": "12756:8:31" + } + }, + { + "assignments": [ + 6232 + ], + "declarations": [ + { + "constant": false, + "id": 6232, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "13243:9:31", + "nodeType": "VariableDeclaration", + "scope": 6310, + "src": "13235:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13235:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6236, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6233, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "13255:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 6234, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6220, + "src": "13259:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13255:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13235:25:31" + }, + { + "assignments": [ + 6238 + ], + "declarations": [ + { + "constant": false, + "id": 6238, + "mutability": "mutable", + "name": "gcd", + "nameLocation": "13282:3:31", + "nodeType": "VariableDeclaration", + "scope": 6310, + "src": "13274:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6237, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13274:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "id": 6239, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6220, + "src": "13288:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13274:15:31" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "x", + "nameLocation": "13432:1:31", + "nodeType": "VariableDeclaration", + "scope": 6310, + "src": "13425:8:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6241, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "13425:6:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 6244, + "initialValue": { + "hexValue": "30", + "id": 6243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13436:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13425:12:31" + }, + { + "assignments": [ + 6246 + ], + "declarations": [ + { + "constant": false, + "id": 6246, + "mutability": "mutable", + "name": "y", + "nameLocation": "13458:1:31", + "nodeType": "VariableDeclaration", + "scope": 6310, + "src": "13451:8:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6245, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "13451:6:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 6248, + "initialValue": { + "hexValue": "31", + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13462:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13451:12:31" + }, + { + "body": { + "id": 6285, + "nodeType": "Block", + "src": "13501:882:31", + "statements": [ + { + "assignments": [ + 6253 + ], + "declarations": [ + { + "constant": false, + "id": 6253, + "mutability": "mutable", + "name": "quotient", + "nameLocation": "13527:8:31", + "nodeType": "VariableDeclaration", + "scope": 6285, + "src": "13519:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13519:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6257, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6254, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6238, + "src": "13538:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6255, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "13544:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13538:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13519:34:31" + }, + { + "expression": { + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 6258, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6238, + "src": "13573:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6259, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "13578:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6260, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13572:16:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 6261, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "13678:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6262, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6238, + "src": "13923:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6263, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "13929:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6264, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6253, + "src": "13941:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13929:20:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13923:26:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6267, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13591:376:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "13572:395:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "13572:395:31" + }, + { + "expression": { + "id": 6283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 6270, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "13987:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 6271, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "13990:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 6272, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13986:6:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", + "typeString": "tuple(int256,int256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 6273, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "14072:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6274, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "14326:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6275, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "14330:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 6278, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6253, + "src": "14341:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14334:6:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 6276, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "14334:6:31", + "typeDescriptions": {} + } + }, + "id": 6279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14334:16:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "14330:20:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "14326:24:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 6282, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13995:373:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", + "typeString": "tuple(int256,int256)" + } + }, + "src": "13986:382:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6284, + "nodeType": "ExpressionStatement", + "src": "13986:382:31" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6249, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6232, + "src": "13485:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 6250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13498:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13485:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6286, + "nodeType": "WhileStatement", + "src": "13478:905:31" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6287, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6238, + "src": "14401:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "31", + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14408:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14401:8:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6292, + "nodeType": "IfStatement", + "src": "14397:22:31", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 6290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14418:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6224, + "id": 6291, + "nodeType": "Return", + "src": "14411:8:31" + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6294, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "14470:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 6295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14474:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14470:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6297, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6220, + "src": "14477:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 6301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "14489:2:31", + "subExpression": { + "id": 6300, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "14490:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14481:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14481:7:31", + "typeDescriptions": {} + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14481:11:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14477:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 6306, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "14502:1:31", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 6305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14494:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14494:7:31", + "typeDescriptions": {} + } + }, + "id": 6307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14494:10:31", + "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": 6293, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5851, + "src": "14462:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14462:43:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6224, + "id": 6309, + "nodeType": "Return", + "src": "14455:50:31" + } + ] + } + ] + }, + "documentation": { + "id": 6216, + "nodeType": "StructuredDocumentation", + "src": "12082:553:31", + "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": 6312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invMod", + "nameLocation": "12649:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "a", + "nameLocation": "12664:1:31", + "nodeType": "VariableDeclaration", + "scope": 6312, + "src": "12656:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12656:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6220, + "mutability": "mutable", + "name": "n", + "nameLocation": "12675:1:31", + "nodeType": "VariableDeclaration", + "scope": 6312, + "src": "12667:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12667:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12655:22:31" + }, + "returnParameters": { + "id": 6224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6223, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6312, + "src": "12701:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6222, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12701:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12700:9:31" + }, + "scope": 7183, + "src": "12640:1919:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6332, + "nodeType": "Block", + "src": "15159:82:31", + "statements": [ + { + "id": 6331, + "nodeType": "UncheckedBlock", + "src": "15169:66:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 6324, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6315, + "src": "15212:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6325, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6317, + "src": "15215:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "32", + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15219:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15215:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6328, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6317, + "src": "15222:1:31", + "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": 6322, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "15200:4:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$7183_$", + "typeString": "type(library Math)" + } + }, + "id": 6323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15205:6:31", + "memberName": "modExp", + "nodeType": "MemberAccess", + "referencedDeclaration": 6369, + "src": "15200:11:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 6329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15200:24:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6321, + "id": 6330, + "nodeType": "Return", + "src": "15193:31:31" + } + ] + } + ] + }, + "documentation": { + "id": 6313, + "nodeType": "StructuredDocumentation", + "src": "14565:514:31", + "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": 6333, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invModPrime", + "nameLocation": "15093:11:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6315, + "mutability": "mutable", + "name": "a", + "nameLocation": "15113:1:31", + "nodeType": "VariableDeclaration", + "scope": 6333, + "src": "15105:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15105:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6317, + "mutability": "mutable", + "name": "p", + "nameLocation": "15124:1:31", + "nodeType": "VariableDeclaration", + "scope": 6333, + "src": "15116:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6316, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15116:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15104:22:31" + }, + "returnParameters": { + "id": 6321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6320, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6333, + "src": "15150:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6319, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15150:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15149:9:31" + }, + "scope": 7183, + "src": "15084:157:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6368, + "nodeType": "Block", + "src": "16011:174:31", + "statements": [ + { + "assignments": [ + 6346, + 6348 + ], + "declarations": [ + { + "constant": false, + "id": 6346, + "mutability": "mutable", + "name": "success", + "nameLocation": "16027:7:31", + "nodeType": "VariableDeclaration", + "scope": 6368, + "src": "16022:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6345, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16022:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6348, + "mutability": "mutable", + "name": "result", + "nameLocation": "16044:6:31", + "nodeType": "VariableDeclaration", + "scope": 6368, + "src": "16036:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16036:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6354, + "initialValue": { + "arguments": [ + { + "id": 6350, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6336, + "src": "16064:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6351, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6338, + "src": "16067:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6352, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6340, + "src": "16070:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6349, + "name": "tryModExp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6393, + 6475 + ], + "referencedDeclaration": 6393, + "src": "16054:9:31", + "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": 6353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16054:18:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16021:51:31" + }, + { + "condition": { + "id": 6356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16086:8:31", + "subExpression": { + "id": 6355, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6346, + "src": "16087:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6365, + "nodeType": "IfStatement", + "src": "16082:74:31", + "trueBody": { + "id": 6364, + "nodeType": "Block", + "src": "16096:60:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 6360, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "16122:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 6361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16128:16:31", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 3991, + "src": "16122:22:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6357, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "16110:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16116:5:31", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 4023, + "src": "16110:11:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 6362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:35:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6363, + "nodeType": "ExpressionStatement", + "src": "16110:35:31" + } + ] + } + }, + { + "expression": { + "id": 6366, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6348, + "src": "16172:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6344, + "id": 6367, + "nodeType": "Return", + "src": "16165:13:31" + } + ] + }, + "documentation": { + "id": 6334, + "nodeType": "StructuredDocumentation", + "src": "15247:678:31", + "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": 6369, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "modExp", + "nameLocation": "15939:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6336, + "mutability": "mutable", + "name": "b", + "nameLocation": "15954:1:31", + "nodeType": "VariableDeclaration", + "scope": 6369, + "src": "15946:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15946:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6338, + "mutability": "mutable", + "name": "e", + "nameLocation": "15965:1:31", + "nodeType": "VariableDeclaration", + "scope": 6369, + "src": "15957:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15957:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6340, + "mutability": "mutable", + "name": "m", + "nameLocation": "15976:1:31", + "nodeType": "VariableDeclaration", + "scope": 6369, + "src": "15968:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15968:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15945:33:31" + }, + "returnParameters": { + "id": 6344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6343, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6369, + "src": "16002:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6342, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16002:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16001:9:31" + }, + "scope": 7183, + "src": "15930:255:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6392, + "nodeType": "Block", + "src": "17039:1493:31", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6383, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6376, + "src": "17053:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17058:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17053:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6390, + "nodeType": "IfStatement", + "src": "17049:29:31", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 6386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17069:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 6387, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17076:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 6388, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17068:10:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 6382, + "id": 6389, + "nodeType": "Return", + "src": "17061:17:31" + } + }, + { + "AST": { + "nativeSrc": "17113:1413:31", + "nodeType": "YulBlock", + "src": "17113:1413:31", + "statements": [ + { + "nativeSrc": "17127:22:31", + "nodeType": "YulVariableDeclaration", + "src": "17127:22:31", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17144:4:31", + "nodeType": "YulLiteral", + "src": "17144:4:31", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17138:5:31", + "nodeType": "YulIdentifier", + "src": "17138:5:31" + }, + "nativeSrc": "17138:11:31", + "nodeType": "YulFunctionCall", + "src": "17138:11:31" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "17131:3:31", + "nodeType": "YulTypedName", + "src": "17131:3:31", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18057:3:31", + "nodeType": "YulIdentifier", + "src": "18057:3:31" + }, + { + "kind": "number", + "nativeSrc": "18062:4:31", + "nodeType": "YulLiteral", + "src": "18062:4:31", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18050:6:31", + "nodeType": "YulIdentifier", + "src": "18050:6:31" + }, + "nativeSrc": "18050:17:31", + "nodeType": "YulFunctionCall", + "src": "18050:17:31" + }, + "nativeSrc": "18050:17:31", + "nodeType": "YulExpressionStatement", + "src": "18050:17:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18091:3:31", + "nodeType": "YulIdentifier", + "src": "18091:3:31" + }, + { + "kind": "number", + "nativeSrc": "18096:4:31", + "nodeType": "YulLiteral", + "src": "18096:4:31", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18087:3:31", + "nodeType": "YulIdentifier", + "src": "18087:3:31" + }, + "nativeSrc": "18087:14:31", + "nodeType": "YulFunctionCall", + "src": "18087:14:31" + }, + { + "kind": "number", + "nativeSrc": "18103:4:31", + "nodeType": "YulLiteral", + "src": "18103:4:31", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18080:6:31", + "nodeType": "YulIdentifier", + "src": "18080:6:31" + }, + "nativeSrc": "18080:28:31", + "nodeType": "YulFunctionCall", + "src": "18080:28:31" + }, + "nativeSrc": "18080:28:31", + "nodeType": "YulExpressionStatement", + "src": "18080:28:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18132:3:31", + "nodeType": "YulIdentifier", + "src": "18132:3:31" + }, + { + "kind": "number", + "nativeSrc": "18137:4:31", + "nodeType": "YulLiteral", + "src": "18137:4:31", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18128:3:31", + "nodeType": "YulIdentifier", + "src": "18128:3:31" + }, + "nativeSrc": "18128:14:31", + "nodeType": "YulFunctionCall", + "src": "18128:14:31" + }, + { + "kind": "number", + "nativeSrc": "18144:4:31", + "nodeType": "YulLiteral", + "src": "18144:4:31", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18121:6:31", + "nodeType": "YulIdentifier", + "src": "18121:6:31" + }, + "nativeSrc": "18121:28:31", + "nodeType": "YulFunctionCall", + "src": "18121:28:31" + }, + "nativeSrc": "18121:28:31", + "nodeType": "YulExpressionStatement", + "src": "18121:28:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18173:3:31", + "nodeType": "YulIdentifier", + "src": "18173:3:31" + }, + { + "kind": "number", + "nativeSrc": "18178:4:31", + "nodeType": "YulLiteral", + "src": "18178:4:31", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18169:3:31", + "nodeType": "YulIdentifier", + "src": "18169:3:31" + }, + "nativeSrc": "18169:14:31", + "nodeType": "YulFunctionCall", + "src": "18169:14:31" + }, + { + "name": "b", + "nativeSrc": "18185:1:31", + "nodeType": "YulIdentifier", + "src": "18185:1:31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18162:6:31", + "nodeType": "YulIdentifier", + "src": "18162:6:31" + }, + "nativeSrc": "18162:25:31", + "nodeType": "YulFunctionCall", + "src": "18162:25:31" + }, + "nativeSrc": "18162:25:31", + "nodeType": "YulExpressionStatement", + "src": "18162:25:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18211:3:31", + "nodeType": "YulIdentifier", + "src": "18211:3:31" + }, + { + "kind": "number", + "nativeSrc": "18216:4:31", + "nodeType": "YulLiteral", + "src": "18216:4:31", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18207:3:31", + "nodeType": "YulIdentifier", + "src": "18207:3:31" + }, + "nativeSrc": "18207:14:31", + "nodeType": "YulFunctionCall", + "src": "18207:14:31" + }, + { + "name": "e", + "nativeSrc": "18223:1:31", + "nodeType": "YulIdentifier", + "src": "18223:1:31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18200:6:31", + "nodeType": "YulIdentifier", + "src": "18200:6:31" + }, + "nativeSrc": "18200:25:31", + "nodeType": "YulFunctionCall", + "src": "18200:25:31" + }, + "nativeSrc": "18200:25:31", + "nodeType": "YulExpressionStatement", + "src": "18200:25:31" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18249:3:31", + "nodeType": "YulIdentifier", + "src": "18249:3:31" + }, + { + "kind": "number", + "nativeSrc": "18254:4:31", + "nodeType": "YulLiteral", + "src": "18254:4:31", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18245:3:31", + "nodeType": "YulIdentifier", + "src": "18245:3:31" + }, + "nativeSrc": "18245:14:31", + "nodeType": "YulFunctionCall", + "src": "18245:14:31" + }, + { + "name": "m", + "nativeSrc": "18261:1:31", + "nodeType": "YulIdentifier", + "src": "18261:1:31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18238:6:31", + "nodeType": "YulIdentifier", + "src": "18238:6:31" + }, + "nativeSrc": "18238:25:31", + "nodeType": "YulFunctionCall", + "src": "18238:25:31" + }, + "nativeSrc": "18238:25:31", + "nodeType": "YulExpressionStatement", + "src": "18238:25:31" + }, + { + "nativeSrc": "18425:57:31", + "nodeType": "YulAssignment", + "src": "18425:57:31", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18447:3:31", + "nodeType": "YulIdentifier", + "src": "18447:3:31" + }, + "nativeSrc": "18447:5:31", + "nodeType": "YulFunctionCall", + "src": "18447:5:31" + }, + { + "kind": "number", + "nativeSrc": "18454:4:31", + "nodeType": "YulLiteral", + "src": "18454:4:31", + "type": "", + "value": "0x05" + }, + { + "name": "ptr", + "nativeSrc": "18460:3:31", + "nodeType": "YulIdentifier", + "src": "18460:3:31" + }, + { + "kind": "number", + "nativeSrc": "18465:4:31", + "nodeType": "YulLiteral", + "src": "18465:4:31", + "type": "", + "value": "0xc0" + }, + { + "kind": "number", + "nativeSrc": "18471:4:31", + "nodeType": "YulLiteral", + "src": "18471:4:31", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "18477:4:31", + "nodeType": "YulLiteral", + "src": "18477:4:31", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18436:10:31", + "nodeType": "YulIdentifier", + "src": "18436:10:31" + }, + "nativeSrc": "18436:46:31", + "nodeType": "YulFunctionCall", + "src": "18436:46:31" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18425:7:31", + "nodeType": "YulIdentifier", + "src": "18425:7:31" + } + ] + }, + { + "nativeSrc": "18495:21:31", + "nodeType": "YulAssignment", + "src": "18495:21:31", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18511:4:31", + "nodeType": "YulLiteral", + "src": "18511:4:31", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18505:5:31", + "nodeType": "YulIdentifier", + "src": "18505:5:31" + }, + "nativeSrc": "18505:11:31", + "nodeType": "YulFunctionCall", + "src": "18505:11:31" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18495:6:31", + "nodeType": "YulIdentifier", + "src": "18495:6:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6372, + "isOffset": false, + "isSlot": false, + "src": "18185:1:31", + "valueSize": 1 + }, + { + "declaration": 6374, + "isOffset": false, + "isSlot": false, + "src": "18223:1:31", + "valueSize": 1 + }, + { + "declaration": 6376, + "isOffset": false, + "isSlot": false, + "src": "18261:1:31", + "valueSize": 1 + }, + { + "declaration": 6381, + "isOffset": false, + "isSlot": false, + "src": "18495:6:31", + "valueSize": 1 + }, + { + "declaration": 6379, + "isOffset": false, + "isSlot": false, + "src": "18425:7:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6391, + "nodeType": "InlineAssembly", + "src": "17088:1438:31" + } + ] + }, + "documentation": { + "id": 6370, + "nodeType": "StructuredDocumentation", + "src": "16191:738:31", + "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": 6393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryModExp", + "nameLocation": "16943:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6372, + "mutability": "mutable", + "name": "b", + "nameLocation": "16961:1:31", + "nodeType": "VariableDeclaration", + "scope": 6393, + "src": "16953:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16953:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6374, + "mutability": "mutable", + "name": "e", + "nameLocation": "16972:1:31", + "nodeType": "VariableDeclaration", + "scope": 6393, + "src": "16964:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16964:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6376, + "mutability": "mutable", + "name": "m", + "nameLocation": "16983:1:31", + "nodeType": "VariableDeclaration", + "scope": 6393, + "src": "16975:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16975:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16952:33:31" + }, + "returnParameters": { + "id": 6382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6379, + "mutability": "mutable", + "name": "success", + "nameLocation": "17014:7:31", + "nodeType": "VariableDeclaration", + "scope": 6393, + "src": "17009:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17009:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6381, + "mutability": "mutable", + "name": "result", + "nameLocation": "17031:6:31", + "nodeType": "VariableDeclaration", + "scope": 6393, + "src": "17023:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17023:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17008:30:31" + }, + "scope": 7183, + "src": "16934:1598:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6428, + "nodeType": "Block", + "src": "18729:179:31", + "statements": [ + { + "assignments": [ + 6406, + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6406, + "mutability": "mutable", + "name": "success", + "nameLocation": "18745:7:31", + "nodeType": "VariableDeclaration", + "scope": 6428, + "src": "18740:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6405, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18740:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "result", + "nameLocation": "18767:6:31", + "nodeType": "VariableDeclaration", + "scope": 6428, + "src": "18754:19:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18754:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 6414, + "initialValue": { + "arguments": [ + { + "id": 6410, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6396, + "src": "18787:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6411, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6398, + "src": "18790:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6412, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6400, + "src": "18793:1:31", + "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": 6409, + "name": "tryModExp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6393, + 6475 + ], + "referencedDeclaration": 6475, + "src": "18777:9:31", + "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": 6413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18777:18:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18739:56:31" + }, + { + "condition": { + "id": 6416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18809:8:31", + "subExpression": { + "id": 6415, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6406, + "src": "18810:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6425, + "nodeType": "IfStatement", + "src": "18805:74:31", + "trueBody": { + "id": 6424, + "nodeType": "Block", + "src": "18819:60:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 6420, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "18845:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18851:16:31", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 3991, + "src": "18845:22:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6417, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "18833:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$4024_$", + "typeString": "type(library Panic)" + } + }, + "id": 6419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18839:5:31", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 4023, + "src": "18833:11:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 6422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18833:35:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6423, + "nodeType": "ExpressionStatement", + "src": "18833:35:31" + } + ] + } + }, + { + "expression": { + "id": 6426, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "18895:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 6404, + "id": 6427, + "nodeType": "Return", + "src": "18888:13:31" + } + ] + }, + "documentation": { + "id": 6394, + "nodeType": "StructuredDocumentation", + "src": "18538:85:31", + "text": " @dev Variant of {modExp} that supports inputs of arbitrary length." + }, + "id": 6429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "modExp", + "nameLocation": "18637:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6396, + "mutability": "mutable", + "name": "b", + "nameLocation": "18657:1:31", + "nodeType": "VariableDeclaration", + "scope": 6429, + "src": "18644:14:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6395, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18644:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6398, + "mutability": "mutable", + "name": "e", + "nameLocation": "18673:1:31", + "nodeType": "VariableDeclaration", + "scope": 6429, + "src": "18660:14:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6397, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18660:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6400, + "mutability": "mutable", + "name": "m", + "nameLocation": "18689:1:31", + "nodeType": "VariableDeclaration", + "scope": 6429, + "src": "18676:14:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6399, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18676:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "18643:48:31" + }, + "returnParameters": { + "id": 6404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6403, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6429, + "src": "18715:12:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18715:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "18714:14:31" + }, + "scope": 7183, + "src": "18628:280:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6474, + "nodeType": "Block", + "src": "19162:771:31", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 6444, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6436, + "src": "19187:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 6443, + "name": "_zeroBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6508, + "src": "19176:10:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (bytes memory) pure returns (bool)" + } + }, + "id": 6445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19176:13:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6453, + "nodeType": "IfStatement", + "src": "19172:47:31", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19199:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 6449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19216:1:31", + "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": 6448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "19206:9:31", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 6447, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19210:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19206:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 6451, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19198:21:31", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "functionReturnParameters": 6442, + "id": 6452, + "nodeType": "Return", + "src": "19191:28:31" + } + }, + { + "assignments": [ + 6455 + ], + "declarations": [ + { + "constant": false, + "id": 6455, + "mutability": "mutable", + "name": "mLen", + "nameLocation": "19238:4:31", + "nodeType": "VariableDeclaration", + "scope": 6474, + "src": "19230:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19230:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6458, + "initialValue": { + "expression": { + "id": 6456, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6436, + "src": "19245:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19247:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19245:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19230:23:31" + }, + { + "expression": { + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6459, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6441, + "src": "19335:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 6462, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6432, + "src": "19361:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19363:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19361:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 6464, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "19371:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19373:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19371:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6466, + "name": "mLen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6455, + "src": "19381:4:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6467, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6432, + "src": "19387:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6468, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "19390:1:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 6469, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6436, + "src": "19393:1:31", + "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": 6460, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "19344:3:31", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 6461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19348:12:31", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "19344:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 6470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19344:51:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "19335:60:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6472, + "nodeType": "ExpressionStatement", + "src": "19335:60:31" + }, + { + "AST": { + "nativeSrc": "19431:496:31", + "nodeType": "YulBlock", + "src": "19431:496:31", + "statements": [ + { + "nativeSrc": "19445:32:31", + "nodeType": "YulVariableDeclaration", + "src": "19445:32:31", + "value": { + "arguments": [ + { + "name": "result", + "nativeSrc": "19464:6:31", + "nodeType": "YulIdentifier", + "src": "19464:6:31" + }, + { + "kind": "number", + "nativeSrc": "19472:4:31", + "nodeType": "YulLiteral", + "src": "19472:4:31", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19460:3:31", + "nodeType": "YulIdentifier", + "src": "19460:3:31" + }, + "nativeSrc": "19460:17:31", + "nodeType": "YulFunctionCall", + "src": "19460:17:31" + }, + "variables": [ + { + "name": "dataPtr", + "nativeSrc": "19449:7:31", + "nodeType": "YulTypedName", + "src": "19449:7:31", + "type": "" + } + ] + }, + { + "nativeSrc": "19567:73:31", + "nodeType": "YulAssignment", + "src": "19567:73:31", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "19589:3:31", + "nodeType": "YulIdentifier", + "src": "19589:3:31" + }, + "nativeSrc": "19589:5:31", + "nodeType": "YulFunctionCall", + "src": "19589:5:31" + }, + { + "kind": "number", + "nativeSrc": "19596:4:31", + "nodeType": "YulLiteral", + "src": "19596:4:31", + "type": "", + "value": "0x05" + }, + { + "name": "dataPtr", + "nativeSrc": "19602:7:31", + "nodeType": "YulIdentifier", + "src": "19602:7:31" + }, + { + "arguments": [ + { + "name": "result", + "nativeSrc": "19617:6:31", + "nodeType": "YulIdentifier", + "src": "19617:6:31" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19611:5:31", + "nodeType": "YulIdentifier", + "src": "19611:5:31" + }, + "nativeSrc": "19611:13:31", + "nodeType": "YulFunctionCall", + "src": "19611:13:31" + }, + { + "name": "dataPtr", + "nativeSrc": "19626:7:31", + "nodeType": "YulIdentifier", + "src": "19626:7:31" + }, + { + "name": "mLen", + "nativeSrc": "19635:4:31", + "nodeType": "YulIdentifier", + "src": "19635:4:31" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "19578:10:31", + "nodeType": "YulIdentifier", + "src": "19578:10:31" + }, + "nativeSrc": "19578:62:31", + "nodeType": "YulFunctionCall", + "src": "19578:62:31" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19567:7:31", + "nodeType": "YulIdentifier", + "src": "19567:7:31" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "result", + "nativeSrc": "19796:6:31", + "nodeType": "YulIdentifier", + "src": "19796:6:31" + }, + { + "name": "mLen", + "nativeSrc": "19804:4:31", + "nodeType": "YulIdentifier", + "src": "19804:4:31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19789:6:31", + "nodeType": "YulIdentifier", + "src": "19789:6:31" + }, + "nativeSrc": "19789:20:31", + "nodeType": "YulFunctionCall", + "src": "19789:20:31" + }, + "nativeSrc": "19789:20:31", + "nodeType": "YulExpressionStatement", + "src": "19789:20:31" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19892:4:31", + "nodeType": "YulLiteral", + "src": "19892:4:31", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "19902:7:31", + "nodeType": "YulIdentifier", + "src": "19902:7:31" + }, + { + "name": "mLen", + "nativeSrc": "19911:4:31", + "nodeType": "YulIdentifier", + "src": "19911:4:31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19898:3:31", + "nodeType": "YulIdentifier", + "src": "19898:3:31" + }, + "nativeSrc": "19898:18:31", + "nodeType": "YulFunctionCall", + "src": "19898:18:31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19885:6:31", + "nodeType": "YulIdentifier", + "src": "19885:6:31" + }, + "nativeSrc": "19885:32:31", + "nodeType": "YulFunctionCall", + "src": "19885:32:31" + }, + "nativeSrc": "19885:32:31", + "nodeType": "YulExpressionStatement", + "src": "19885:32:31" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6455, + "isOffset": false, + "isSlot": false, + "src": "19635:4:31", + "valueSize": 1 + }, + { + "declaration": 6455, + "isOffset": false, + "isSlot": false, + "src": "19804:4:31", + "valueSize": 1 + }, + { + "declaration": 6455, + "isOffset": false, + "isSlot": false, + "src": "19911:4:31", + "valueSize": 1 + }, + { + "declaration": 6441, + "isOffset": false, + "isSlot": false, + "src": "19464:6:31", + "valueSize": 1 + }, + { + "declaration": 6441, + "isOffset": false, + "isSlot": false, + "src": "19617:6:31", + "valueSize": 1 + }, + { + "declaration": 6441, + "isOffset": false, + "isSlot": false, + "src": "19796:6:31", + "valueSize": 1 + }, + { + "declaration": 6439, + "isOffset": false, + "isSlot": false, + "src": "19567:7:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6473, + "nodeType": "InlineAssembly", + "src": "19406:521:31" + } + ] + }, + "documentation": { + "id": 6430, + "nodeType": "StructuredDocumentation", + "src": "18914:88:31", + "text": " @dev Variant of {tryModExp} that supports inputs of arbitrary length." + }, + "id": 6475, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryModExp", + "nameLocation": "19016:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6432, + "mutability": "mutable", + "name": "b", + "nameLocation": "19048:1:31", + "nodeType": "VariableDeclaration", + "scope": 6475, + "src": "19035:14:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6431, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19035:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6434, + "mutability": "mutable", + "name": "e", + "nameLocation": "19072:1:31", + "nodeType": "VariableDeclaration", + "scope": 6475, + "src": "19059:14:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6433, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19059:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6436, + "mutability": "mutable", + "name": "m", + "nameLocation": "19096:1:31", + "nodeType": "VariableDeclaration", + "scope": 6475, + "src": "19083:14:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6435, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19083:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "19025:78:31" + }, + "returnParameters": { + "id": 6442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6439, + "mutability": "mutable", + "name": "success", + "nameLocation": "19132:7:31", + "nodeType": "VariableDeclaration", + "scope": 6475, + "src": "19127:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6438, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19127:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6441, + "mutability": "mutable", + "name": "result", + "nameLocation": "19154:6:31", + "nodeType": "VariableDeclaration", + "scope": 6475, + "src": "19141:19:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6440, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19141:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "19126:35:31" + }, + "scope": 7183, + "src": "19007:926:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6507, + "nodeType": "Block", + "src": "20088:176:31", + "statements": [ + { + "body": { + "id": 6503, + "nodeType": "Block", + "src": "20145:92:31", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 6498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 6494, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6478, + "src": "20163:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6496, + "indexExpression": { + "id": 6495, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "20173:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20163:12:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 6497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20179:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20163:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6502, + "nodeType": "IfStatement", + "src": "20159:68:31", + "trueBody": { + "id": 6501, + "nodeType": "Block", + "src": "20182:45:31", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 6499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20207:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 6482, + "id": 6500, + "nodeType": "Return", + "src": "20200:12:31" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6487, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "20118:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 6488, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6478, + "src": "20122:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 6489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20132:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "20122:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20118:20:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6504, + "initializationExpression": { + "assignments": [ + 6484 + ], + "declarations": [ + { + "constant": false, + "id": 6484, + "mutability": "mutable", + "name": "i", + "nameLocation": "20111:1:31", + "nodeType": "VariableDeclaration", + "scope": 6504, + "src": "20103:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6483, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20103:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6486, + "initialValue": { + "hexValue": "30", + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20115:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20103:13:31" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 6492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "20140:3:31", + "subExpression": { + "id": 6491, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "20142:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6493, + "nodeType": "ExpressionStatement", + "src": "20140:3:31" + }, + "nodeType": "ForStatement", + "src": "20098:139:31" + }, + { + "expression": { + "hexValue": "74727565", + "id": 6505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20253:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 6482, + "id": 6506, + "nodeType": "Return", + "src": "20246:11:31" + } + ] + }, + "documentation": { + "id": 6476, + "nodeType": "StructuredDocumentation", + "src": "19939:72:31", + "text": " @dev Returns whether the provided byte array is zero." + }, + "id": 6508, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_zeroBytes", + "nameLocation": "20025:10:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6478, + "mutability": "mutable", + "name": "byteArray", + "nameLocation": "20049:9:31", + "nodeType": "VariableDeclaration", + "scope": 6508, + "src": "20036:22:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6477, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "20036:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "20035:24:31" + }, + "returnParameters": { + "id": 6482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6481, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6508, + "src": "20082:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6480, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20082:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "20081:6:31" + }, + "scope": 7183, + "src": "20016:248:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6726, + "nodeType": "Block", + "src": "20624:5124:31", + "statements": [ + { + "id": 6725, + "nodeType": "UncheckedBlock", + "src": "20634:5108:31", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6516, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "20728:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "31", + "id": 6517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20733:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "20728:6:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6522, + "nodeType": "IfStatement", + "src": "20724:53:31", + "trueBody": { + "id": 6521, + "nodeType": "Block", + "src": "20736:41:31", + "statements": [ + { + "expression": { + "id": 6519, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "20761:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6515, + "id": 6520, + "nodeType": "Return", + "src": "20754:8:31" + } + ] + } + }, + { + "assignments": [ + 6524 + ], + "declarations": [ + { + "constant": false, + "id": 6524, + "mutability": "mutable", + "name": "aa", + "nameLocation": "21712:2:31", + "nodeType": "VariableDeclaration", + "scope": 6725, + "src": "21704:10:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21704:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6526, + "initialValue": { + "id": 6525, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "21717:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21704:14:31" + }, + { + "assignments": [ + 6528 + ], + "declarations": [ + { + "constant": false, + "id": 6528, + "mutability": "mutable", + "name": "xn", + "nameLocation": "21740:2:31", + "nodeType": "VariableDeclaration", + "scope": 6725, + "src": "21732:10:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21732:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6530, + "initialValue": { + "hexValue": "31", + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21745:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "21732:14:31" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6531, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "21765:2:31", + "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": 6534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21772:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "313238", + "id": 6533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21777:3:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "21772:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + } + } + ], + "id": 6535, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21771:10:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + } + }, + "src": "21765:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6546, + "nodeType": "IfStatement", + "src": "21761:92:31", + "trueBody": { + "id": 6545, + "nodeType": "Block", + "src": "21783:70:31", + "statements": [ + { + "expression": { + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6537, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "21801:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 6538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21808:3:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "21801:10:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6540, + "nodeType": "ExpressionStatement", + "src": "21801:10:31" + }, + { + "expression": { + "id": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6541, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "21829:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3634", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21836:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21829:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6544, + "nodeType": "ExpressionStatement", + "src": "21829:9:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6547, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "21870:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + }, + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21877:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3634", + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21882:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21877:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + } + } + ], + "id": 6551, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21876:9:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + } + }, + "src": "21870:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6562, + "nodeType": "IfStatement", + "src": "21866:90:31", + "trueBody": { + "id": 6561, + "nodeType": "Block", + "src": "21887:69:31", + "statements": [ + { + "expression": { + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6553, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "21905:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21912:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21905:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6556, + "nodeType": "ExpressionStatement", + "src": "21905:9:31" + }, + { + "expression": { + "id": 6559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6557, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "21932:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3332", + "id": 6558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21939:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "21932:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6560, + "nodeType": "ExpressionStatement", + "src": "21932:9:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6563, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "21973:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 6566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21980:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3332", + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21985:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "21980:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + } + ], + "id": 6567, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21979:9:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "21973:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6578, + "nodeType": "IfStatement", + "src": "21969:90:31", + "trueBody": { + "id": 6577, + "nodeType": "Block", + "src": "21990:69:31", + "statements": [ + { + "expression": { + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6569, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22008:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 6570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22015:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "22008:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6572, + "nodeType": "ExpressionStatement", + "src": "22008:9:31" + }, + { + "expression": { + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6573, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22035:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3136", + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22042:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22035:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6576, + "nodeType": "ExpressionStatement", + "src": "22035:9:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6579, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22076:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + }, + "id": 6582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22083:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3136", + "id": 6581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22088:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22083:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + } + } + ], + "id": 6583, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22082:9:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + } + }, + "src": "22076:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6594, + "nodeType": "IfStatement", + "src": "22072:89:31", + "trueBody": { + "id": 6593, + "nodeType": "Block", + "src": "22093:68:31", + "statements": [ + { + "expression": { + "id": 6587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6585, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22111:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22118:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22111:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6588, + "nodeType": "ExpressionStatement", + "src": "22111:9:31" + }, + { + "expression": { + "id": 6591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6589, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22138:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "38", + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22145:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22138:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6592, + "nodeType": "ExpressionStatement", + "src": "22138:8:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6595, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22178:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "id": 6598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22185:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "38", + "id": 6597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22190:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22185:6:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + } + ], + "id": 6599, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22184:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + }, + "src": "22178:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6610, + "nodeType": "IfStatement", + "src": "22174:87:31", + "trueBody": { + "id": 6609, + "nodeType": "Block", + "src": "22194:67:31", + "statements": [ + { + "expression": { + "id": 6603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6601, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22212:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 6602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22219:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22212:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6604, + "nodeType": "ExpressionStatement", + "src": "22212:8:31" + }, + { + "expression": { + "id": 6607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6605, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22238:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "34", + "id": 6606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22245:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22238:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6608, + "nodeType": "ExpressionStatement", + "src": "22238:8:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6611, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22278:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "id": 6614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22285:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 6613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22290:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22285:6:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + } + } + ], + "id": 6615, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22284:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + } + }, + "src": "22278:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6626, + "nodeType": "IfStatement", + "src": "22274:87:31", + "trueBody": { + "id": 6625, + "nodeType": "Block", + "src": "22294:67:31", + "statements": [ + { + "expression": { + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6617, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22312:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 6618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22319:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22312:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6620, + "nodeType": "ExpressionStatement", + "src": "22312:8:31" + }, + { + "expression": { + "id": 6623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6621, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22338:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "32", + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22345:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22338:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6624, + "nodeType": "ExpressionStatement", + "src": "22338:8:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6627, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6524, + "src": "22378:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "id": 6630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22385:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22390:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22385:6:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + } + ], + "id": 6631, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22384:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + }, + "src": "22378:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6638, + "nodeType": "IfStatement", + "src": "22374:61:31", + "trueBody": { + "id": 6637, + "nodeType": "Block", + "src": "22394:41:31", + "statements": [ + { + "expression": { + "id": 6635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6633, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22412:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "31", + "id": 6634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22419:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22412:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6636, + "nodeType": "ExpressionStatement", + "src": "22412:8:31" + } + ] + } + }, + { + "expression": { + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6639, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22855:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 6640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22861:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6641, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "22865:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22861:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6643, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22860:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22872:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22860:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22855:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "22855:18:31" + }, + { + "expression": { + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6648, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24760:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6649, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24766:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6650, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "24771:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6651, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24775:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24771:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24766:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6654, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24765:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24782:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24765:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24760:23:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6658, + "nodeType": "ExpressionStatement", + "src": "24760:23:31" + }, + { + "expression": { + "id": 6668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6659, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24869:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6660, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24875:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6661, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "24880:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6662, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24884:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24880:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24875:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6665, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24874:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24891:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24874:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24869:23:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6669, + "nodeType": "ExpressionStatement", + "src": "24869:23:31" + }, + { + "expression": { + "id": 6679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6670, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24980:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6671, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24986:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6672, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "24991:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6673, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "24995:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24991:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24986:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6676, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24985:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25002:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24985:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24980:23:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6680, + "nodeType": "ExpressionStatement", + "src": "24980:23:31" + }, + { + "expression": { + "id": 6690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6681, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25089:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6682, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25095:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6683, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "25100:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6684, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25104:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25100:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25095:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6687, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25094:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25111:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25094:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25089:23:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6691, + "nodeType": "ExpressionStatement", + "src": "25089:23:31" + }, + { + "expression": { + "id": 6701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6692, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25199:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6693, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25205:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6694, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "25210:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6695, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25214:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25210:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25205:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6698, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25204:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25221:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25204:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25199:23:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6702, + "nodeType": "ExpressionStatement", + "src": "25199:23:31" + }, + { + "expression": { + "id": 6712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6703, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25309:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6704, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25315:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6705, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "25320:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6706, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25324:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25320:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25315:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6709, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25314:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 6710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25331:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25314:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25309:23:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6713, + "nodeType": "ExpressionStatement", + "src": "25309:23:31" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6714, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25698:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6717, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25719:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6718, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6511, + "src": "25724:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 6719, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6528, + "src": "25728:2:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25724:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25719:11:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6715, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "25703:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25712:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "25703:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25703:28:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25698:33:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6515, + "id": 6724, + "nodeType": "Return", + "src": "25691:40:31" + } + ] + } + ] + }, + "documentation": { + "id": 6509, + "nodeType": "StructuredDocumentation", + "src": "20270:292:31", + "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": 6727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "20576:4:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6511, + "mutability": "mutable", + "name": "a", + "nameLocation": "20589:1:31", + "nodeType": "VariableDeclaration", + "scope": 6727, + "src": "20581:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20581:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20580:11:31" + }, + "returnParameters": { + "id": 6515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6514, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6727, + "src": "20615:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20615:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20614:9:31" + }, + "scope": 7183, + "src": "20567:5181:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6760, + "nodeType": "Block", + "src": "25921:171:31", + "statements": [ + { + "id": 6759, + "nodeType": "UncheckedBlock", + "src": "25931:155:31", + "statements": [ + { + "assignments": [ + 6739 + ], + "declarations": [ + { + "constant": false, + "id": 6739, + "mutability": "mutable", + "name": "result", + "nameLocation": "25963:6:31", + "nodeType": "VariableDeclaration", + "scope": 6759, + "src": "25955:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25955:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6743, + "initialValue": { + "arguments": [ + { + "id": 6741, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6730, + "src": "25977:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6740, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6727, + 6761 + ], + "referencedDeclaration": 6727, + "src": "25972:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25972:7:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25955:24:31" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6744, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6739, + "src": "26000:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6748, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6733, + "src": "26042:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 6747, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7182, + "src": "26025:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$5574_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 6749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26025:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6750, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6739, + "src": "26055:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 6751, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6739, + "src": "26064:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26055:15:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6753, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6730, + "src": "26073:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26055:19:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "26025:49:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6745, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26009:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26018:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26009:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26009:66:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26000:75:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6737, + "id": 6758, + "nodeType": "Return", + "src": "25993:82:31" + } + ] + } + ] + }, + "documentation": { + "id": 6728, + "nodeType": "StructuredDocumentation", + "src": "25754:86:31", + "text": " @dev Calculates sqrt(a), following the selected rounding direction." + }, + "id": 6761, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "25854:4:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6730, + "mutability": "mutable", + "name": "a", + "nameLocation": "25867:1:31", + "nodeType": "VariableDeclaration", + "scope": 6761, + "src": "25859:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25859:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6733, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "25879:8:31", + "nodeType": "VariableDeclaration", + "scope": 6761, + "src": "25870:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 6732, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6731, + "name": "Rounding", + "nameLocations": [ + "25870:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "25870:8:31" + }, + "referencedDeclaration": 5574, + "src": "25870:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "25858:30:31" + }, + "returnParameters": { + "id": 6737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6736, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6761, + "src": "25912:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6735, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25912:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "25911:9:31" + }, + "scope": 7183, + "src": "25845:247:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6851, + "nodeType": "Block", + "src": "26281:2334:31", + "statements": [ + { + "expression": { + "id": 6778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6769, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26363:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6772, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6764, + "src": "26383:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666", + "id": 6773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26387:34:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1455" + }, + "value": "0xffffffffffffffffffffffffffffffff" + }, + "src": "26383:38:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6770, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26367:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26376:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26367:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26367:55:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "37", + "id": 6776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26426:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "26367:60:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26363:64:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6779, + "nodeType": "ExpressionStatement", + "src": "26363:64:31" + }, + { + "expression": { + "id": 6792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6780, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26503:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6783, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6764, + "src": "26525:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 6784, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26530:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26525:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6786, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26524:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666666666666666666666666666", + "id": 6787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26535:18:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "0xffffffffffffffff" + }, + "src": "26524:29:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6781, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26508:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26517:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26508:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26508:46:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "36", + "id": 6790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26558:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "26508:51:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26503:56:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6793, + "nodeType": "ExpressionStatement", + "src": "26503:56:31" + }, + { + "expression": { + "id": 6806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6794, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26634:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6797, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6764, + "src": "26656:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 6798, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26661:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26656:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6800, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26655:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 6801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26666:10:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "26655:21:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6795, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26639:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26648:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26639:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26639:38:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "35", + "id": 6804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26681:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "26639:43:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26634:48:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6807, + "nodeType": "ExpressionStatement", + "src": "26634:48:31" + }, + { + "expression": { + "id": 6820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6808, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26757:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6811, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6764, + "src": "26779:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 6812, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26784:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26779:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6814, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26778:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666", + "id": 6815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26789:6:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_65535_by_1", + "typeString": "int_const 65535" + }, + "value": "0xffff" + }, + "src": "26778:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6809, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26762:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26771:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26762:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26762:34:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 6818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26800:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "26762:39:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26757:44:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6821, + "nodeType": "ExpressionStatement", + "src": "26757:44:31" + }, + { + "expression": { + "id": 6834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6822, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26874:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6825, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6764, + "src": "26896:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 6826, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26901:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26896:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6828, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26895:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666", + "id": 6829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26906:4:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "26895:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6823, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26879:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26888:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26879:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26879:32:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 6832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26915:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "26879:37:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26874:42:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6835, + "nodeType": "ExpressionStatement", + "src": "26874:42:31" + }, + { + "expression": { + "id": 6848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6836, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "26988:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6839, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6764, + "src": "27010:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 6840, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6767, + "src": "27015:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27010:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6842, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "27009:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866", + "id": 6843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27020:3:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "27009:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6837, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "26993:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "27002:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "26993:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26993:31:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 6846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27028:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "26993:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26988:41:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6849, + "nodeType": "ExpressionStatement", + "src": "26988:41:31" + }, + { + "AST": { + "nativeSrc": "28490:119:31", + "nodeType": "YulBlock", + "src": "28490:119:31", + "statements": [ + { + "nativeSrc": "28504:95:31", + "nodeType": "YulAssignment", + "src": "28504:95:31", + "value": { + "arguments": [ + { + "name": "r", + "nativeSrc": "28512:1:31", + "nodeType": "YulIdentifier", + "src": "28512:1:31" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "r", + "nativeSrc": "28524:1:31", + "nodeType": "YulIdentifier", + "src": "28524:1:31" + }, + { + "name": "x", + "nativeSrc": "28527:1:31", + "nodeType": "YulIdentifier", + "src": "28527:1:31" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "28520:3:31", + "nodeType": "YulIdentifier", + "src": "28520:3:31" + }, + "nativeSrc": "28520:9:31", + "nodeType": "YulFunctionCall", + "src": "28520:9:31" + }, + { + "kind": "number", + "nativeSrc": "28531:66:31", + "nodeType": "YulLiteral", + "src": "28531:66:31", + "type": "", + "value": "0x0000010102020202030303030303030300000000000000000000000000000000" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "28515:4:31", + "nodeType": "YulIdentifier", + "src": "28515:4:31" + }, + "nativeSrc": "28515:83:31", + "nodeType": "YulFunctionCall", + "src": "28515:83:31" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "28509:2:31", + "nodeType": "YulIdentifier", + "src": "28509:2:31" + }, + "nativeSrc": "28509:90:31", + "nodeType": "YulFunctionCall", + "src": "28509:90:31" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "28504:1:31", + "nodeType": "YulIdentifier", + "src": "28504:1:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6767, + "isOffset": false, + "isSlot": false, + "src": "28504:1:31", + "valueSize": 1 + }, + { + "declaration": 6767, + "isOffset": false, + "isSlot": false, + "src": "28512:1:31", + "valueSize": 1 + }, + { + "declaration": 6767, + "isOffset": false, + "isSlot": false, + "src": "28524:1:31", + "valueSize": 1 + }, + { + "declaration": 6764, + "isOffset": false, + "isSlot": false, + "src": "28527:1:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6850, + "nodeType": "InlineAssembly", + "src": "28465:144:31" + } + ] + }, + "documentation": { + "id": 6762, + "nodeType": "StructuredDocumentation", + "src": "26098:119:31", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 6852, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "26231:4:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6764, + "mutability": "mutable", + "name": "x", + "nameLocation": "26244:1:31", + "nodeType": "VariableDeclaration", + "scope": 6852, + "src": "26236:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26236:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26235:11:31" + }, + "returnParameters": { + "id": 6768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6767, + "mutability": "mutable", + "name": "r", + "nameLocation": "26278:1:31", + "nodeType": "VariableDeclaration", + "scope": 6852, + "src": "26270:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26270:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26269:11:31" + }, + "scope": 7183, + "src": "26222:2393:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6885, + "nodeType": "Block", + "src": "28848:175:31", + "statements": [ + { + "id": 6884, + "nodeType": "UncheckedBlock", + "src": "28858:159:31", + "statements": [ + { + "assignments": [ + 6864 + ], + "declarations": [ + { + "constant": false, + "id": 6864, + "mutability": "mutable", + "name": "result", + "nameLocation": "28890:6:31", + "nodeType": "VariableDeclaration", + "scope": 6884, + "src": "28882:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28882:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6868, + "initialValue": { + "arguments": [ + { + "id": 6866, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6855, + "src": "28904:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6865, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6852, + 6886 + ], + "referencedDeclaration": 6852, + "src": "28899:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28899:11:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28882:28:31" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6869, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6864, + "src": "28931:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6873, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6858, + "src": "28973:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 6872, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7182, + "src": "28956:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$5574_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 6874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28956:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28986:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 6876, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6864, + "src": "28991:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28986:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6878, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6855, + "src": "29000:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28986:19:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "28956:49:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 6870, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "28940:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 6871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "28949:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "28940:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 6881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28940:66:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28931:75:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6862, + "id": 6883, + "nodeType": "Return", + "src": "28924:82:31" + } + ] + } + ] + }, + "documentation": { + "id": 6853, + "nodeType": "StructuredDocumentation", + "src": "28621:142:31", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 6886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "28777:4:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6855, + "mutability": "mutable", + "name": "value", + "nameLocation": "28790:5:31", + "nodeType": "VariableDeclaration", + "scope": 6886, + "src": "28782:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28782:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6858, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "28806:8:31", + "nodeType": "VariableDeclaration", + "scope": 6886, + "src": "28797:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 6857, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6856, + "name": "Rounding", + "nameLocations": [ + "28797:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "28797:8:31" + }, + "referencedDeclaration": 5574, + "src": "28797:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "28781:34:31" + }, + "returnParameters": { + "id": 6862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6861, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6886, + "src": "28839:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28839:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "28838:9:31" + }, + "scope": 7183, + "src": "28768:255:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7014, + "nodeType": "Block", + "src": "29216:854:31", + "statements": [ + { + "assignments": [ + 6895 + ], + "declarations": [ + { + "constant": false, + "id": 6895, + "mutability": "mutable", + "name": "result", + "nameLocation": "29234:6:31", + "nodeType": "VariableDeclaration", + "scope": 7014, + "src": "29226:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29226:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6897, + "initialValue": { + "hexValue": "30", + "id": 6896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29243:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "29226:18:31" + }, + { + "id": 7011, + "nodeType": "UncheckedBlock", + "src": "29254:787:31", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6898, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29282:5:31", + "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": 6901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29291:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 6900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29297:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29291:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "29282:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6914, + "nodeType": "IfStatement", + "src": "29278:103:31", + "trueBody": { + "id": 6913, + "nodeType": "Block", + "src": "29301:80:31", + "statements": [ + { + "expression": { + "id": 6907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6903, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29319:5:31", + "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": 6906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29328:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 6905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29334:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29328:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "29319:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6908, + "nodeType": "ExpressionStatement", + "src": "29319:17:31" + }, + { + "expression": { + "id": 6911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6909, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "29354:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 6910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29364:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29354:12:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6912, + "nodeType": "ExpressionStatement", + "src": "29354:12:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6915, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29398:5:31", + "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": 6918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29407:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 6917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29413:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29407:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "29398:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6931, + "nodeType": "IfStatement", + "src": "29394:103:31", + "trueBody": { + "id": 6930, + "nodeType": "Block", + "src": "29417:80:31", + "statements": [ + { + "expression": { + "id": 6924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6920, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29435:5:31", + "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": 6923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29444:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 6922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29450:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29444:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "29435:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6925, + "nodeType": "ExpressionStatement", + "src": "29435:17:31" + }, + { + "expression": { + "id": 6928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6926, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "29470:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 6927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29480:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29470:12:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6929, + "nodeType": "ExpressionStatement", + "src": "29470:12:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6932, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29514:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 6935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29523:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 6934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29529:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29523:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "29514:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6948, + "nodeType": "IfStatement", + "src": "29510:103:31", + "trueBody": { + "id": 6947, + "nodeType": "Block", + "src": "29533:80:31", + "statements": [ + { + "expression": { + "id": 6941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6937, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29551:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 6940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29560:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 6939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29566:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29560:8:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "29551:17:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6942, + "nodeType": "ExpressionStatement", + "src": "29551:17:31" + }, + { + "expression": { + "id": 6945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6943, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "29586:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 6944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29596:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29586:12:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6946, + "nodeType": "ExpressionStatement", + "src": "29586:12:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6949, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29630:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 6952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29639:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 6951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29645:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29639:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "29630:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6965, + "nodeType": "IfStatement", + "src": "29626:100:31", + "trueBody": { + "id": 6964, + "nodeType": "Block", + "src": "29648:78:31", + "statements": [ + { + "expression": { + "id": 6958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6954, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29666:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 6957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29675:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 6956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29681:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29675:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "29666:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6959, + "nodeType": "ExpressionStatement", + "src": "29666:16:31" + }, + { + "expression": { + "id": 6962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6960, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "29700:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 6961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29710:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29700:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6963, + "nodeType": "ExpressionStatement", + "src": "29700:11:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6966, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29743:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 6969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29752:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 6968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29758:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29752:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "29743:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6982, + "nodeType": "IfStatement", + "src": "29739:100:31", + "trueBody": { + "id": 6981, + "nodeType": "Block", + "src": "29761:78:31", + "statements": [ + { + "expression": { + "id": 6975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6971, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29779:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 6974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29788:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 6973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29794:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29788:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "29779:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6976, + "nodeType": "ExpressionStatement", + "src": "29779:16:31" + }, + { + "expression": { + "id": 6979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6977, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "29813:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 6978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29823:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29813:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6980, + "nodeType": "ExpressionStatement", + "src": "29813:11:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6983, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29856:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 6986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29865:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 6985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29871:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29865:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "29856:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6999, + "nodeType": "IfStatement", + "src": "29852:100:31", + "trueBody": { + "id": 6998, + "nodeType": "Block", + "src": "29874:78:31", + "statements": [ + { + "expression": { + "id": 6992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6988, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29892:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 6991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 6989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29901:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 6990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29907:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29901:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "29892:16:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6993, + "nodeType": "ExpressionStatement", + "src": "29892:16:31" + }, + { + "expression": { + "id": 6996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6994, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "29926:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 6995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29936:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29926:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6997, + "nodeType": "ExpressionStatement", + "src": "29926:11:31" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7000, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6889, + "src": "29969:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 7003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 7001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29978:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 7002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29984:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29978:7:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "29969:16:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7010, + "nodeType": "IfStatement", + "src": "29965:66:31", + "trueBody": { + "id": 7009, + "nodeType": "Block", + "src": "29987:44:31", + "statements": [ + { + "expression": { + "id": 7007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7005, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "30005:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 7006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30015:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "30005:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7008, + "nodeType": "ExpressionStatement", + "src": "30005:11:31" + } + ] + } + } + ] + }, + { + "expression": { + "id": 7012, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6895, + "src": "30057:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6893, + "id": 7013, + "nodeType": "Return", + "src": "30050:13:31" + } + ] + }, + "documentation": { + "id": 6887, + "nodeType": "StructuredDocumentation", + "src": "29029:120:31", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 7015, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "29163:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6889, + "mutability": "mutable", + "name": "value", + "nameLocation": "29177:5:31", + "nodeType": "VariableDeclaration", + "scope": 7015, + "src": "29169:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29169:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29168:15:31" + }, + "returnParameters": { + "id": 6893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6892, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7015, + "src": "29207:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29207:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29206:9:31" + }, + "scope": 7183, + "src": "29154:916:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7048, + "nodeType": "Block", + "src": "30305:177:31", + "statements": [ + { + "id": 7047, + "nodeType": "UncheckedBlock", + "src": "30315:161:31", + "statements": [ + { + "assignments": [ + 7027 + ], + "declarations": [ + { + "constant": false, + "id": 7027, + "mutability": "mutable", + "name": "result", + "nameLocation": "30347:6:31", + "nodeType": "VariableDeclaration", + "scope": 7047, + "src": "30339:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30339:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7031, + "initialValue": { + "arguments": [ + { + "id": 7029, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7018, + "src": "30362:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7028, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7015, + 7049 + ], + "referencedDeclaration": 7015, + "src": "30356:5:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30356:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "30339:29:31" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7032, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7027, + "src": "30389:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 7036, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7021, + "src": "30431:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 7035, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7182, + "src": "30414:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$5574_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 7037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30414:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 7038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30444:2:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 7039, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7027, + "src": "30450:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30444:12:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7041, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7018, + "src": "30459:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30444:20:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "30414:50:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7033, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "30398:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "30407:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "30398:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30398:67:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30389:76:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7025, + "id": 7046, + "nodeType": "Return", + "src": "30382:83:31" + } + ] + } + ] + }, + "documentation": { + "id": 7016, + "nodeType": "StructuredDocumentation", + "src": "30076:143:31", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 7049, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "30233:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7018, + "mutability": "mutable", + "name": "value", + "nameLocation": "30247:5:31", + "nodeType": "VariableDeclaration", + "scope": 7049, + "src": "30239:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30239:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7021, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "30263:8:31", + "nodeType": "VariableDeclaration", + "scope": 7049, + "src": "30254:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 7020, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7019, + "name": "Rounding", + "nameLocations": [ + "30254:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "30254:8:31" + }, + "referencedDeclaration": 5574, + "src": "30254:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "30238:34:31" + }, + "returnParameters": { + "id": 7025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7024, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7049, + "src": "30296:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30296:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30295:9:31" + }, + "scope": 7183, + "src": "30224:258:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7125, + "nodeType": "Block", + "src": "30800:675:31", + "statements": [ + { + "expression": { + "id": 7066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7057, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "30882:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7060, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7052, + "src": "30902:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666", + "id": 7061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30906:34:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1455" + }, + "value": "0xffffffffffffffffffffffffffffffff" + }, + "src": "30902:38:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7058, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "30886:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "30895:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "30886:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30886:55:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "37", + "id": 7064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30945:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "30886:60:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30882:64:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7067, + "nodeType": "ExpressionStatement", + "src": "30882:64:31" + }, + { + "expression": { + "id": 7080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7068, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31022:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7071, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7052, + "src": "31044:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 7072, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31049:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31044:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31043:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666666666666666666666666666", + "id": 7075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31054:18:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "0xffffffffffffffff" + }, + "src": "31043:29:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7069, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "31027:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31036:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "31027:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31027:46:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "36", + "id": 7078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31077:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "31027:51:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31022:56:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7081, + "nodeType": "ExpressionStatement", + "src": "31022:56:31" + }, + { + "expression": { + "id": 7094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7082, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31153:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7085, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7052, + "src": "31175:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 7086, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31180:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31175:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7088, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31174:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 7089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31185:10:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "31174:21:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7083, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "31158:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31167:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "31158:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31158:38:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "35", + "id": 7092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31200:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "31158:43:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31153:48:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7095, + "nodeType": "ExpressionStatement", + "src": "31153:48:31" + }, + { + "expression": { + "id": 7108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7096, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31276:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7099, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7052, + "src": "31298:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 7100, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31303:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31298:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7102, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31297:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666", + "id": 7103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31308:6:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_65535_by_1", + "typeString": "int_const 65535" + }, + "value": "0xffff" + }, + "src": "31297:17:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7097, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "31281:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31290:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "31281:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31281:34:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 7106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31319:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "31281:39:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31276:44:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7109, + "nodeType": "ExpressionStatement", + "src": "31276:44:31" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7110, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31426:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "33", + "id": 7111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31431:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "31426:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7113, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31425:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7116, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7052, + "src": "31453:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 7117, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7055, + "src": "31458:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31453:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7119, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31452:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666", + "id": 7120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31463:4:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "31452:15:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7114, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "31436:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31445:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "31436:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31436:32:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31425:43:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7056, + "id": 7124, + "nodeType": "Return", + "src": "31418:50:31" + } + ] + }, + "documentation": { + "id": 7050, + "nodeType": "StructuredDocumentation", + "src": "30488:246:31", + "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": 7126, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "30748:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7052, + "mutability": "mutable", + "name": "x", + "nameLocation": "30763:1:31", + "nodeType": "VariableDeclaration", + "scope": 7126, + "src": "30755:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7051, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30755:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30754:11:31" + }, + "returnParameters": { + "id": 7056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7055, + "mutability": "mutable", + "name": "r", + "nameLocation": "30797:1:31", + "nodeType": "VariableDeclaration", + "scope": 7126, + "src": "30789:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30789:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30788:11:31" + }, + "scope": 7183, + "src": "30739:736:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7162, + "nodeType": "Block", + "src": "31712:184:31", + "statements": [ + { + "id": 7161, + "nodeType": "UncheckedBlock", + "src": "31722:168:31", + "statements": [ + { + "assignments": [ + 7138 + ], + "declarations": [ + { + "constant": false, + "id": 7138, + "mutability": "mutable", + "name": "result", + "nameLocation": "31754:6:31", + "nodeType": "VariableDeclaration", + "scope": 7161, + "src": "31746:14:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31746:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7142, + "initialValue": { + "arguments": [ + { + "id": 7140, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7129, + "src": "31770:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7139, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7126, + 7163 + ], + "referencedDeclaration": 7126, + "src": "31763:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31763:13:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "31746:30:31" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7143, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "31797:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 7147, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7132, + "src": "31839:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 7146, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7182, + "src": "31822:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$5574_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 7148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31822:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 7149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31852:1:31", + "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": 7152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7150, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "31858:6:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 7151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31868:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "31858:11:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7153, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31857:13:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31852:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7155, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7129, + "src": "31873:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31852:26:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "31822:56:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 7144, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "31806:8:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 7145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31815:6:31", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "31806:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31806:73:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31797:82:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7136, + "id": 7160, + "nodeType": "Return", + "src": "31790:89:31" + } + ] + } + ] + }, + "documentation": { + "id": 7127, + "nodeType": "StructuredDocumentation", + "src": "31481:144:31", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 7163, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "31639:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7129, + "mutability": "mutable", + "name": "value", + "nameLocation": "31654:5:31", + "nodeType": "VariableDeclaration", + "scope": 7163, + "src": "31646:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31646:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7132, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "31670:8:31", + "nodeType": "VariableDeclaration", + "scope": 7163, + "src": "31661:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 7131, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7130, + "name": "Rounding", + "nameLocations": [ + "31661:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "31661:8:31" + }, + "referencedDeclaration": 5574, + "src": "31661:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "31645:34:31" + }, + "returnParameters": { + "id": 7136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7135, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7163, + "src": "31703:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31703:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31702:9:31" + }, + "scope": 7183, + "src": "31630:266:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7181, + "nodeType": "Block", + "src": "32094:48:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 7174, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7167, + "src": "32117:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + ], + "id": 7173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32111:5:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 7172, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32111:5:31", + "typeDescriptions": {} + } + }, + "id": 7175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32111:15:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 7176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32129:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "32111:19:31", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 7178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32134:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32111:24:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7171, + "id": 7180, + "nodeType": "Return", + "src": "32104:31:31" + } + ] + }, + "documentation": { + "id": 7164, + "nodeType": "StructuredDocumentation", + "src": "31902:113:31", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 7182, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "32029:16:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7167, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "32055:8:31", + "nodeType": "VariableDeclaration", + "scope": 7182, + "src": "32046:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 7166, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 7165, + "name": "Rounding", + "nameLocations": [ + "32046:8:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5574, + "src": "32046:8:31" + }, + "referencedDeclaration": 5574, + "src": "32046:8:31", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$5574", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "32045:19:31" + }, + "returnParameters": { + "id": 7171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7170, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7182, + "src": "32088:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32088:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32087:6:31" + }, + "scope": 7183, + "src": "32020:122:31", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 7184, + "src": "281:31863:31", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "103:32042:31" + }, + "id": 31 + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "exportedSymbols": { + "SafeCast": [ + 8948 + ] + }, + "id": 8949, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7185, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "192:24:32" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeCast", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 7186, + "nodeType": "StructuredDocumentation", + "src": "218:550:32", + "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": 8948, + "linearizedBaseContracts": [ + 8948 + ], + "name": "SafeCast", + "nameLocation": "777:8:32", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 7187, + "nodeType": "StructuredDocumentation", + "src": "792:68:32", + "text": " @dev Value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "6dfcc650", + "id": 7193, + "name": "SafeCastOverflowedUintDowncast", + "nameLocation": "871:30:32", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7189, + "mutability": "mutable", + "name": "bits", + "nameLocation": "908:4:32", + "nodeType": "VariableDeclaration", + "scope": 7193, + "src": "902:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7188, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "902:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7191, + "mutability": "mutable", + "name": "value", + "nameLocation": "922:5:32", + "nodeType": "VariableDeclaration", + "scope": 7193, + "src": "914:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "914:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "901:27:32" + }, + "src": "865:64:32" + }, + { + "documentation": { + "id": 7194, + "nodeType": "StructuredDocumentation", + "src": "935:75:32", + "text": " @dev An int value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "a8ce4432", + "id": 7198, + "name": "SafeCastOverflowedIntToUint", + "nameLocation": "1021:27:32", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7196, + "mutability": "mutable", + "name": "value", + "nameLocation": "1056:5:32", + "nodeType": "VariableDeclaration", + "scope": 7198, + "src": "1049:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7195, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1049:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1048:14:32" + }, + "src": "1015:48:32" + }, + { + "documentation": { + "id": 7199, + "nodeType": "StructuredDocumentation", + "src": "1069:67:32", + "text": " @dev Value doesn't fit in an int of `bits` size." + }, + "errorSelector": "327269a7", + "id": 7205, + "name": "SafeCastOverflowedIntDowncast", + "nameLocation": "1147:29:32", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7201, + "mutability": "mutable", + "name": "bits", + "nameLocation": "1183:4:32", + "nodeType": "VariableDeclaration", + "scope": 7205, + "src": "1177:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7200, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1177:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7203, + "mutability": "mutable", + "name": "value", + "nameLocation": "1196:5:32", + "nodeType": "VariableDeclaration", + "scope": 7205, + "src": "1189:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7202, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1189:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1176:26:32" + }, + "src": "1141:62:32" + }, + { + "documentation": { + "id": 7206, + "nodeType": "StructuredDocumentation", + "src": "1209:75:32", + "text": " @dev An uint value doesn't fit in an int of `bits` size." + }, + "errorSelector": "24775e06", + "id": 7210, + "name": "SafeCastOverflowedUintToInt", + "nameLocation": "1295:27:32", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 7209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7208, + "mutability": "mutable", + "name": "value", + "nameLocation": "1331:5:32", + "nodeType": "VariableDeclaration", + "scope": 7210, + "src": "1323:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1323:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1322:15:32" + }, + "src": "1289:49:32" + }, + { + "body": { + "id": 7237, + "nodeType": "Block", + "src": "1695:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7218, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7213, + "src": "1709:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1722:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 7220, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1722:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + } + ], + "id": 7219, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1717:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1717:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint248", + "typeString": "type(uint248)" + } + }, + "id": 7223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1731:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "1717:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "src": "1709:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7231, + "nodeType": "IfStatement", + "src": "1705:105:32", + "trueBody": { + "id": 7230, + "nodeType": "Block", + "src": "1736:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 7226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1788:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 7227, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7213, + "src": "1793:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7225, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "1757:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1757:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7229, + "nodeType": "RevertStatement", + "src": "1750:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7234, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7213, + "src": "1834:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1826:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 7232, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1826:7:32", + "typeDescriptions": {} + } + }, + "id": 7235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1826:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "functionReturnParameters": 7217, + "id": 7236, + "nodeType": "Return", + "src": "1819:21:32" + } + ] + }, + "documentation": { + "id": 7211, + "nodeType": "StructuredDocumentation", + "src": "1344:280:32", + "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": 7238, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint248", + "nameLocation": "1638:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7213, + "mutability": "mutable", + "name": "value", + "nameLocation": "1656:5:32", + "nodeType": "VariableDeclaration", + "scope": 7238, + "src": "1648:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7212, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1648:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1647:15:32" + }, + "returnParameters": { + "id": 7217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7216, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7238, + "src": "1686:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + }, + "typeName": { + "id": 7215, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1686:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "visibility": "internal" + } + ], + "src": "1685:9:32" + }, + "scope": 8948, + "src": "1629:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7265, + "nodeType": "Block", + "src": "2204:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7246, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7241, + "src": "2218:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2231:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 7248, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2231:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + } + ], + "id": 7247, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2226:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2226:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint240", + "typeString": "type(uint240)" + } + }, + "id": 7251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2240:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2226:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "src": "2218:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7259, + "nodeType": "IfStatement", + "src": "2214:105:32", + "trueBody": { + "id": 7258, + "nodeType": "Block", + "src": "2245:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 7254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2297:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 7255, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7241, + "src": "2302:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7253, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "2266:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2266:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7257, + "nodeType": "RevertStatement", + "src": "2259:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7262, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7241, + "src": "2343:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2335:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 7260, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2335:7:32", + "typeDescriptions": {} + } + }, + "id": 7263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2335:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "functionReturnParameters": 7245, + "id": 7264, + "nodeType": "Return", + "src": "2328:21:32" + } + ] + }, + "documentation": { + "id": 7239, + "nodeType": "StructuredDocumentation", + "src": "1853:280:32", + "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": 7266, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint240", + "nameLocation": "2147:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7241, + "mutability": "mutable", + "name": "value", + "nameLocation": "2165:5:32", + "nodeType": "VariableDeclaration", + "scope": 7266, + "src": "2157:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2157:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2156:15:32" + }, + "returnParameters": { + "id": 7245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7244, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7266, + "src": "2195:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + }, + "typeName": { + "id": 7243, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2195:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "visibility": "internal" + } + ], + "src": "2194:9:32" + }, + "scope": 8948, + "src": "2138:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7293, + "nodeType": "Block", + "src": "2713:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7274, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "2727:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2740:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 7276, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2740:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + } + ], + "id": 7275, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2735:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint232", + "typeString": "type(uint232)" + } + }, + "id": 7279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2749:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2735:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "src": "2727:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7287, + "nodeType": "IfStatement", + "src": "2723:105:32", + "trueBody": { + "id": 7286, + "nodeType": "Block", + "src": "2754:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 7282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2806:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 7283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "2811:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7281, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "2775:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2775:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7285, + "nodeType": "RevertStatement", + "src": "2768:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7290, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7269, + "src": "2852:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2844:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 7288, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2844:7:32", + "typeDescriptions": {} + } + }, + "id": 7291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2844:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "functionReturnParameters": 7273, + "id": 7292, + "nodeType": "Return", + "src": "2837:21:32" + } + ] + }, + "documentation": { + "id": 7267, + "nodeType": "StructuredDocumentation", + "src": "2362:280:32", + "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": 7294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint232", + "nameLocation": "2656:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7269, + "mutability": "mutable", + "name": "value", + "nameLocation": "2674:5:32", + "nodeType": "VariableDeclaration", + "scope": 7294, + "src": "2666:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2666:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2665:15:32" + }, + "returnParameters": { + "id": 7273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7272, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7294, + "src": "2704:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + }, + "typeName": { + "id": 7271, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2704:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "visibility": "internal" + } + ], + "src": "2703:9:32" + }, + "scope": 8948, + "src": "2647:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7321, + "nodeType": "Block", + "src": "3222:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7302, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7297, + "src": "3236:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3249:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 7304, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3249:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + } + ], + "id": 7303, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3244:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3244:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint224", + "typeString": "type(uint224)" + } + }, + "id": 7307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3258:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3244:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "3236:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7315, + "nodeType": "IfStatement", + "src": "3232:105:32", + "trueBody": { + "id": 7314, + "nodeType": "Block", + "src": "3263:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 7310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3315:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 7311, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7297, + "src": "3320:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7309, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "3284:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3284:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7313, + "nodeType": "RevertStatement", + "src": "3277:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7318, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7297, + "src": "3361:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3353:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 7316, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3353:7:32", + "typeDescriptions": {} + } + }, + "id": 7319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3353:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "functionReturnParameters": 7301, + "id": 7320, + "nodeType": "Return", + "src": "3346:21:32" + } + ] + }, + "documentation": { + "id": 7295, + "nodeType": "StructuredDocumentation", + "src": "2871:280:32", + "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": 7322, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint224", + "nameLocation": "3165:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7297, + "mutability": "mutable", + "name": "value", + "nameLocation": "3183:5:32", + "nodeType": "VariableDeclaration", + "scope": 7322, + "src": "3175:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3175:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3174:15:32" + }, + "returnParameters": { + "id": 7301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7300, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7322, + "src": "3213:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 7299, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3213:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "visibility": "internal" + } + ], + "src": "3212:9:32" + }, + "scope": 8948, + "src": "3156:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7349, + "nodeType": "Block", + "src": "3731:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7330, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7325, + "src": "3745:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3758:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 7332, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3758:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + } + ], + "id": 7331, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3753:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3753:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint216", + "typeString": "type(uint216)" + } + }, + "id": 7335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3767:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3753:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "src": "3745:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7343, + "nodeType": "IfStatement", + "src": "3741:105:32", + "trueBody": { + "id": 7342, + "nodeType": "Block", + "src": "3772:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 7338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3824:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 7339, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7325, + "src": "3829:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7337, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "3793:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3793:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7341, + "nodeType": "RevertStatement", + "src": "3786:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7346, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7325, + "src": "3870:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3862:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 7344, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3862:7:32", + "typeDescriptions": {} + } + }, + "id": 7347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3862:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "functionReturnParameters": 7329, + "id": 7348, + "nodeType": "Return", + "src": "3855:21:32" + } + ] + }, + "documentation": { + "id": 7323, + "nodeType": "StructuredDocumentation", + "src": "3380:280:32", + "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": 7350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint216", + "nameLocation": "3674:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7325, + "mutability": "mutable", + "name": "value", + "nameLocation": "3692:5:32", + "nodeType": "VariableDeclaration", + "scope": 7350, + "src": "3684:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3684:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3683:15:32" + }, + "returnParameters": { + "id": 7329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7328, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7350, + "src": "3722:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + }, + "typeName": { + "id": 7327, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3722:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "visibility": "internal" + } + ], + "src": "3721:9:32" + }, + "scope": 8948, + "src": "3665:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7377, + "nodeType": "Block", + "src": "4240:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7358, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7353, + "src": "4254:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4267:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 7360, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4267:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + } + ], + "id": 7359, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4262:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4262:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint208", + "typeString": "type(uint208)" + } + }, + "id": 7363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4276:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4262:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "src": "4254:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7371, + "nodeType": "IfStatement", + "src": "4250:105:32", + "trueBody": { + "id": 7370, + "nodeType": "Block", + "src": "4281:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 7366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4333:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 7367, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7353, + "src": "4338:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7365, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "4302:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4302:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7369, + "nodeType": "RevertStatement", + "src": "4295:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7374, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7353, + "src": "4379:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4371:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 7372, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4371:7:32", + "typeDescriptions": {} + } + }, + "id": 7375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4371:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "functionReturnParameters": 7357, + "id": 7376, + "nodeType": "Return", + "src": "4364:21:32" + } + ] + }, + "documentation": { + "id": 7351, + "nodeType": "StructuredDocumentation", + "src": "3889:280:32", + "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": 7378, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint208", + "nameLocation": "4183:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7353, + "mutability": "mutable", + "name": "value", + "nameLocation": "4201:5:32", + "nodeType": "VariableDeclaration", + "scope": 7378, + "src": "4193:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4193:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4192:15:32" + }, + "returnParameters": { + "id": 7357, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7356, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7378, + "src": "4231:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + }, + "typeName": { + "id": 7355, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4231:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "visibility": "internal" + } + ], + "src": "4230:9:32" + }, + "scope": 8948, + "src": "4174:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7405, + "nodeType": "Block", + "src": "4749:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7386, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7381, + "src": "4763:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4776:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 7388, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4776:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + } + ], + "id": 7387, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4771:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4771:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint200", + "typeString": "type(uint200)" + } + }, + "id": 7391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4785:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4771:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "src": "4763:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7399, + "nodeType": "IfStatement", + "src": "4759:105:32", + "trueBody": { + "id": 7398, + "nodeType": "Block", + "src": "4790:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 7394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4842:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 7395, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7381, + "src": "4847:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7393, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "4811:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4811:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7397, + "nodeType": "RevertStatement", + "src": "4804:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7402, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7381, + "src": "4888:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4880:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 7400, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4880:7:32", + "typeDescriptions": {} + } + }, + "id": 7403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4880:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "functionReturnParameters": 7385, + "id": 7404, + "nodeType": "Return", + "src": "4873:21:32" + } + ] + }, + "documentation": { + "id": 7379, + "nodeType": "StructuredDocumentation", + "src": "4398:280:32", + "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": 7406, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint200", + "nameLocation": "4692:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7381, + "mutability": "mutable", + "name": "value", + "nameLocation": "4710:5:32", + "nodeType": "VariableDeclaration", + "scope": 7406, + "src": "4702:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4702:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4701:15:32" + }, + "returnParameters": { + "id": 7385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7406, + "src": "4740:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + }, + "typeName": { + "id": 7383, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4740:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "visibility": "internal" + } + ], + "src": "4739:9:32" + }, + "scope": 8948, + "src": "4683:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7433, + "nodeType": "Block", + "src": "5258:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7414, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7409, + "src": "5272:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5285:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 7416, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5285:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + } + ], + "id": 7415, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5280:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5280:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint192", + "typeString": "type(uint192)" + } + }, + "id": 7419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5294:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5280:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "src": "5272:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7427, + "nodeType": "IfStatement", + "src": "5268:105:32", + "trueBody": { + "id": 7426, + "nodeType": "Block", + "src": "5299:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5351:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 7423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7409, + "src": "5356:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7421, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "5320:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5320:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7425, + "nodeType": "RevertStatement", + "src": "5313:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7430, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7409, + "src": "5397:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5389:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 7428, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5389:7:32", + "typeDescriptions": {} + } + }, + "id": 7431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5389:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "functionReturnParameters": 7413, + "id": 7432, + "nodeType": "Return", + "src": "5382:21:32" + } + ] + }, + "documentation": { + "id": 7407, + "nodeType": "StructuredDocumentation", + "src": "4907:280:32", + "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": 7434, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint192", + "nameLocation": "5201:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7409, + "mutability": "mutable", + "name": "value", + "nameLocation": "5219:5:32", + "nodeType": "VariableDeclaration", + "scope": 7434, + "src": "5211:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5211:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5210:15:32" + }, + "returnParameters": { + "id": 7413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7412, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7434, + "src": "5249:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + }, + "typeName": { + "id": 7411, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5249:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "visibility": "internal" + } + ], + "src": "5248:9:32" + }, + "scope": 8948, + "src": "5192:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7461, + "nodeType": "Block", + "src": "5767:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7442, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7437, + "src": "5781:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 7444, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5794:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + } + ], + "id": 7443, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5789:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5789:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint184", + "typeString": "type(uint184)" + } + }, + "id": 7447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5803:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5789:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "src": "5781:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7455, + "nodeType": "IfStatement", + "src": "5777:105:32", + "trueBody": { + "id": 7454, + "nodeType": "Block", + "src": "5808:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 7450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5860:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 7451, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7437, + "src": "5865:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7449, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "5829:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5829:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7453, + "nodeType": "RevertStatement", + "src": "5822:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7458, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7437, + "src": "5906:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5898:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 7456, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5898:7:32", + "typeDescriptions": {} + } + }, + "id": 7459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5898:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "functionReturnParameters": 7441, + "id": 7460, + "nodeType": "Return", + "src": "5891:21:32" + } + ] + }, + "documentation": { + "id": 7435, + "nodeType": "StructuredDocumentation", + "src": "5416:280:32", + "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": 7462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint184", + "nameLocation": "5710:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7437, + "mutability": "mutable", + "name": "value", + "nameLocation": "5728:5:32", + "nodeType": "VariableDeclaration", + "scope": 7462, + "src": "5720:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5720:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5719:15:32" + }, + "returnParameters": { + "id": 7441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7440, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7462, + "src": "5758:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + }, + "typeName": { + "id": 7439, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5758:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "visibility": "internal" + } + ], + "src": "5757:9:32" + }, + "scope": 8948, + "src": "5701:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7489, + "nodeType": "Block", + "src": "6276:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7470, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7465, + "src": "6290:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6303:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 7472, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6303:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + } + ], + "id": 7471, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6298:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6298:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint176", + "typeString": "type(uint176)" + } + }, + "id": 7475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6312:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6298:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "src": "6290:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7483, + "nodeType": "IfStatement", + "src": "6286:105:32", + "trueBody": { + "id": 7482, + "nodeType": "Block", + "src": "6317:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 7478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6369:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 7479, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7465, + "src": "6374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7477, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "6338:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6338:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7481, + "nodeType": "RevertStatement", + "src": "6331:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7486, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7465, + "src": "6415:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6407:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 7484, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6407:7:32", + "typeDescriptions": {} + } + }, + "id": 7487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6407:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "functionReturnParameters": 7469, + "id": 7488, + "nodeType": "Return", + "src": "6400:21:32" + } + ] + }, + "documentation": { + "id": 7463, + "nodeType": "StructuredDocumentation", + "src": "5925:280:32", + "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": 7490, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint176", + "nameLocation": "6219:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7465, + "mutability": "mutable", + "name": "value", + "nameLocation": "6237:5:32", + "nodeType": "VariableDeclaration", + "scope": 7490, + "src": "6229:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6229:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6228:15:32" + }, + "returnParameters": { + "id": 7469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7468, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7490, + "src": "6267:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + }, + "typeName": { + "id": 7467, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6267:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "visibility": "internal" + } + ], + "src": "6266:9:32" + }, + "scope": 8948, + "src": "6210:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7517, + "nodeType": "Block", + "src": "6785:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7498, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "6799:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6812:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 7500, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6812:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + } + ], + "id": 7499, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6807:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6807:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint168", + "typeString": "type(uint168)" + } + }, + "id": 7503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6821:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6807:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "src": "6799:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7511, + "nodeType": "IfStatement", + "src": "6795:105:32", + "trueBody": { + "id": 7510, + "nodeType": "Block", + "src": "6826:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 7506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6878:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 7507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "6883:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7505, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "6847:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6847:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7509, + "nodeType": "RevertStatement", + "src": "6840:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7514, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "6924:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6916:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 7512, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6916:7:32", + "typeDescriptions": {} + } + }, + "id": 7515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6916:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "functionReturnParameters": 7497, + "id": 7516, + "nodeType": "Return", + "src": "6909:21:32" + } + ] + }, + "documentation": { + "id": 7491, + "nodeType": "StructuredDocumentation", + "src": "6434:280:32", + "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": 7518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint168", + "nameLocation": "6728:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7493, + "mutability": "mutable", + "name": "value", + "nameLocation": "6746:5:32", + "nodeType": "VariableDeclaration", + "scope": 7518, + "src": "6738:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6738:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6737:15:32" + }, + "returnParameters": { + "id": 7497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7496, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7518, + "src": "6776:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + }, + "typeName": { + "id": 7495, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6776:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "visibility": "internal" + } + ], + "src": "6775:9:32" + }, + "scope": 8948, + "src": "6719:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7545, + "nodeType": "Block", + "src": "7294:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7526, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7521, + "src": "7308:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7321:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 7528, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7321:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + } + ], + "id": 7527, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7316:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7316:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint160", + "typeString": "type(uint160)" + } + }, + "id": 7531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7330:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7316:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "src": "7308:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7539, + "nodeType": "IfStatement", + "src": "7304:105:32", + "trueBody": { + "id": 7538, + "nodeType": "Block", + "src": "7335:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 7534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7387:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 7535, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7521, + "src": "7392:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7533, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "7356:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7356:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7537, + "nodeType": "RevertStatement", + "src": "7349:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7542, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7521, + "src": "7433:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7425:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 7540, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7425:7:32", + "typeDescriptions": {} + } + }, + "id": 7543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7425:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "functionReturnParameters": 7525, + "id": 7544, + "nodeType": "Return", + "src": "7418:21:32" + } + ] + }, + "documentation": { + "id": 7519, + "nodeType": "StructuredDocumentation", + "src": "6943:280:32", + "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": 7546, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint160", + "nameLocation": "7237:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7521, + "mutability": "mutable", + "name": "value", + "nameLocation": "7255:5:32", + "nodeType": "VariableDeclaration", + "scope": 7546, + "src": "7247:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7247:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7246:15:32" + }, + "returnParameters": { + "id": 7525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7524, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7546, + "src": "7285:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + }, + "typeName": { + "id": 7523, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7285:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "visibility": "internal" + } + ], + "src": "7284:9:32" + }, + "scope": 8948, + "src": "7228:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7573, + "nodeType": "Block", + "src": "7803:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7554, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7549, + "src": "7817:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7830:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 7556, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7830:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + } + ], + "id": 7555, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7825:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7825:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint152", + "typeString": "type(uint152)" + } + }, + "id": 7559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7839:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7825:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "src": "7817:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7567, + "nodeType": "IfStatement", + "src": "7813:105:32", + "trueBody": { + "id": 7566, + "nodeType": "Block", + "src": "7844:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 7562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7896:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 7563, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7549, + "src": "7901:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7561, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "7865:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7865:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7565, + "nodeType": "RevertStatement", + "src": "7858:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7570, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7549, + "src": "7942:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7934:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 7568, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7934:7:32", + "typeDescriptions": {} + } + }, + "id": 7571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7934:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "functionReturnParameters": 7553, + "id": 7572, + "nodeType": "Return", + "src": "7927:21:32" + } + ] + }, + "documentation": { + "id": 7547, + "nodeType": "StructuredDocumentation", + "src": "7452:280:32", + "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": 7574, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint152", + "nameLocation": "7746:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7549, + "mutability": "mutable", + "name": "value", + "nameLocation": "7764:5:32", + "nodeType": "VariableDeclaration", + "scope": 7574, + "src": "7756:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7756:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7755:15:32" + }, + "returnParameters": { + "id": 7553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7552, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7574, + "src": "7794:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + }, + "typeName": { + "id": 7551, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7794:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "visibility": "internal" + } + ], + "src": "7793:9:32" + }, + "scope": 8948, + "src": "7737:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7601, + "nodeType": "Block", + "src": "8312:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7582, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7577, + "src": "8326:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8339:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 7584, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8339:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + } + ], + "id": 7583, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8334:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8334:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint144", + "typeString": "type(uint144)" + } + }, + "id": 7587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8348:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8334:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "src": "8326:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7595, + "nodeType": "IfStatement", + "src": "8322:105:32", + "trueBody": { + "id": 7594, + "nodeType": "Block", + "src": "8353:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 7590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8405:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 7591, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7577, + "src": "8410:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7589, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "8374:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8374:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7593, + "nodeType": "RevertStatement", + "src": "8367:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7598, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7577, + "src": "8451:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8443:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 7596, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8443:7:32", + "typeDescriptions": {} + } + }, + "id": 7599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8443:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "functionReturnParameters": 7581, + "id": 7600, + "nodeType": "Return", + "src": "8436:21:32" + } + ] + }, + "documentation": { + "id": 7575, + "nodeType": "StructuredDocumentation", + "src": "7961:280:32", + "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": 7602, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint144", + "nameLocation": "8255:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7577, + "mutability": "mutable", + "name": "value", + "nameLocation": "8273:5:32", + "nodeType": "VariableDeclaration", + "scope": 7602, + "src": "8265:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8265:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8264:15:32" + }, + "returnParameters": { + "id": 7581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7580, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7602, + "src": "8303:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + }, + "typeName": { + "id": 7579, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8303:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "visibility": "internal" + } + ], + "src": "8302:9:32" + }, + "scope": 8948, + "src": "8246:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7629, + "nodeType": "Block", + "src": "8821:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7610, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7605, + "src": "8835:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8848:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 7612, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8848:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + } + ], + "id": 7611, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8843:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8843:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint136", + "typeString": "type(uint136)" + } + }, + "id": 7615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8857:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8843:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "src": "8835:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7623, + "nodeType": "IfStatement", + "src": "8831:105:32", + "trueBody": { + "id": 7622, + "nodeType": "Block", + "src": "8862:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 7618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8914:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 7619, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7605, + "src": "8919:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7617, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "8883:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8883:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7621, + "nodeType": "RevertStatement", + "src": "8876:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7626, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7605, + "src": "8960:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8952:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 7624, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8952:7:32", + "typeDescriptions": {} + } + }, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8952:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "functionReturnParameters": 7609, + "id": 7628, + "nodeType": "Return", + "src": "8945:21:32" + } + ] + }, + "documentation": { + "id": 7603, + "nodeType": "StructuredDocumentation", + "src": "8470:280:32", + "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": 7630, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint136", + "nameLocation": "8764:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7605, + "mutability": "mutable", + "name": "value", + "nameLocation": "8782:5:32", + "nodeType": "VariableDeclaration", + "scope": 7630, + "src": "8774:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8774:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8773:15:32" + }, + "returnParameters": { + "id": 7609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7608, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7630, + "src": "8812:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + }, + "typeName": { + "id": 7607, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8812:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "visibility": "internal" + } + ], + "src": "8811:9:32" + }, + "scope": 8948, + "src": "8755:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7657, + "nodeType": "Block", + "src": "9330:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7638, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "9344:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9357:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 7640, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9357:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + } + ], + "id": 7639, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9352:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9352:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint128", + "typeString": "type(uint128)" + } + }, + "id": 7643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9366:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9352:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "9344:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7651, + "nodeType": "IfStatement", + "src": "9340:105:32", + "trueBody": { + "id": 7650, + "nodeType": "Block", + "src": "9371:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 7646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9423:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 7647, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "9428:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7645, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "9392:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9392:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7649, + "nodeType": "RevertStatement", + "src": "9385:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7654, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "9469:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9461:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 7652, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9461:7:32", + "typeDescriptions": {} + } + }, + "id": 7655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9461:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 7637, + "id": 7656, + "nodeType": "Return", + "src": "9454:21:32" + } + ] + }, + "documentation": { + "id": 7631, + "nodeType": "StructuredDocumentation", + "src": "8979:280:32", + "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": 7658, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint128", + "nameLocation": "9273:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7633, + "mutability": "mutable", + "name": "value", + "nameLocation": "9291:5:32", + "nodeType": "VariableDeclaration", + "scope": 7658, + "src": "9283:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9283:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9282:15:32" + }, + "returnParameters": { + "id": 7637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7636, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7658, + "src": "9321:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 7635, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9321:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "9320:9:32" + }, + "scope": 8948, + "src": "9264:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7685, + "nodeType": "Block", + "src": "9839:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7666, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7661, + "src": "9853:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9866:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 7668, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9866:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + } + ], + "id": 7667, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9861:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9861:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint120", + "typeString": "type(uint120)" + } + }, + "id": 7671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9875:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9861:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "src": "9853:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7679, + "nodeType": "IfStatement", + "src": "9849:105:32", + "trueBody": { + "id": 7678, + "nodeType": "Block", + "src": "9880:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 7674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9932:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 7675, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7661, + "src": "9937:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7673, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "9901:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9901:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7677, + "nodeType": "RevertStatement", + "src": "9894:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7682, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7661, + "src": "9978:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9970:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 7680, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9970:7:32", + "typeDescriptions": {} + } + }, + "id": 7683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9970:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "functionReturnParameters": 7665, + "id": 7684, + "nodeType": "Return", + "src": "9963:21:32" + } + ] + }, + "documentation": { + "id": 7659, + "nodeType": "StructuredDocumentation", + "src": "9488:280:32", + "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": 7686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint120", + "nameLocation": "9782:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7661, + "mutability": "mutable", + "name": "value", + "nameLocation": "9800:5:32", + "nodeType": "VariableDeclaration", + "scope": 7686, + "src": "9792:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9792:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9791:15:32" + }, + "returnParameters": { + "id": 7665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7664, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7686, + "src": "9830:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + }, + "typeName": { + "id": 7663, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9830:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "visibility": "internal" + } + ], + "src": "9829:9:32" + }, + "scope": 8948, + "src": "9773:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7713, + "nodeType": "Block", + "src": "10348:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7694, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7689, + "src": "10362:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10375:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 7696, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10375:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + } + ], + "id": 7695, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10370:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10370:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint112", + "typeString": "type(uint112)" + } + }, + "id": 7699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10384:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10370:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "10362:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7707, + "nodeType": "IfStatement", + "src": "10358:105:32", + "trueBody": { + "id": 7706, + "nodeType": "Block", + "src": "10389:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 7702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10441:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 7703, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7689, + "src": "10446:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7701, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "10410:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10410:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7705, + "nodeType": "RevertStatement", + "src": "10403:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7710, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7689, + "src": "10487:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10479:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 7708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10479:7:32", + "typeDescriptions": {} + } + }, + "id": 7711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10479:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "functionReturnParameters": 7693, + "id": 7712, + "nodeType": "Return", + "src": "10472:21:32" + } + ] + }, + "documentation": { + "id": 7687, + "nodeType": "StructuredDocumentation", + "src": "9997:280:32", + "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": 7714, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint112", + "nameLocation": "10291:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7689, + "mutability": "mutable", + "name": "value", + "nameLocation": "10309:5:32", + "nodeType": "VariableDeclaration", + "scope": 7714, + "src": "10301:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10301:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10300:15:32" + }, + "returnParameters": { + "id": 7693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7692, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7714, + "src": "10339:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 7691, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10339:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + } + ], + "src": "10338:9:32" + }, + "scope": 8948, + "src": "10282:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7741, + "nodeType": "Block", + "src": "10857:152:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7722, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7717, + "src": "10871:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10884:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 7724, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10884:7:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + } + ], + "id": 7723, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10879:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10879:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint104", + "typeString": "type(uint104)" + } + }, + "id": 7727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10893:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10879:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "src": "10871:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7735, + "nodeType": "IfStatement", + "src": "10867:105:32", + "trueBody": { + "id": 7734, + "nodeType": "Block", + "src": "10898:74:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 7730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10950:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 7731, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7717, + "src": "10955:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7729, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "10919:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10919:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7733, + "nodeType": "RevertStatement", + "src": "10912:49:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7738, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7717, + "src": "10996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10988:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 7736, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10988:7:32", + "typeDescriptions": {} + } + }, + "id": 7739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10988:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "functionReturnParameters": 7721, + "id": 7740, + "nodeType": "Return", + "src": "10981:21:32" + } + ] + }, + "documentation": { + "id": 7715, + "nodeType": "StructuredDocumentation", + "src": "10506:280:32", + "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": 7742, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint104", + "nameLocation": "10800:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7717, + "mutability": "mutable", + "name": "value", + "nameLocation": "10818:5:32", + "nodeType": "VariableDeclaration", + "scope": 7742, + "src": "10810:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10810:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10809:15:32" + }, + "returnParameters": { + "id": 7721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7720, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7742, + "src": "10848:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 7719, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10848:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + } + ], + "src": "10847:9:32" + }, + "scope": 8948, + "src": "10791:218:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7769, + "nodeType": "Block", + "src": "11360:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7745, + "src": "11374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 7752, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11387:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + } + ], + "id": 7751, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11382:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11382:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint96", + "typeString": "type(uint96)" + } + }, + "id": 7755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11395:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11382:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11374:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7763, + "nodeType": "IfStatement", + "src": "11370:103:32", + "trueBody": { + "id": 7762, + "nodeType": "Block", + "src": "11400:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 7758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11452:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 7759, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7745, + "src": "11456:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7757, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "11421:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11421:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7761, + "nodeType": "RevertStatement", + "src": "11414:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7766, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7745, + "src": "11496:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11489:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 7764, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11489:6:32", + "typeDescriptions": {} + } + }, + "id": 7767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11489:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 7749, + "id": 7768, + "nodeType": "Return", + "src": "11482:20:32" + } + ] + }, + "documentation": { + "id": 7743, + "nodeType": "StructuredDocumentation", + "src": "11015:276:32", + "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": 7770, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint96", + "nameLocation": "11305:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7745, + "mutability": "mutable", + "name": "value", + "nameLocation": "11322:5:32", + "nodeType": "VariableDeclaration", + "scope": 7770, + "src": "11314:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11314:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11313:15:32" + }, + "returnParameters": { + "id": 7749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7748, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7770, + "src": "11352:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 7747, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11352:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "11351:8:32" + }, + "scope": 8948, + "src": "11296:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7797, + "nodeType": "Block", + "src": "11860:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7778, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7773, + "src": "11874:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11887:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 7780, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11887:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + } + ], + "id": 7779, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11882:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11882:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint88", + "typeString": "type(uint88)" + } + }, + "id": 7783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11895:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11882:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "src": "11874:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7791, + "nodeType": "IfStatement", + "src": "11870:103:32", + "trueBody": { + "id": 7790, + "nodeType": "Block", + "src": "11900:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 7786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11952:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 7787, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7773, + "src": "11956:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7785, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "11921:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11921:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7789, + "nodeType": "RevertStatement", + "src": "11914:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7794, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7773, + "src": "11996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11989:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 7792, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11989:6:32", + "typeDescriptions": {} + } + }, + "id": 7795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11989:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "functionReturnParameters": 7777, + "id": 7796, + "nodeType": "Return", + "src": "11982:20:32" + } + ] + }, + "documentation": { + "id": 7771, + "nodeType": "StructuredDocumentation", + "src": "11515:276:32", + "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": 7798, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint88", + "nameLocation": "11805:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7774, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7773, + "mutability": "mutable", + "name": "value", + "nameLocation": "11822:5:32", + "nodeType": "VariableDeclaration", + "scope": 7798, + "src": "11814:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11814:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11813:15:32" + }, + "returnParameters": { + "id": 7777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7776, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7798, + "src": "11852:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + }, + "typeName": { + "id": 7775, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11852:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "visibility": "internal" + } + ], + "src": "11851:8:32" + }, + "scope": 8948, + "src": "11796:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7825, + "nodeType": "Block", + "src": "12360:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7806, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7801, + "src": "12374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 7808, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12387:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + } + ], + "id": 7807, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12382:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12382:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint80", + "typeString": "type(uint80)" + } + }, + "id": 7811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12395:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12382:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "src": "12374:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7819, + "nodeType": "IfStatement", + "src": "12370:103:32", + "trueBody": { + "id": 7818, + "nodeType": "Block", + "src": "12400:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 7814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12452:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 7815, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7801, + "src": "12456:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7813, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "12421:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12421:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7817, + "nodeType": "RevertStatement", + "src": "12414:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7822, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7801, + "src": "12496:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12489:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 7820, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12489:6:32", + "typeDescriptions": {} + } + }, + "id": 7823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12489:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "functionReturnParameters": 7805, + "id": 7824, + "nodeType": "Return", + "src": "12482:20:32" + } + ] + }, + "documentation": { + "id": 7799, + "nodeType": "StructuredDocumentation", + "src": "12015:276:32", + "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": 7826, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint80", + "nameLocation": "12305:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7801, + "mutability": "mutable", + "name": "value", + "nameLocation": "12322:5:32", + "nodeType": "VariableDeclaration", + "scope": 7826, + "src": "12314:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7800, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12314:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12313:15:32" + }, + "returnParameters": { + "id": 7805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7804, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7826, + "src": "12352:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + }, + "typeName": { + "id": 7803, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12352:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "visibility": "internal" + } + ], + "src": "12351:8:32" + }, + "scope": 8948, + "src": "12296:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7853, + "nodeType": "Block", + "src": "12860:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7834, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7829, + "src": "12874:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12887:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 7836, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12887:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + } + ], + "id": 7835, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12882:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12882:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint72", + "typeString": "type(uint72)" + } + }, + "id": 7839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12895:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12882:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "12874:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7847, + "nodeType": "IfStatement", + "src": "12870:103:32", + "trueBody": { + "id": 7846, + "nodeType": "Block", + "src": "12900:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 7842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12952:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 7843, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7829, + "src": "12956:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7841, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "12921:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12921:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7845, + "nodeType": "RevertStatement", + "src": "12914:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7850, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7829, + "src": "12996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12989:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 7848, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12989:6:32", + "typeDescriptions": {} + } + }, + "id": 7851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12989:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "functionReturnParameters": 7833, + "id": 7852, + "nodeType": "Return", + "src": "12982:20:32" + } + ] + }, + "documentation": { + "id": 7827, + "nodeType": "StructuredDocumentation", + "src": "12515:276:32", + "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": 7854, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint72", + "nameLocation": "12805:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7829, + "mutability": "mutable", + "name": "value", + "nameLocation": "12822:5:32", + "nodeType": "VariableDeclaration", + "scope": 7854, + "src": "12814:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12814:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12813:15:32" + }, + "returnParameters": { + "id": 7833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7832, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7854, + "src": "12852:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 7831, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12852:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "12851:8:32" + }, + "scope": 8948, + "src": "12796:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7881, + "nodeType": "Block", + "src": "13360:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7862, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 7864, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13387:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 7863, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13382:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7866, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13382:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 7867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13395:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13382:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "13374:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7875, + "nodeType": "IfStatement", + "src": "13370:103:32", + "trueBody": { + "id": 7874, + "nodeType": "Block", + "src": "13400:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 7870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13452:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 7871, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13456:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7869, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "13421:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13421:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7873, + "nodeType": "RevertStatement", + "src": "13414:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7878, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13496:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13489:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 7876, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13489:6:32", + "typeDescriptions": {} + } + }, + "id": 7879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13489:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 7861, + "id": 7880, + "nodeType": "Return", + "src": "13482:20:32" + } + ] + }, + "documentation": { + "id": 7855, + "nodeType": "StructuredDocumentation", + "src": "13015:276:32", + "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": 7882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint64", + "nameLocation": "13305:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7857, + "mutability": "mutable", + "name": "value", + "nameLocation": "13322:5:32", + "nodeType": "VariableDeclaration", + "scope": 7882, + "src": "13314:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13314:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13313:15:32" + }, + "returnParameters": { + "id": 7861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7860, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7882, + "src": "13352:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 7859, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13352:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13351:8:32" + }, + "scope": 8948, + "src": "13296:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7909, + "nodeType": "Block", + "src": "13860:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7890, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7885, + "src": "13874:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13887:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 7892, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13887:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + } + ], + "id": 7891, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13882:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13882:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint56", + "typeString": "type(uint56)" + } + }, + "id": 7895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13895:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13882:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "src": "13874:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7903, + "nodeType": "IfStatement", + "src": "13870:103:32", + "trueBody": { + "id": 7902, + "nodeType": "Block", + "src": "13900:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 7898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13952:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 7899, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7885, + "src": "13956:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7897, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "13921:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7901, + "nodeType": "RevertStatement", + "src": "13914:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7906, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7885, + "src": "13996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13989:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 7904, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13989:6:32", + "typeDescriptions": {} + } + }, + "id": 7907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13989:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "functionReturnParameters": 7889, + "id": 7908, + "nodeType": "Return", + "src": "13982:20:32" + } + ] + }, + "documentation": { + "id": 7883, + "nodeType": "StructuredDocumentation", + "src": "13515:276:32", + "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": 7910, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint56", + "nameLocation": "13805:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7885, + "mutability": "mutable", + "name": "value", + "nameLocation": "13822:5:32", + "nodeType": "VariableDeclaration", + "scope": 7910, + "src": "13814:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13814:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13813:15:32" + }, + "returnParameters": { + "id": 7889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7888, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7910, + "src": "13852:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + }, + "typeName": { + "id": 7887, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13852:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "visibility": "internal" + } + ], + "src": "13851:8:32" + }, + "scope": 8948, + "src": "13796:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7937, + "nodeType": "Block", + "src": "14360:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7918, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "14374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 7920, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14387:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + } + ], + "id": 7919, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14382:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14382:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint48", + "typeString": "type(uint48)" + } + }, + "id": 7923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14395:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14382:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14374:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7931, + "nodeType": "IfStatement", + "src": "14370:103:32", + "trueBody": { + "id": 7930, + "nodeType": "Block", + "src": "14400:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 7926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14452:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 7927, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "14456:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7925, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "14421:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14421:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7929, + "nodeType": "RevertStatement", + "src": "14414:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7934, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "14496:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14489:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 7932, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14489:6:32", + "typeDescriptions": {} + } + }, + "id": 7935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14489:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 7917, + "id": 7936, + "nodeType": "Return", + "src": "14482:20:32" + } + ] + }, + "documentation": { + "id": 7911, + "nodeType": "StructuredDocumentation", + "src": "14015:276:32", + "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": 7938, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint48", + "nameLocation": "14305:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7913, + "mutability": "mutable", + "name": "value", + "nameLocation": "14322:5:32", + "nodeType": "VariableDeclaration", + "scope": 7938, + "src": "14314:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14314:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14313:15:32" + }, + "returnParameters": { + "id": 7917, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7916, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7938, + "src": "14352:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 7915, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14352:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14351:8:32" + }, + "scope": 8948, + "src": "14296:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7965, + "nodeType": "Block", + "src": "14860:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7946, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7941, + "src": "14874:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14887:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 7948, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14887:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + } + ], + "id": 7947, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14882:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14882:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint40", + "typeString": "type(uint40)" + } + }, + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14895:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14882:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "src": "14874:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7959, + "nodeType": "IfStatement", + "src": "14870:103:32", + "trueBody": { + "id": 7958, + "nodeType": "Block", + "src": "14900:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 7954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14952:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 7955, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7941, + "src": "14956:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7953, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "14921:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14921:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7957, + "nodeType": "RevertStatement", + "src": "14914:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7962, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7941, + "src": "14996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14989:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 7960, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14989:6:32", + "typeDescriptions": {} + } + }, + "id": 7963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14989:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "functionReturnParameters": 7945, + "id": 7964, + "nodeType": "Return", + "src": "14982:20:32" + } + ] + }, + "documentation": { + "id": 7939, + "nodeType": "StructuredDocumentation", + "src": "14515:276:32", + "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": 7966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint40", + "nameLocation": "14805:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7941, + "mutability": "mutable", + "name": "value", + "nameLocation": "14822:5:32", + "nodeType": "VariableDeclaration", + "scope": 7966, + "src": "14814:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14814:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14813:15:32" + }, + "returnParameters": { + "id": 7945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7944, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7966, + "src": "14852:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 7943, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14852:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + } + ], + "src": "14851:8:32" + }, + "scope": 8948, + "src": "14796:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7993, + "nodeType": "Block", + "src": "15360:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7974, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7969, + "src": "15374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 7976, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15387:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + } + ], + "id": 7975, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15382:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15382:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint32", + "typeString": "type(uint32)" + } + }, + "id": 7979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15395:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15382:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15374:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7987, + "nodeType": "IfStatement", + "src": "15370:103:32", + "trueBody": { + "id": 7986, + "nodeType": "Block", + "src": "15400:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15452:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 7983, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7969, + "src": "15456:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7981, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "15421:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 7984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15421:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7985, + "nodeType": "RevertStatement", + "src": "15414:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7969, + "src": "15496:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15489:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 7988, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15489:6:32", + "typeDescriptions": {} + } + }, + "id": 7991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15489:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 7973, + "id": 7992, + "nodeType": "Return", + "src": "15482:20:32" + } + ] + }, + "documentation": { + "id": 7967, + "nodeType": "StructuredDocumentation", + "src": "15015:276:32", + "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": 7994, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint32", + "nameLocation": "15305:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7969, + "mutability": "mutable", + "name": "value", + "nameLocation": "15322:5:32", + "nodeType": "VariableDeclaration", + "scope": 7994, + "src": "15314:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15314:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15313:15:32" + }, + "returnParameters": { + "id": 7973, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7972, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7994, + "src": "15352:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7971, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15352:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "15351:8:32" + }, + "scope": 8948, + "src": "15296:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8021, + "nodeType": "Block", + "src": "15860:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8002, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "15874:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 8005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15887:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 8004, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15887:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + } + ], + "id": 8003, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15882:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15882:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint24", + "typeString": "type(uint24)" + } + }, + "id": 8007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15895:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15882:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "src": "15874:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8015, + "nodeType": "IfStatement", + "src": "15870:103:32", + "trueBody": { + "id": 8014, + "nodeType": "Block", + "src": "15900:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 8010, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15952:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 8011, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "15956:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8009, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "15921:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 8012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15921:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8013, + "nodeType": "RevertStatement", + "src": "15914:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8018, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "15996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15989:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 8016, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15989:6:32", + "typeDescriptions": {} + } + }, + "id": 8019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15989:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "functionReturnParameters": 8001, + "id": 8020, + "nodeType": "Return", + "src": "15982:20:32" + } + ] + }, + "documentation": { + "id": 7995, + "nodeType": "StructuredDocumentation", + "src": "15515:276:32", + "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": 8022, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint24", + "nameLocation": "15805:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7997, + "mutability": "mutable", + "name": "value", + "nameLocation": "15822:5:32", + "nodeType": "VariableDeclaration", + "scope": 8022, + "src": "15814:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15814:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15813:15:32" + }, + "returnParameters": { + "id": 8001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8000, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8022, + "src": "15852:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "typeName": { + "id": 7999, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15852:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "visibility": "internal" + } + ], + "src": "15851:8:32" + }, + "scope": 8948, + "src": "15796:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8049, + "nodeType": "Block", + "src": "16360:149:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8030, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "16374:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 8032, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16387:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + } + ], + "id": 8031, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16382:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16382:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint16", + "typeString": "type(uint16)" + } + }, + "id": 8035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16395:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16382:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "16374:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8043, + "nodeType": "IfStatement", + "src": "16370:103:32", + "trueBody": { + "id": 8042, + "nodeType": "Block", + "src": "16400:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 8038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16452:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 8039, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "16456:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8037, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "16421:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16421:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8041, + "nodeType": "RevertStatement", + "src": "16414:48:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8046, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8025, + "src": "16496:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16489:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 8044, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16489:6:32", + "typeDescriptions": {} + } + }, + "id": 8047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16489:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 8029, + "id": 8048, + "nodeType": "Return", + "src": "16482:20:32" + } + ] + }, + "documentation": { + "id": 8023, + "nodeType": "StructuredDocumentation", + "src": "16015:276:32", + "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": 8050, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint16", + "nameLocation": "16305:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8025, + "mutability": "mutable", + "name": "value", + "nameLocation": "16322:5:32", + "nodeType": "VariableDeclaration", + "scope": 8050, + "src": "16314:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16314:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16313:15:32" + }, + "returnParameters": { + "id": 8029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8028, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8050, + "src": "16352:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 8027, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16352:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "16351:8:32" + }, + "scope": 8948, + "src": "16296:213:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8077, + "nodeType": "Block", + "src": "16854:146:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8058, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8053, + "src": "16868:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 8061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8060, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16881:5:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 8059, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16876:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16876:11:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 8063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16888:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16876:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "16868:23:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8071, + "nodeType": "IfStatement", + "src": "16864:101:32", + "trueBody": { + "id": 8070, + "nodeType": "Block", + "src": "16893:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 8066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16945:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 8067, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8053, + "src": "16948:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8065, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7193, + "src": "16914:30:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$__$", + "typeString": "function (uint8,uint256) pure" + } + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16914:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8069, + "nodeType": "RevertStatement", + "src": "16907:47:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8074, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8053, + "src": "16987:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16981:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8072, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16981:5:32", + "typeDescriptions": {} + } + }, + "id": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16981:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 8057, + "id": 8076, + "nodeType": "Return", + "src": "16974:19:32" + } + ] + }, + "documentation": { + "id": 8051, + "nodeType": "StructuredDocumentation", + "src": "16515:272:32", + "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": 8078, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint8", + "nameLocation": "16801:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8053, + "mutability": "mutable", + "name": "value", + "nameLocation": "16817:5:32", + "nodeType": "VariableDeclaration", + "scope": 8078, + "src": "16809:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16809:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16808:15:32" + }, + "returnParameters": { + "id": 8057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8056, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8078, + "src": "16847:5:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8055, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16847:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16846:7:32" + }, + "scope": 8948, + "src": "16792:208:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8100, + "nodeType": "Block", + "src": "17236:128:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8086, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8081, + "src": "17250:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 8087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17258:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17250:9:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8094, + "nodeType": "IfStatement", + "src": "17246:81:32", + "trueBody": { + "id": 8093, + "nodeType": "Block", + "src": "17261:66:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 8090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8081, + "src": "17310:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8089, + "name": "SafeCastOverflowedIntToUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7198, + "src": "17282:27:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$__$", + "typeString": "function (int256) pure" + } + }, + "id": 8091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17282:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8092, + "nodeType": "RevertStatement", + "src": "17275:41:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8081, + "src": "17351:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17343:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17343:7:32", + "typeDescriptions": {} + } + }, + "id": 8098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17343:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8085, + "id": 8099, + "nodeType": "Return", + "src": "17336:21:32" + } + ] + }, + "documentation": { + "id": 8079, + "nodeType": "StructuredDocumentation", + "src": "17006:160:32", + "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0." + }, + "id": 8101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint256", + "nameLocation": "17180:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8081, + "mutability": "mutable", + "name": "value", + "nameLocation": "17197:5:32", + "nodeType": "VariableDeclaration", + "scope": 8101, + "src": "17190:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8080, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17190:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17189:14:32" + }, + "returnParameters": { + "id": 8085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8084, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8101, + "src": "17227:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8083, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17227:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17226:9:32" + }, + "scope": 8948, + "src": "17171:193:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8126, + "nodeType": "Block", + "src": "17761:150:32", + "statements": [ + { + "expression": { + "id": 8114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8109, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8107, + "src": "17771:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8112, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8104, + "src": "17791:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17784:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int248_$", + "typeString": "type(int248)" + }, + "typeName": { + "id": 8110, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17784:6:32", + "typeDescriptions": {} + } + }, + "id": 8113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17784:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "src": "17771:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "id": 8115, + "nodeType": "ExpressionStatement", + "src": "17771:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8116, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8107, + "src": "17811:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8117, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8104, + "src": "17825:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "17811:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8125, + "nodeType": "IfStatement", + "src": "17807:98:32", + "trueBody": { + "id": 8124, + "nodeType": "Block", + "src": "17832:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 8120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17883:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 8121, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8104, + "src": "17888:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8119, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "17853:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17853:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8123, + "nodeType": "RevertStatement", + "src": "17846:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8102, + "nodeType": "StructuredDocumentation", + "src": "17370:312:32", + "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": 8127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt248", + "nameLocation": "17696:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8104, + "mutability": "mutable", + "name": "value", + "nameLocation": "17712:5:32", + "nodeType": "VariableDeclaration", + "scope": 8127, + "src": "17705:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8103, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17705:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17704:14:32" + }, + "returnParameters": { + "id": 8108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8107, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "17749:10:32", + "nodeType": "VariableDeclaration", + "scope": 8127, + "src": "17742:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + }, + "typeName": { + "id": 8106, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17742:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "visibility": "internal" + } + ], + "src": "17741:19:32" + }, + "scope": 8948, + "src": "17687:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8152, + "nodeType": "Block", + "src": "18308:150:32", + "statements": [ + { + "expression": { + "id": 8140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8135, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8133, + "src": "18318:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8138, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18338:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18331:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int240_$", + "typeString": "type(int240)" + }, + "typeName": { + "id": 8136, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18331:6:32", + "typeDescriptions": {} + } + }, + "id": 8139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18331:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "src": "18318:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "id": 8141, + "nodeType": "ExpressionStatement", + "src": "18318:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8142, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8133, + "src": "18358:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8143, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18372:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18358:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8151, + "nodeType": "IfStatement", + "src": "18354:98:32", + "trueBody": { + "id": 8150, + "nodeType": "Block", + "src": "18379:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 8146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18430:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 8147, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18435:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8145, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "18400:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18400:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8149, + "nodeType": "RevertStatement", + "src": "18393:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8128, + "nodeType": "StructuredDocumentation", + "src": "17917:312:32", + "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": 8153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt240", + "nameLocation": "18243:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8130, + "mutability": "mutable", + "name": "value", + "nameLocation": "18259:5:32", + "nodeType": "VariableDeclaration", + "scope": 8153, + "src": "18252:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8129, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18252:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18251:14:32" + }, + "returnParameters": { + "id": 8134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8133, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18296:10:32", + "nodeType": "VariableDeclaration", + "scope": 8153, + "src": "18289:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + }, + "typeName": { + "id": 8132, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18289:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "visibility": "internal" + } + ], + "src": "18288:19:32" + }, + "scope": 8948, + "src": "18234:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8178, + "nodeType": "Block", + "src": "18855:150:32", + "statements": [ + { + "expression": { + "id": 8166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8161, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8159, + "src": "18865:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8164, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "18885:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18878:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int232_$", + "typeString": "type(int232)" + }, + "typeName": { + "id": 8162, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18878:6:32", + "typeDescriptions": {} + } + }, + "id": 8165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18878:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "src": "18865:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "id": 8167, + "nodeType": "ExpressionStatement", + "src": "18865:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8168, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8159, + "src": "18905:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "18919:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18905:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8177, + "nodeType": "IfStatement", + "src": "18901:98:32", + "trueBody": { + "id": 8176, + "nodeType": "Block", + "src": "18926:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 8172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18977:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 8173, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8156, + "src": "18982:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8171, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "18947:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18947:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8175, + "nodeType": "RevertStatement", + "src": "18940:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8154, + "nodeType": "StructuredDocumentation", + "src": "18464:312:32", + "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": 8179, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt232", + "nameLocation": "18790:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8156, + "mutability": "mutable", + "name": "value", + "nameLocation": "18806:5:32", + "nodeType": "VariableDeclaration", + "scope": 8179, + "src": "18799:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8155, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18799:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18798:14:32" + }, + "returnParameters": { + "id": 8160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8159, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18843:10:32", + "nodeType": "VariableDeclaration", + "scope": 8179, + "src": "18836:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + }, + "typeName": { + "id": 8158, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18836:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "visibility": "internal" + } + ], + "src": "18835:19:32" + }, + "scope": 8948, + "src": "18781:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8204, + "nodeType": "Block", + "src": "19402:150:32", + "statements": [ + { + "expression": { + "id": 8192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8187, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8185, + "src": "19412:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8190, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8182, + "src": "19432:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19425:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int224_$", + "typeString": "type(int224)" + }, + "typeName": { + "id": 8188, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19425:6:32", + "typeDescriptions": {} + } + }, + "id": 8191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19425:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "src": "19412:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "id": 8193, + "nodeType": "ExpressionStatement", + "src": "19412:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8194, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8185, + "src": "19452:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8195, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8182, + "src": "19466:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19452:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8203, + "nodeType": "IfStatement", + "src": "19448:98:32", + "trueBody": { + "id": 8202, + "nodeType": "Block", + "src": "19473:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 8198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19524:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 8199, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8182, + "src": "19529:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8197, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "19494:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19494:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8201, + "nodeType": "RevertStatement", + "src": "19487:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8180, + "nodeType": "StructuredDocumentation", + "src": "19011:312:32", + "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": 8205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt224", + "nameLocation": "19337:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8182, + "mutability": "mutable", + "name": "value", + "nameLocation": "19353:5:32", + "nodeType": "VariableDeclaration", + "scope": 8205, + "src": "19346:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8181, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19346:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19345:14:32" + }, + "returnParameters": { + "id": 8186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8185, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19390:10:32", + "nodeType": "VariableDeclaration", + "scope": 8205, + "src": "19383:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + }, + "typeName": { + "id": 8184, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19383:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "visibility": "internal" + } + ], + "src": "19382:19:32" + }, + "scope": 8948, + "src": "19328:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8230, + "nodeType": "Block", + "src": "19949:150:32", + "statements": [ + { + "expression": { + "id": 8218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8213, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8211, + "src": "19959:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8216, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8208, + "src": "19979:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19972:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int216_$", + "typeString": "type(int216)" + }, + "typeName": { + "id": 8214, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19972:6:32", + "typeDescriptions": {} + } + }, + "id": 8217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19972:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "src": "19959:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "id": 8219, + "nodeType": "ExpressionStatement", + "src": "19959:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8220, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8211, + "src": "19999:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8221, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8208, + "src": "20013:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19999:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8229, + "nodeType": "IfStatement", + "src": "19995:98:32", + "trueBody": { + "id": 8228, + "nodeType": "Block", + "src": "20020:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 8224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20071:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 8225, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8208, + "src": "20076:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8223, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "20041:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20041:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8227, + "nodeType": "RevertStatement", + "src": "20034:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8206, + "nodeType": "StructuredDocumentation", + "src": "19558:312:32", + "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": 8231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt216", + "nameLocation": "19884:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8208, + "mutability": "mutable", + "name": "value", + "nameLocation": "19900:5:32", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "19893:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8207, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19893:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19892:14:32" + }, + "returnParameters": { + "id": 8212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8211, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19937:10:32", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "19930:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + }, + "typeName": { + "id": 8210, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19930:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "visibility": "internal" + } + ], + "src": "19929:19:32" + }, + "scope": 8948, + "src": "19875:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8256, + "nodeType": "Block", + "src": "20496:150:32", + "statements": [ + { + "expression": { + "id": 8244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8239, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8237, + "src": "20506:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8242, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8234, + "src": "20526:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20519:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int208_$", + "typeString": "type(int208)" + }, + "typeName": { + "id": 8240, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20519:6:32", + "typeDescriptions": {} + } + }, + "id": 8243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20519:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "src": "20506:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "id": 8245, + "nodeType": "ExpressionStatement", + "src": "20506:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8246, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8237, + "src": "20546:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8234, + "src": "20560:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "20546:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8255, + "nodeType": "IfStatement", + "src": "20542:98:32", + "trueBody": { + "id": 8254, + "nodeType": "Block", + "src": "20567:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 8250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20618:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 8251, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8234, + "src": "20623:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8249, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "20588:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20588:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8253, + "nodeType": "RevertStatement", + "src": "20581:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8232, + "nodeType": "StructuredDocumentation", + "src": "20105:312:32", + "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": 8257, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt208", + "nameLocation": "20431:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8234, + "mutability": "mutable", + "name": "value", + "nameLocation": "20447:5:32", + "nodeType": "VariableDeclaration", + "scope": 8257, + "src": "20440:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8233, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20440:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20439:14:32" + }, + "returnParameters": { + "id": 8238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8237, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "20484:10:32", + "nodeType": "VariableDeclaration", + "scope": 8257, + "src": "20477:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + }, + "typeName": { + "id": 8236, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20477:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "visibility": "internal" + } + ], + "src": "20476:19:32" + }, + "scope": 8948, + "src": "20422:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8282, + "nodeType": "Block", + "src": "21043:150:32", + "statements": [ + { + "expression": { + "id": 8270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8265, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8263, + "src": "21053:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8268, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8260, + "src": "21073:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21066:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int200_$", + "typeString": "type(int200)" + }, + "typeName": { + "id": 8266, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21066:6:32", + "typeDescriptions": {} + } + }, + "id": 8269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21066:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "src": "21053:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "id": 8271, + "nodeType": "ExpressionStatement", + "src": "21053:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8272, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8263, + "src": "21093:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8273, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8260, + "src": "21107:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21093:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8281, + "nodeType": "IfStatement", + "src": "21089:98:32", + "trueBody": { + "id": 8280, + "nodeType": "Block", + "src": "21114:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 8276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21165:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 8277, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8260, + "src": "21170:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8275, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "21135:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21135:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8279, + "nodeType": "RevertStatement", + "src": "21128:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8258, + "nodeType": "StructuredDocumentation", + "src": "20652:312:32", + "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": 8283, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt200", + "nameLocation": "20978:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8260, + "mutability": "mutable", + "name": "value", + "nameLocation": "20994:5:32", + "nodeType": "VariableDeclaration", + "scope": 8283, + "src": "20987:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8259, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20987:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20986:14:32" + }, + "returnParameters": { + "id": 8264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8263, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21031:10:32", + "nodeType": "VariableDeclaration", + "scope": 8283, + "src": "21024:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + }, + "typeName": { + "id": 8262, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21024:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "visibility": "internal" + } + ], + "src": "21023:19:32" + }, + "scope": 8948, + "src": "20969:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8308, + "nodeType": "Block", + "src": "21590:150:32", + "statements": [ + { + "expression": { + "id": 8296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8291, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8289, + "src": "21600:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8294, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8286, + "src": "21620:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21613:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int192_$", + "typeString": "type(int192)" + }, + "typeName": { + "id": 8292, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21613:6:32", + "typeDescriptions": {} + } + }, + "id": 8295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21613:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "src": "21600:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "id": 8297, + "nodeType": "ExpressionStatement", + "src": "21600:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8298, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8289, + "src": "21640:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8299, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8286, + "src": "21654:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21640:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8307, + "nodeType": "IfStatement", + "src": "21636:98:32", + "trueBody": { + "id": 8306, + "nodeType": "Block", + "src": "21661:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 8302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21712:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 8303, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8286, + "src": "21717:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8301, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "21682:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21682:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8305, + "nodeType": "RevertStatement", + "src": "21675:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8284, + "nodeType": "StructuredDocumentation", + "src": "21199:312:32", + "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": 8309, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt192", + "nameLocation": "21525:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8287, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8286, + "mutability": "mutable", + "name": "value", + "nameLocation": "21541:5:32", + "nodeType": "VariableDeclaration", + "scope": 8309, + "src": "21534:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8285, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "21534:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "21533:14:32" + }, + "returnParameters": { + "id": 8290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8289, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21578:10:32", + "nodeType": "VariableDeclaration", + "scope": 8309, + "src": "21571:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + }, + "typeName": { + "id": 8288, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21571:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "visibility": "internal" + } + ], + "src": "21570:19:32" + }, + "scope": 8948, + "src": "21516:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8334, + "nodeType": "Block", + "src": "22137:150:32", + "statements": [ + { + "expression": { + "id": 8322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8317, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8315, + "src": "22147:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8320, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8312, + "src": "22167:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22160:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int184_$", + "typeString": "type(int184)" + }, + "typeName": { + "id": 8318, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22160:6:32", + "typeDescriptions": {} + } + }, + "id": 8321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22160:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "src": "22147:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "id": 8323, + "nodeType": "ExpressionStatement", + "src": "22147:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8324, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8315, + "src": "22187:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8325, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8312, + "src": "22201:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22187:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8333, + "nodeType": "IfStatement", + "src": "22183:98:32", + "trueBody": { + "id": 8332, + "nodeType": "Block", + "src": "22208:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 8328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22259:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 8329, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8312, + "src": "22264:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8327, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "22229:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22229:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8331, + "nodeType": "RevertStatement", + "src": "22222:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8310, + "nodeType": "StructuredDocumentation", + "src": "21746:312:32", + "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": 8335, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt184", + "nameLocation": "22072:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8312, + "mutability": "mutable", + "name": "value", + "nameLocation": "22088:5:32", + "nodeType": "VariableDeclaration", + "scope": 8335, + "src": "22081:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8311, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22081:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:14:32" + }, + "returnParameters": { + "id": 8316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8315, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22125:10:32", + "nodeType": "VariableDeclaration", + "scope": 8335, + "src": "22118:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + }, + "typeName": { + "id": 8314, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22118:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "visibility": "internal" + } + ], + "src": "22117:19:32" + }, + "scope": 8948, + "src": "22063:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8360, + "nodeType": "Block", + "src": "22684:150:32", + "statements": [ + { + "expression": { + "id": 8348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8343, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8341, + "src": "22694:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8346, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8338, + "src": "22714:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22707:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int176_$", + "typeString": "type(int176)" + }, + "typeName": { + "id": 8344, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22707:6:32", + "typeDescriptions": {} + } + }, + "id": 8347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22707:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "src": "22694:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "id": 8349, + "nodeType": "ExpressionStatement", + "src": "22694:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8350, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8341, + "src": "22734:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8351, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8338, + "src": "22748:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22734:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8359, + "nodeType": "IfStatement", + "src": "22730:98:32", + "trueBody": { + "id": 8358, + "nodeType": "Block", + "src": "22755:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 8354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22806:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 8355, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8338, + "src": "22811:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8353, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "22776:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22776:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8357, + "nodeType": "RevertStatement", + "src": "22769:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8336, + "nodeType": "StructuredDocumentation", + "src": "22293:312:32", + "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": 8361, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt176", + "nameLocation": "22619:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8338, + "mutability": "mutable", + "name": "value", + "nameLocation": "22635:5:32", + "nodeType": "VariableDeclaration", + "scope": 8361, + "src": "22628:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8337, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22628:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22627:14:32" + }, + "returnParameters": { + "id": 8342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8341, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22672:10:32", + "nodeType": "VariableDeclaration", + "scope": 8361, + "src": "22665:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + }, + "typeName": { + "id": 8340, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22665:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "visibility": "internal" + } + ], + "src": "22664:19:32" + }, + "scope": 8948, + "src": "22610:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8386, + "nodeType": "Block", + "src": "23231:150:32", + "statements": [ + { + "expression": { + "id": 8374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8369, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "23241:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8364, + "src": "23261:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23254:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int168_$", + "typeString": "type(int168)" + }, + "typeName": { + "id": 8370, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23254:6:32", + "typeDescriptions": {} + } + }, + "id": 8373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23254:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "src": "23241:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "id": 8375, + "nodeType": "ExpressionStatement", + "src": "23241:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8376, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "23281:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8377, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8364, + "src": "23295:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23281:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8385, + "nodeType": "IfStatement", + "src": "23277:98:32", + "trueBody": { + "id": 8384, + "nodeType": "Block", + "src": "23302:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 8380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23353:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 8381, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8364, + "src": "23358:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8379, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "23323:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23323:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8383, + "nodeType": "RevertStatement", + "src": "23316:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8362, + "nodeType": "StructuredDocumentation", + "src": "22840:312:32", + "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": 8387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt168", + "nameLocation": "23166:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8364, + "mutability": "mutable", + "name": "value", + "nameLocation": "23182:5:32", + "nodeType": "VariableDeclaration", + "scope": 8387, + "src": "23175:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8363, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23175:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23174:14:32" + }, + "returnParameters": { + "id": 8368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8367, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23219:10:32", + "nodeType": "VariableDeclaration", + "scope": 8387, + "src": "23212:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + }, + "typeName": { + "id": 8366, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23212:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "visibility": "internal" + } + ], + "src": "23211:19:32" + }, + "scope": 8948, + "src": "23157:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8412, + "nodeType": "Block", + "src": "23778:150:32", + "statements": [ + { + "expression": { + "id": 8400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8395, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8393, + "src": "23788:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8390, + "src": "23808:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23801:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int160_$", + "typeString": "type(int160)" + }, + "typeName": { + "id": 8396, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23801:6:32", + "typeDescriptions": {} + } + }, + "id": 8399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23801:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "src": "23788:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "id": 8401, + "nodeType": "ExpressionStatement", + "src": "23788:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8402, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8393, + "src": "23828:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8403, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8390, + "src": "23842:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23828:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8411, + "nodeType": "IfStatement", + "src": "23824:98:32", + "trueBody": { + "id": 8410, + "nodeType": "Block", + "src": "23849:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23900:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 8407, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8390, + "src": "23905:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8405, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "23870:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23870:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8409, + "nodeType": "RevertStatement", + "src": "23863:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8388, + "nodeType": "StructuredDocumentation", + "src": "23387:312:32", + "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": 8413, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt160", + "nameLocation": "23713:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8390, + "mutability": "mutable", + "name": "value", + "nameLocation": "23729:5:32", + "nodeType": "VariableDeclaration", + "scope": 8413, + "src": "23722:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8389, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23722:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23721:14:32" + }, + "returnParameters": { + "id": 8394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8393, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23766:10:32", + "nodeType": "VariableDeclaration", + "scope": 8413, + "src": "23759:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + }, + "typeName": { + "id": 8392, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23759:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "visibility": "internal" + } + ], + "src": "23758:19:32" + }, + "scope": 8948, + "src": "23704:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8438, + "nodeType": "Block", + "src": "24325:150:32", + "statements": [ + { + "expression": { + "id": 8426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8421, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8419, + "src": "24335:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8424, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8416, + "src": "24355:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24348:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int152_$", + "typeString": "type(int152)" + }, + "typeName": { + "id": 8422, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24348:6:32", + "typeDescriptions": {} + } + }, + "id": 8425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24348:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "src": "24335:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "id": 8427, + "nodeType": "ExpressionStatement", + "src": "24335:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8428, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8419, + "src": "24375:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8429, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8416, + "src": "24389:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24375:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8437, + "nodeType": "IfStatement", + "src": "24371:98:32", + "trueBody": { + "id": 8436, + "nodeType": "Block", + "src": "24396:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 8432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24447:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 8433, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8416, + "src": "24452:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8431, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "24417:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24417:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8435, + "nodeType": "RevertStatement", + "src": "24410:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8414, + "nodeType": "StructuredDocumentation", + "src": "23934:312:32", + "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": 8439, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt152", + "nameLocation": "24260:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8416, + "mutability": "mutable", + "name": "value", + "nameLocation": "24276:5:32", + "nodeType": "VariableDeclaration", + "scope": 8439, + "src": "24269:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8415, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24269:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24268:14:32" + }, + "returnParameters": { + "id": 8420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8419, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24313:10:32", + "nodeType": "VariableDeclaration", + "scope": 8439, + "src": "24306:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + }, + "typeName": { + "id": 8418, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24306:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "visibility": "internal" + } + ], + "src": "24305:19:32" + }, + "scope": 8948, + "src": "24251:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8464, + "nodeType": "Block", + "src": "24872:150:32", + "statements": [ + { + "expression": { + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8447, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8445, + "src": "24882:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8450, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8442, + "src": "24902:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24895:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int144_$", + "typeString": "type(int144)" + }, + "typeName": { + "id": 8448, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24895:6:32", + "typeDescriptions": {} + } + }, + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24895:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "src": "24882:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "id": 8453, + "nodeType": "ExpressionStatement", + "src": "24882:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8454, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8445, + "src": "24922:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8455, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8442, + "src": "24936:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24922:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8463, + "nodeType": "IfStatement", + "src": "24918:98:32", + "trueBody": { + "id": 8462, + "nodeType": "Block", + "src": "24943:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 8458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24994:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 8459, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8442, + "src": "24999:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8457, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "24964:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24964:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8461, + "nodeType": "RevertStatement", + "src": "24957:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8440, + "nodeType": "StructuredDocumentation", + "src": "24481:312:32", + "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": 8465, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt144", + "nameLocation": "24807:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8442, + "mutability": "mutable", + "name": "value", + "nameLocation": "24823:5:32", + "nodeType": "VariableDeclaration", + "scope": 8465, + "src": "24816:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8441, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24816:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24815:14:32" + }, + "returnParameters": { + "id": 8446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8445, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24860:10:32", + "nodeType": "VariableDeclaration", + "scope": 8465, + "src": "24853:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + }, + "typeName": { + "id": 8444, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24853:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "visibility": "internal" + } + ], + "src": "24852:19:32" + }, + "scope": 8948, + "src": "24798:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8490, + "nodeType": "Block", + "src": "25419:150:32", + "statements": [ + { + "expression": { + "id": 8478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8473, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8471, + "src": "25429:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8476, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8468, + "src": "25449:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25442:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int136_$", + "typeString": "type(int136)" + }, + "typeName": { + "id": 8474, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25442:6:32", + "typeDescriptions": {} + } + }, + "id": 8477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25442:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "src": "25429:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "id": 8479, + "nodeType": "ExpressionStatement", + "src": "25429:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8480, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8471, + "src": "25469:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8481, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8468, + "src": "25483:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "25469:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8489, + "nodeType": "IfStatement", + "src": "25465:98:32", + "trueBody": { + "id": 8488, + "nodeType": "Block", + "src": "25490:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 8484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25541:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 8485, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8468, + "src": "25546:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8483, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "25511:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25511:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8487, + "nodeType": "RevertStatement", + "src": "25504:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8466, + "nodeType": "StructuredDocumentation", + "src": "25028:312:32", + "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": 8491, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt136", + "nameLocation": "25354:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8468, + "mutability": "mutable", + "name": "value", + "nameLocation": "25370:5:32", + "nodeType": "VariableDeclaration", + "scope": 8491, + "src": "25363:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8467, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25363:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25362:14:32" + }, + "returnParameters": { + "id": 8472, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8471, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25407:10:32", + "nodeType": "VariableDeclaration", + "scope": 8491, + "src": "25400:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + }, + "typeName": { + "id": 8470, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25400:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "visibility": "internal" + } + ], + "src": "25399:19:32" + }, + "scope": 8948, + "src": "25345:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8516, + "nodeType": "Block", + "src": "25966:150:32", + "statements": [ + { + "expression": { + "id": 8504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8499, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8497, + "src": "25976:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8502, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8494, + "src": "25996:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25989:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int128_$", + "typeString": "type(int128)" + }, + "typeName": { + "id": 8500, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25989:6:32", + "typeDescriptions": {} + } + }, + "id": 8503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25989:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "src": "25976:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "id": 8505, + "nodeType": "ExpressionStatement", + "src": "25976:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8506, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8497, + "src": "26016:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8494, + "src": "26030:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26016:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8515, + "nodeType": "IfStatement", + "src": "26012:98:32", + "trueBody": { + "id": 8514, + "nodeType": "Block", + "src": "26037:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 8510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26088:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 8511, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8494, + "src": "26093:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8509, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "26058:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26058:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8513, + "nodeType": "RevertStatement", + "src": "26051:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8492, + "nodeType": "StructuredDocumentation", + "src": "25575:312:32", + "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": 8517, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt128", + "nameLocation": "25901:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8494, + "mutability": "mutable", + "name": "value", + "nameLocation": "25917:5:32", + "nodeType": "VariableDeclaration", + "scope": 8517, + "src": "25910:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8493, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25910:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25909:14:32" + }, + "returnParameters": { + "id": 8498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8497, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25954:10:32", + "nodeType": "VariableDeclaration", + "scope": 8517, + "src": "25947:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + }, + "typeName": { + "id": 8496, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25947:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "visibility": "internal" + } + ], + "src": "25946:19:32" + }, + "scope": 8948, + "src": "25892:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8542, + "nodeType": "Block", + "src": "26513:150:32", + "statements": [ + { + "expression": { + "id": 8530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8525, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8523, + "src": "26523:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8528, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8520, + "src": "26543:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26536:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int120_$", + "typeString": "type(int120)" + }, + "typeName": { + "id": 8526, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26536:6:32", + "typeDescriptions": {} + } + }, + "id": 8529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26536:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "src": "26523:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "id": 8531, + "nodeType": "ExpressionStatement", + "src": "26523:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8532, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8523, + "src": "26563:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8533, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8520, + "src": "26577:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26563:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8541, + "nodeType": "IfStatement", + "src": "26559:98:32", + "trueBody": { + "id": 8540, + "nodeType": "Block", + "src": "26584:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 8536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26635:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 8537, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8520, + "src": "26640:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8535, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "26605:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26605:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8539, + "nodeType": "RevertStatement", + "src": "26598:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8518, + "nodeType": "StructuredDocumentation", + "src": "26122:312:32", + "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": 8543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt120", + "nameLocation": "26448:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8520, + "mutability": "mutable", + "name": "value", + "nameLocation": "26464:5:32", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "26457:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8519, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "26457:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "26456:14:32" + }, + "returnParameters": { + "id": 8524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8523, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "26501:10:32", + "nodeType": "VariableDeclaration", + "scope": 8543, + "src": "26494:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + }, + "typeName": { + "id": 8522, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26494:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "visibility": "internal" + } + ], + "src": "26493:19:32" + }, + "scope": 8948, + "src": "26439:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8568, + "nodeType": "Block", + "src": "27060:150:32", + "statements": [ + { + "expression": { + "id": 8556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8551, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8549, + "src": "27070:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8554, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "27090:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27083:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int112_$", + "typeString": "type(int112)" + }, + "typeName": { + "id": 8552, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27083:6:32", + "typeDescriptions": {} + } + }, + "id": 8555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27083:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "src": "27070:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "id": 8557, + "nodeType": "ExpressionStatement", + "src": "27070:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8558, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8549, + "src": "27110:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8559, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "27124:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27110:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8567, + "nodeType": "IfStatement", + "src": "27106:98:32", + "trueBody": { + "id": 8566, + "nodeType": "Block", + "src": "27131:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 8562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27182:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 8563, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "27187:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8561, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "27152:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27152:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8565, + "nodeType": "RevertStatement", + "src": "27145:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8544, + "nodeType": "StructuredDocumentation", + "src": "26669:312:32", + "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": 8569, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt112", + "nameLocation": "26995:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8546, + "mutability": "mutable", + "name": "value", + "nameLocation": "27011:5:32", + "nodeType": "VariableDeclaration", + "scope": 8569, + "src": "27004:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8545, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27004:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27003:14:32" + }, + "returnParameters": { + "id": 8550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8549, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27048:10:32", + "nodeType": "VariableDeclaration", + "scope": 8569, + "src": "27041:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + }, + "typeName": { + "id": 8548, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27041:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "visibility": "internal" + } + ], + "src": "27040:19:32" + }, + "scope": 8948, + "src": "26986:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8594, + "nodeType": "Block", + "src": "27607:150:32", + "statements": [ + { + "expression": { + "id": 8582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8577, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "27617:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8580, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "27637:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27630:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int104_$", + "typeString": "type(int104)" + }, + "typeName": { + "id": 8578, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27630:6:32", + "typeDescriptions": {} + } + }, + "id": 8581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27630:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "src": "27617:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "id": 8583, + "nodeType": "ExpressionStatement", + "src": "27617:26:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8584, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "27657:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8585, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "27671:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27657:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8593, + "nodeType": "IfStatement", + "src": "27653:98:32", + "trueBody": { + "id": 8592, + "nodeType": "Block", + "src": "27678:73:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 8588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27729:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 8589, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8572, + "src": "27734:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8587, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "27699:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27699:41:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8591, + "nodeType": "RevertStatement", + "src": "27692:48:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8570, + "nodeType": "StructuredDocumentation", + "src": "27216:312:32", + "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": 8595, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt104", + "nameLocation": "27542:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8572, + "mutability": "mutable", + "name": "value", + "nameLocation": "27558:5:32", + "nodeType": "VariableDeclaration", + "scope": 8595, + "src": "27551:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8571, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27551:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27550:14:32" + }, + "returnParameters": { + "id": 8576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8575, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27595:10:32", + "nodeType": "VariableDeclaration", + "scope": 8595, + "src": "27588:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + }, + "typeName": { + "id": 8574, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27588:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "visibility": "internal" + } + ], + "src": "27587:19:32" + }, + "scope": 8948, + "src": "27533:224:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8620, + "nodeType": "Block", + "src": "28147:148:32", + "statements": [ + { + "expression": { + "id": 8608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8603, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8601, + "src": "28157:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8606, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8598, + "src": "28176:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28170:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int96_$", + "typeString": "type(int96)" + }, + "typeName": { + "id": 8604, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28170:5:32", + "typeDescriptions": {} + } + }, + "id": 8607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28170:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "src": "28157:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "id": 8609, + "nodeType": "ExpressionStatement", + "src": "28157:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8610, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8601, + "src": "28196:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8611, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8598, + "src": "28210:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28196:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8619, + "nodeType": "IfStatement", + "src": "28192:97:32", + "trueBody": { + "id": 8618, + "nodeType": "Block", + "src": "28217:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 8614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28268:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 8615, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8598, + "src": "28272:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8613, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "28238:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28238:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8617, + "nodeType": "RevertStatement", + "src": "28231:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8596, + "nodeType": "StructuredDocumentation", + "src": "27763:307:32", + "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": 8621, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt96", + "nameLocation": "28084:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8598, + "mutability": "mutable", + "name": "value", + "nameLocation": "28099:5:32", + "nodeType": "VariableDeclaration", + "scope": 8621, + "src": "28092:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8597, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28092:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28091:14:32" + }, + "returnParameters": { + "id": 8602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8601, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28135:10:32", + "nodeType": "VariableDeclaration", + "scope": 8621, + "src": "28129:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + }, + "typeName": { + "id": 8600, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28129:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "visibility": "internal" + } + ], + "src": "28128:18:32" + }, + "scope": 8948, + "src": "28075:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8646, + "nodeType": "Block", + "src": "28685:148:32", + "statements": [ + { + "expression": { + "id": 8634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8629, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8627, + "src": "28695:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8624, + "src": "28714:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28708:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int88_$", + "typeString": "type(int88)" + }, + "typeName": { + "id": 8630, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28708:5:32", + "typeDescriptions": {} + } + }, + "id": 8633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28708:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "src": "28695:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "id": 8635, + "nodeType": "ExpressionStatement", + "src": "28695:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8636, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8627, + "src": "28734:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8637, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8624, + "src": "28748:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28734:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8645, + "nodeType": "IfStatement", + "src": "28730:97:32", + "trueBody": { + "id": 8644, + "nodeType": "Block", + "src": "28755:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 8640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28806:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 8641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8624, + "src": "28810:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8639, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "28776:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28776:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8643, + "nodeType": "RevertStatement", + "src": "28769:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8622, + "nodeType": "StructuredDocumentation", + "src": "28301:307:32", + "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": 8647, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt88", + "nameLocation": "28622:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8624, + "mutability": "mutable", + "name": "value", + "nameLocation": "28637:5:32", + "nodeType": "VariableDeclaration", + "scope": 8647, + "src": "28630:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8623, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28630:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28629:14:32" + }, + "returnParameters": { + "id": 8628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8627, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28673:10:32", + "nodeType": "VariableDeclaration", + "scope": 8647, + "src": "28667:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + }, + "typeName": { + "id": 8626, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28667:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "visibility": "internal" + } + ], + "src": "28666:18:32" + }, + "scope": 8948, + "src": "28613:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8672, + "nodeType": "Block", + "src": "29223:148:32", + "statements": [ + { + "expression": { + "id": 8660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8655, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8653, + "src": "29233:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8658, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8650, + "src": "29252:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29246:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int80_$", + "typeString": "type(int80)" + }, + "typeName": { + "id": 8656, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29246:5:32", + "typeDescriptions": {} + } + }, + "id": 8659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29246:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "src": "29233:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "id": 8661, + "nodeType": "ExpressionStatement", + "src": "29233:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8662, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8653, + "src": "29272:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8663, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8650, + "src": "29286:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29272:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8671, + "nodeType": "IfStatement", + "src": "29268:97:32", + "trueBody": { + "id": 8670, + "nodeType": "Block", + "src": "29293:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 8666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29344:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 8667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8650, + "src": "29348:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8665, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "29314:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29314:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8669, + "nodeType": "RevertStatement", + "src": "29307:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8648, + "nodeType": "StructuredDocumentation", + "src": "28839:307:32", + "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": 8673, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt80", + "nameLocation": "29160:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8650, + "mutability": "mutable", + "name": "value", + "nameLocation": "29175:5:32", + "nodeType": "VariableDeclaration", + "scope": 8673, + "src": "29168:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8649, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29168:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29167:14:32" + }, + "returnParameters": { + "id": 8654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8653, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29211:10:32", + "nodeType": "VariableDeclaration", + "scope": 8673, + "src": "29205:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + }, + "typeName": { + "id": 8652, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29205:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "visibility": "internal" + } + ], + "src": "29204:18:32" + }, + "scope": 8948, + "src": "29151:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8698, + "nodeType": "Block", + "src": "29761:148:32", + "statements": [ + { + "expression": { + "id": 8686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8681, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8679, + "src": "29771:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8684, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8676, + "src": "29790:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29784:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int72_$", + "typeString": "type(int72)" + }, + "typeName": { + "id": 8682, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29784:5:32", + "typeDescriptions": {} + } + }, + "id": 8685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29784:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "src": "29771:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "id": 8687, + "nodeType": "ExpressionStatement", + "src": "29771:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8688, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8679, + "src": "29810:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8689, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8676, + "src": "29824:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29810:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8697, + "nodeType": "IfStatement", + "src": "29806:97:32", + "trueBody": { + "id": 8696, + "nodeType": "Block", + "src": "29831:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 8692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29882:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 8693, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8676, + "src": "29886:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8691, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "29852:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29852:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8695, + "nodeType": "RevertStatement", + "src": "29845:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8674, + "nodeType": "StructuredDocumentation", + "src": "29377:307:32", + "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": 8699, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt72", + "nameLocation": "29698:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8676, + "mutability": "mutable", + "name": "value", + "nameLocation": "29713:5:32", + "nodeType": "VariableDeclaration", + "scope": 8699, + "src": "29706:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8675, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29706:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29705:14:32" + }, + "returnParameters": { + "id": 8680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8679, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29749:10:32", + "nodeType": "VariableDeclaration", + "scope": 8699, + "src": "29743:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + }, + "typeName": { + "id": 8678, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29743:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "visibility": "internal" + } + ], + "src": "29742:18:32" + }, + "scope": 8948, + "src": "29689:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8724, + "nodeType": "Block", + "src": "30299:148:32", + "statements": [ + { + "expression": { + "id": 8712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8707, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8705, + "src": "30309:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8710, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8702, + "src": "30328:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30322:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int64_$", + "typeString": "type(int64)" + }, + "typeName": { + "id": 8708, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30322:5:32", + "typeDescriptions": {} + } + }, + "id": 8711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30322:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "src": "30309:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "id": 8713, + "nodeType": "ExpressionStatement", + "src": "30309:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8714, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8705, + "src": "30348:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8715, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8702, + "src": "30362:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30348:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8723, + "nodeType": "IfStatement", + "src": "30344:97:32", + "trueBody": { + "id": 8722, + "nodeType": "Block", + "src": "30369:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 8718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30420:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 8719, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8702, + "src": "30424:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8717, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "30390:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30390:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8721, + "nodeType": "RevertStatement", + "src": "30383:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8700, + "nodeType": "StructuredDocumentation", + "src": "29915:307:32", + "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": 8725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt64", + "nameLocation": "30236:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8702, + "mutability": "mutable", + "name": "value", + "nameLocation": "30251:5:32", + "nodeType": "VariableDeclaration", + "scope": 8725, + "src": "30244:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8701, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30244:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30243:14:32" + }, + "returnParameters": { + "id": 8706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8705, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30287:10:32", + "nodeType": "VariableDeclaration", + "scope": 8725, + "src": "30281:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + }, + "typeName": { + "id": 8704, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30281:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "visibility": "internal" + } + ], + "src": "30280:18:32" + }, + "scope": 8948, + "src": "30227:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8750, + "nodeType": "Block", + "src": "30837:148:32", + "statements": [ + { + "expression": { + "id": 8738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8733, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8731, + "src": "30847:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8736, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8728, + "src": "30866:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30860:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int56_$", + "typeString": "type(int56)" + }, + "typeName": { + "id": 8734, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30860:5:32", + "typeDescriptions": {} + } + }, + "id": 8737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30860:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "src": "30847:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "id": 8739, + "nodeType": "ExpressionStatement", + "src": "30847:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8740, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8731, + "src": "30886:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8741, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8728, + "src": "30900:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30886:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8749, + "nodeType": "IfStatement", + "src": "30882:97:32", + "trueBody": { + "id": 8748, + "nodeType": "Block", + "src": "30907:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 8744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30958:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 8745, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8728, + "src": "30962:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8743, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "30928:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30928:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8747, + "nodeType": "RevertStatement", + "src": "30921:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8726, + "nodeType": "StructuredDocumentation", + "src": "30453:307:32", + "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": 8751, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt56", + "nameLocation": "30774:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8728, + "mutability": "mutable", + "name": "value", + "nameLocation": "30789:5:32", + "nodeType": "VariableDeclaration", + "scope": 8751, + "src": "30782:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8727, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30782:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30781:14:32" + }, + "returnParameters": { + "id": 8732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8731, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30825:10:32", + "nodeType": "VariableDeclaration", + "scope": 8751, + "src": "30819:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + }, + "typeName": { + "id": 8730, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30819:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "visibility": "internal" + } + ], + "src": "30818:18:32" + }, + "scope": 8948, + "src": "30765:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8776, + "nodeType": "Block", + "src": "31375:148:32", + "statements": [ + { + "expression": { + "id": 8764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8759, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8757, + "src": "31385:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8762, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8754, + "src": "31404:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31398:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int48_$", + "typeString": "type(int48)" + }, + "typeName": { + "id": 8760, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31398:5:32", + "typeDescriptions": {} + } + }, + "id": 8763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31398:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "src": "31385:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "id": 8765, + "nodeType": "ExpressionStatement", + "src": "31385:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8766, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8757, + "src": "31424:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8767, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8754, + "src": "31438:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31424:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8775, + "nodeType": "IfStatement", + "src": "31420:97:32", + "trueBody": { + "id": 8774, + "nodeType": "Block", + "src": "31445:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 8770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31496:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 8771, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8754, + "src": "31500:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8769, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "31466:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31466:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8773, + "nodeType": "RevertStatement", + "src": "31459:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8752, + "nodeType": "StructuredDocumentation", + "src": "30991:307:32", + "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": 8777, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt48", + "nameLocation": "31312:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8754, + "mutability": "mutable", + "name": "value", + "nameLocation": "31327:5:32", + "nodeType": "VariableDeclaration", + "scope": 8777, + "src": "31320:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8753, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31320:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31319:14:32" + }, + "returnParameters": { + "id": 8758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8757, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31363:10:32", + "nodeType": "VariableDeclaration", + "scope": 8777, + "src": "31357:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + }, + "typeName": { + "id": 8756, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31357:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "visibility": "internal" + } + ], + "src": "31356:18:32" + }, + "scope": 8948, + "src": "31303:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8802, + "nodeType": "Block", + "src": "31913:148:32", + "statements": [ + { + "expression": { + "id": 8790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8785, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8783, + "src": "31923:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8788, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8780, + "src": "31942:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31936:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int40_$", + "typeString": "type(int40)" + }, + "typeName": { + "id": 8786, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31936:5:32", + "typeDescriptions": {} + } + }, + "id": 8789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31936:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "src": "31923:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "id": 8791, + "nodeType": "ExpressionStatement", + "src": "31923:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8792, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8783, + "src": "31962:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8793, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8780, + "src": "31976:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31962:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8801, + "nodeType": "IfStatement", + "src": "31958:97:32", + "trueBody": { + "id": 8800, + "nodeType": "Block", + "src": "31983:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 8796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32034:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 8797, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8780, + "src": "32038:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8795, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "32004:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32004:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8799, + "nodeType": "RevertStatement", + "src": "31997:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8778, + "nodeType": "StructuredDocumentation", + "src": "31529:307:32", + "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": 8803, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt40", + "nameLocation": "31850:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8780, + "mutability": "mutable", + "name": "value", + "nameLocation": "31865:5:32", + "nodeType": "VariableDeclaration", + "scope": 8803, + "src": "31858:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8779, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31858:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31857:14:32" + }, + "returnParameters": { + "id": 8784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8783, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31901:10:32", + "nodeType": "VariableDeclaration", + "scope": 8803, + "src": "31895:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + }, + "typeName": { + "id": 8782, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31895:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "visibility": "internal" + } + ], + "src": "31894:18:32" + }, + "scope": 8948, + "src": "31841:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8828, + "nodeType": "Block", + "src": "32451:148:32", + "statements": [ + { + "expression": { + "id": 8816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8811, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8809, + "src": "32461:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8814, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8806, + "src": "32480:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32474:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int32_$", + "typeString": "type(int32)" + }, + "typeName": { + "id": 8812, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32474:5:32", + "typeDescriptions": {} + } + }, + "id": 8815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32474:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "src": "32461:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "id": 8817, + "nodeType": "ExpressionStatement", + "src": "32461:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8818, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8809, + "src": "32500:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8819, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8806, + "src": "32514:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "32500:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8827, + "nodeType": "IfStatement", + "src": "32496:97:32", + "trueBody": { + "id": 8826, + "nodeType": "Block", + "src": "32521:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 8822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32572:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 8823, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8806, + "src": "32576:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8821, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "32542:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32542:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8825, + "nodeType": "RevertStatement", + "src": "32535:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8804, + "nodeType": "StructuredDocumentation", + "src": "32067:307:32", + "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": 8829, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt32", + "nameLocation": "32388:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8806, + "mutability": "mutable", + "name": "value", + "nameLocation": "32403:5:32", + "nodeType": "VariableDeclaration", + "scope": 8829, + "src": "32396:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8805, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32396:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32395:14:32" + }, + "returnParameters": { + "id": 8810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8809, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32439:10:32", + "nodeType": "VariableDeclaration", + "scope": 8829, + "src": "32433:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + }, + "typeName": { + "id": 8808, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32433:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "visibility": "internal" + } + ], + "src": "32432:18:32" + }, + "scope": 8948, + "src": "32379:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8854, + "nodeType": "Block", + "src": "32989:148:32", + "statements": [ + { + "expression": { + "id": 8842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8837, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8835, + "src": "32999:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8840, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8832, + "src": "33018:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33012:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int24_$", + "typeString": "type(int24)" + }, + "typeName": { + "id": 8838, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "33012:5:32", + "typeDescriptions": {} + } + }, + "id": 8841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33012:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "src": "32999:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "id": 8843, + "nodeType": "ExpressionStatement", + "src": "32999:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8844, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8835, + "src": "33038:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8845, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8832, + "src": "33052:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33038:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8853, + "nodeType": "IfStatement", + "src": "33034:97:32", + "trueBody": { + "id": 8852, + "nodeType": "Block", + "src": "33059:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 8848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33110:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 8849, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8832, + "src": "33114:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8847, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "33080:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33080:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8851, + "nodeType": "RevertStatement", + "src": "33073:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8830, + "nodeType": "StructuredDocumentation", + "src": "32605:307:32", + "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": 8855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt24", + "nameLocation": "32926:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8832, + "mutability": "mutable", + "name": "value", + "nameLocation": "32941:5:32", + "nodeType": "VariableDeclaration", + "scope": 8855, + "src": "32934:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8831, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32934:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32933:14:32" + }, + "returnParameters": { + "id": 8836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8835, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32977:10:32", + "nodeType": "VariableDeclaration", + "scope": 8855, + "src": "32971:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + }, + "typeName": { + "id": 8834, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "32971:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "visibility": "internal" + } + ], + "src": "32970:18:32" + }, + "scope": 8948, + "src": "32917:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8880, + "nodeType": "Block", + "src": "33527:148:32", + "statements": [ + { + "expression": { + "id": 8868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8863, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8861, + "src": "33537:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8866, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8858, + "src": "33556:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33550:5:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int16_$", + "typeString": "type(int16)" + }, + "typeName": { + "id": 8864, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33550:5:32", + "typeDescriptions": {} + } + }, + "id": 8867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33550:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "src": "33537:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "id": 8869, + "nodeType": "ExpressionStatement", + "src": "33537:25:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8870, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8861, + "src": "33576:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8871, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8858, + "src": "33590:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33576:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8879, + "nodeType": "IfStatement", + "src": "33572:97:32", + "trueBody": { + "id": 8878, + "nodeType": "Block", + "src": "33597:72:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 8874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33648:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 8875, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8858, + "src": "33652:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8873, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "33618:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33618:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8877, + "nodeType": "RevertStatement", + "src": "33611:47:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8856, + "nodeType": "StructuredDocumentation", + "src": "33143:307:32", + "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": 8881, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt16", + "nameLocation": "33464:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8858, + "mutability": "mutable", + "name": "value", + "nameLocation": "33479:5:32", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "33472:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8857, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "33472:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "33471:14:32" + }, + "returnParameters": { + "id": 8862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8861, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "33515:10:32", + "nodeType": "VariableDeclaration", + "scope": 8881, + "src": "33509:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + }, + "typeName": { + "id": 8860, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33509:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "visibility": "internal" + } + ], + "src": "33508:18:32" + }, + "scope": 8948, + "src": "33455:220:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8906, + "nodeType": "Block", + "src": "34058:146:32", + "statements": [ + { + "expression": { + "id": 8894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8889, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8887, + "src": "34068:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 8892, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8884, + "src": "34086:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34081:4:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int8_$", + "typeString": "type(int8)" + }, + "typeName": { + "id": 8890, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34081:4:32", + "typeDescriptions": {} + } + }, + "id": 8893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34081:11:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "src": "34068:24:32", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "id": 8895, + "nodeType": "ExpressionStatement", + "src": "34068:24:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8896, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8887, + "src": "34106:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 8897, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8884, + "src": "34120:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "34106:19:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8905, + "nodeType": "IfStatement", + "src": "34102:96:32", + "trueBody": { + "id": 8904, + "nodeType": "Block", + "src": "34127:71:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 8900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34178:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 8901, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8884, + "src": "34181:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8899, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7205, + "src": "34148:29:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$__$", + "typeString": "function (uint8,int256) pure" + } + }, + "id": 8902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34148:39:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8903, + "nodeType": "RevertStatement", + "src": "34141:46:32" + } + ] + } + } + ] + }, + "documentation": { + "id": 8882, + "nodeType": "StructuredDocumentation", + "src": "33681:302:32", + "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": 8907, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt8", + "nameLocation": "33997:6:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8884, + "mutability": "mutable", + "name": "value", + "nameLocation": "34011:5:32", + "nodeType": "VariableDeclaration", + "scope": 8907, + "src": "34004:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8883, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34004:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34003:14:32" + }, + "returnParameters": { + "id": 8888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8887, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "34046:10:32", + "nodeType": "VariableDeclaration", + "scope": 8907, + "src": "34041:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + }, + "typeName": { + "id": 8886, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34041:4:32", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "visibility": "internal" + } + ], + "src": "34040:17:32" + }, + "scope": 8948, + "src": "33988:216:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8936, + "nodeType": "Block", + "src": "34444:250:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8915, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8910, + "src": "34557:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 8920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34578:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 8919, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34578:6:32", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 8918, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "34573:4:32", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34573:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 8922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "34586:3:32", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "34573:16:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34565:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34565:7:32", + "typeDescriptions": {} + } + }, + "id": 8923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34565:25:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34557:33:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8930, + "nodeType": "IfStatement", + "src": "34553:105:32", + "trueBody": { + "id": 8929, + "nodeType": "Block", + "src": "34592:66:32", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 8926, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8910, + "src": "34641:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8925, + "name": "SafeCastOverflowedUintToInt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7210, + "src": "34613:27:32", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 8927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34613:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8928, + "nodeType": "RevertStatement", + "src": "34606:41:32" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 8933, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8910, + "src": "34681:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34674:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 8931, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34674:6:32", + "typeDescriptions": {} + } + }, + "id": 8934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34674:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8914, + "id": 8935, + "nodeType": "Return", + "src": "34667:20:32" + } + ] + }, + "documentation": { + "id": 8908, + "nodeType": "StructuredDocumentation", + "src": "34210:165:32", + "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256." + }, + "id": 8937, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt256", + "nameLocation": "34389:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8910, + "mutability": "mutable", + "name": "value", + "nameLocation": "34406:5:32", + "nodeType": "VariableDeclaration", + "scope": 8937, + "src": "34398:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34398:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34397:15:32" + }, + "returnParameters": { + "id": 8914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8913, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8937, + "src": "34436:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8912, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34436:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34435:8:32" + }, + "scope": 8948, + "src": "34380:314:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8946, + "nodeType": "Block", + "src": "34853:87:32", + "statements": [ + { + "AST": { + "nativeSrc": "34888:46:32", + "nodeType": "YulBlock", + "src": "34888:46:32", + "statements": [ + { + "nativeSrc": "34902:22:32", + "nodeType": "YulAssignment", + "src": "34902:22:32", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "b", + "nativeSrc": "34921:1:32", + "nodeType": "YulIdentifier", + "src": "34921:1:32" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "34914:6:32", + "nodeType": "YulIdentifier", + "src": "34914:6:32" + }, + "nativeSrc": "34914:9:32", + "nodeType": "YulFunctionCall", + "src": "34914:9:32" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "34907:6:32", + "nodeType": "YulIdentifier", + "src": "34907:6:32" + }, + "nativeSrc": "34907:17:32", + "nodeType": "YulFunctionCall", + "src": "34907:17:32" + }, + "variableNames": [ + { + "name": "u", + "nativeSrc": "34902:1:32", + "nodeType": "YulIdentifier", + "src": "34902:1:32" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8940, + "isOffset": false, + "isSlot": false, + "src": "34921:1:32", + "valueSize": 1 + }, + { + "declaration": 8943, + "isOffset": false, + "isSlot": false, + "src": "34902:1:32", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8945, + "nodeType": "InlineAssembly", + "src": "34863:71:32" + } + ] + }, + "documentation": { + "id": 8938, + "nodeType": "StructuredDocumentation", + "src": "34700:90:32", + "text": " @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump." + }, + "id": 8947, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint", + "nameLocation": "34804:6:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8940, + "mutability": "mutable", + "name": "b", + "nameLocation": "34816:1:32", + "nodeType": "VariableDeclaration", + "scope": 8947, + "src": "34811:6:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8939, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34811:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34810:8:32" + }, + "returnParameters": { + "id": 8944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8943, + "mutability": "mutable", + "name": "u", + "nameLocation": "34850:1:32", + "nodeType": "VariableDeclaration", + "scope": 8947, + "src": "34842:9:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34842:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34841:11:32" + }, + "scope": 8948, + "src": "34795:145:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8949, + "src": "769:34173:32", + "usedErrors": [ + 7193, + 7198, + 7205, + 7210 + ], + "usedEvents": [] + } + ], + "src": "192:34751:32" + }, + "id": 32 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SafeCast": [ + 8948 + ], + "SignedMath": [ + 9092 + ] + }, + "id": 9093, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8950, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:33" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./SafeCast.sol", + "id": 8952, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 9093, + "sourceUnit": 8949, + "src": "135:40:33", + "symbolAliases": [ + { + "foreign": { + "id": 8951, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "143:8:33", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8953, + "nodeType": "StructuredDocumentation", + "src": "177:80:33", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 9092, + "linearizedBaseContracts": [ + 9092 + ], + "name": "SignedMath", + "nameLocation": "266:10:33", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 8982, + "nodeType": "Block", + "src": "746:215:33", + "statements": [ + { + "id": 8981, + "nodeType": "UncheckedBlock", + "src": "756:199:33", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8965, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8960, + "src": "894:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8966, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8958, + "src": "900:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 8967, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8960, + "src": "904:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "900:5:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8969, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "899:7:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 8974, + "name": "condition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8956, + "src": "932:9:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8972, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8948, + "src": "916:8:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$8948_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "925:6:33", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 8947, + "src": "916:15:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:26:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "909:6:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 8970, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "909:6:33", + "typeDescriptions": {} + } + }, + "id": 8976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "909:34:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "899:44:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 8978, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "898:46:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "894:50:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8964, + "id": 8980, + "nodeType": "Return", + "src": "887:57:33" + } + ] + } + ] + }, + "documentation": { + "id": 8954, + "nodeType": "StructuredDocumentation", + "src": "283:374:33", + "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": 8983, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ternary", + "nameLocation": "671:7:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8956, + "mutability": "mutable", + "name": "condition", + "nameLocation": "684:9:33", + "nodeType": "VariableDeclaration", + "scope": 8983, + "src": "679:14:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8955, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "679:4:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8958, + "mutability": "mutable", + "name": "a", + "nameLocation": "702:1:33", + "nodeType": "VariableDeclaration", + "scope": 8983, + "src": "695:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8957, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "695:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8960, + "mutability": "mutable", + "name": "b", + "nameLocation": "712:1:33", + "nodeType": "VariableDeclaration", + "scope": 8983, + "src": "705:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8959, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "705:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "678:36:33" + }, + "returnParameters": { + "id": 8964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8963, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8983, + "src": "738:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8962, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "738:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "737:8:33" + }, + "scope": 9092, + "src": "662:299:33", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9001, + "nodeType": "Block", + "src": "1102:44:33", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 8996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8986, + "src": "1127:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 8995, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8988, + "src": "1131:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1127:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8997, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8986, + "src": "1134:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 8998, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8988, + "src": "1137:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 8993, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8983, + "src": "1119:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (bool,int256,int256) pure returns (int256)" + } + }, + "id": 8999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1119:20:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 8992, + "id": 9000, + "nodeType": "Return", + "src": "1112:27:33" + } + ] + }, + "documentation": { + "id": 8984, + "nodeType": "StructuredDocumentation", + "src": "967:66:33", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 9002, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "1047:3:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8986, + "mutability": "mutable", + "name": "a", + "nameLocation": "1058:1:33", + "nodeType": "VariableDeclaration", + "scope": 9002, + "src": "1051:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8985, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1051:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8988, + "mutability": "mutable", + "name": "b", + "nameLocation": "1068:1:33", + "nodeType": "VariableDeclaration", + "scope": 9002, + "src": "1061:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8987, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:20:33" + }, + "returnParameters": { + "id": 8992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8991, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9002, + "src": "1094:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 8990, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1094:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:8:33" + }, + "scope": 9092, + "src": "1038:108:33", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9020, + "nodeType": "Block", + "src": "1288:44:33", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9013, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9005, + "src": "1313:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9014, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9007, + "src": "1317:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1313:5:33", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 9016, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9005, + "src": "1320:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 9017, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9007, + "src": "1323:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9012, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8983, + "src": "1305:7:33", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (bool,int256,int256) pure returns (int256)" + } + }, + "id": 9018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1305:20:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 9011, + "id": 9019, + "nodeType": "Return", + "src": "1298:27:33" + } + ] + }, + "documentation": { + "id": 9003, + "nodeType": "StructuredDocumentation", + "src": "1152:67:33", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 9021, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "1233:3:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9005, + "mutability": "mutable", + "name": "a", + "nameLocation": "1244:1:33", + "nodeType": "VariableDeclaration", + "scope": 9021, + "src": "1237:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9004, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1237:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9007, + "mutability": "mutable", + "name": "b", + "nameLocation": "1254:1:33", + "nodeType": "VariableDeclaration", + "scope": 9021, + "src": "1247:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9006, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1247:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1236:20:33" + }, + "returnParameters": { + "id": 9011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9010, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9021, + "src": "1280:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9009, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1280:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1279:8:33" + }, + "scope": 9092, + "src": "1224:108:33", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9064, + "nodeType": "Block", + "src": "1537:162:33", + "statements": [ + { + "assignments": [ + 9032 + ], + "declarations": [ + { + "constant": false, + "id": 9032, + "mutability": "mutable", + "name": "x", + "nameLocation": "1606:1:33", + "nodeType": "VariableDeclaration", + "scope": 9064, + "src": "1599:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9031, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1599:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 9045, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9033, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9024, + "src": "1611:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 9034, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9026, + "src": "1615:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1611:5:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9036, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1610:7:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9037, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9024, + "src": "1622:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 9038, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9026, + "src": "1626:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1622:5:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9040, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1621:7:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1632:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1621:12:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9043, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1620:14:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1610:24:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1599:35:33" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9046, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9032, + "src": "1651:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9051, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9032, + "src": "1671:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1663:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1663:7:33", + "typeDescriptions": {} + } + }, + "id": 9052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1663:10:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 9053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:3:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "1663:17:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1656:6:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 9047, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1656:6:33", + "typeDescriptions": {} + } + }, + "id": 9055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1656:25:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9056, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9024, + "src": "1685:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 9057, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9026, + "src": "1689:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1685:5:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9059, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1684:7:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1656:35:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9061, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1655:37:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1651:41:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 9030, + "id": 9063, + "nodeType": "Return", + "src": "1644:48:33" + } + ] + }, + "documentation": { + "id": 9022, + "nodeType": "StructuredDocumentation", + "src": "1338:126:33", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 9065, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "1478:7:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9024, + "mutability": "mutable", + "name": "a", + "nameLocation": "1493:1:33", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "1486:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9023, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1486:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9026, + "mutability": "mutable", + "name": "b", + "nameLocation": "1503:1:33", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "1496:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9025, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1496:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1485:20:33" + }, + "returnParameters": { + "id": 9030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9029, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9065, + "src": "1529:6:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9028, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1529:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1528:8:33" + }, + "scope": 9092, + "src": "1469:230:33", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9090, + "nodeType": "Block", + "src": "1843:767:33", + "statements": [ + { + "id": 9089, + "nodeType": "UncheckedBlock", + "src": "1853:751:33", + "statements": [ + { + "assignments": [ + 9074 + ], + "declarations": [ + { + "constant": false, + "id": 9074, + "mutability": "mutable", + "name": "mask", + "nameLocation": "2424:4:33", + "nodeType": "VariableDeclaration", + "scope": 9089, + "src": "2417:11:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9073, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2417:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 9078, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9075, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9068, + "src": "2431:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 9076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2436:3:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "2431:8:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2417:22:33" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9081, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9068, + "src": "2576:1:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 9082, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9074, + "src": "2580:4:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2576:8:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9084, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2575:10:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 9085, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9074, + "src": "2588:4:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2575:17:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2567:7:33", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2567:7:33", + "typeDescriptions": {} + } + }, + "id": 9087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2567:26:33", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9072, + "id": 9088, + "nodeType": "Return", + "src": "2560:33:33" + } + ] + } + ] + }, + "documentation": { + "id": 9066, + "nodeType": "StructuredDocumentation", + "src": "1705:78:33", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 9091, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1797:3:33", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9068, + "mutability": "mutable", + "name": "n", + "nameLocation": "1808:1:33", + "nodeType": "VariableDeclaration", + "scope": 9091, + "src": "1801:8:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9067, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1801:6:33", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1800:10:33" + }, + "returnParameters": { + "id": 9072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9071, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9091, + "src": "1834:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1834:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1833:9:33" + }, + "scope": 9092, + "src": "1788:822:33", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 9093, + "src": "258:2354:33", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:2504:33" + }, + "id": 33 + }, + "@openzeppelin/contracts/utils/structs/BitMaps.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/structs/BitMaps.sol", + "exportedSymbols": { + "BitMaps": [ + 9230 + ] + }, + "id": 9231, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9094, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:34" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "BitMaps", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 9095, + "nodeType": "StructuredDocumentation", + "src": "134:723:34", + "text": " @dev Library for managing uint256 to bool mapping in a compact and efficient way, provided the keys are sequential.\n Largely inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor].\n BitMaps pack 256 booleans across each bit of a single 256-bit slot of `uint256` type.\n Hence booleans corresponding to 256 _sequential_ indices would only consume a single slot,\n unlike the regular `bool` which would consume an entire slot for a single value.\n This results in gas savings in two ways:\n - Setting a zero value to non-zero only once every 256 times\n - Accessing the same warm slot for every 256 _sequential_ indices" + }, + "fullyImplemented": true, + "id": 9230, + "linearizedBaseContracts": [ + 9230 + ], + "name": "BitMaps", + "nameLocation": "866:7:34", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "BitMaps.BitMap", + "id": 9100, + "members": [ + { + "constant": false, + "id": 9099, + "mutability": "mutable", + "name": "_data", + "nameLocation": "939:5:34", + "nodeType": "VariableDeclaration", + "scope": 9100, + "src": "904:40:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 9098, + "keyName": "bucket", + "keyNameLocation": "920:6:34", + "keyType": { + "id": 9096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "912:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "904:34:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 9097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "930:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "BitMap", + "nameLocation": "887:6:34", + "nodeType": "StructDefinition", + "scope": 9230, + "src": "880:71:34", + "visibility": "public" + }, + { + "body": { + "id": 9135, + "nodeType": "Block", + "src": "1108:137:34", + "statements": [ + { + "assignments": [ + 9112 + ], + "declarations": [ + { + "constant": false, + "id": 9112, + "mutability": "mutable", + "name": "bucket", + "nameLocation": "1126:6:34", + "nodeType": "VariableDeclaration", + "scope": 9135, + "src": "1118:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1118:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9116, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9113, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9106, + "src": "1135:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 9114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1144:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1135:10:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1118:27:34" + }, + { + "assignments": [ + 9118 + ], + "declarations": [ + { + "constant": false, + "id": 9118, + "mutability": "mutable", + "name": "mask", + "nameLocation": "1163:4:34", + "nodeType": "VariableDeclaration", + "scope": 9135, + "src": "1155:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1155:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9125, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1170:1:34", + "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": 9122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9120, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9106, + "src": "1176:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "30786666", + "id": 9121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1184:4:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "1176:12:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9123, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1175:14:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1170:19:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1155:34:34" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 9126, + "name": "bitmap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9104, + "src": "1206:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + } + }, + "id": 9127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1213:5:34", + "memberName": "_data", + "nodeType": "MemberAccess", + "referencedDeclaration": 9099, + "src": "1206:12:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 9129, + "indexExpression": { + "id": 9128, + "name": "bucket", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9112, + "src": "1219:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1206:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 9130, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9118, + "src": "1229:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1206:27:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 9132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1237:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1206:32:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9110, + "id": 9134, + "nodeType": "Return", + "src": "1199:39:34" + } + ] + }, + "documentation": { + "id": 9101, + "nodeType": "StructuredDocumentation", + "src": "957:66:34", + "text": " @dev Returns whether the bit at `index` is set." + }, + "id": 9136, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nameLocation": "1037:3:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9104, + "mutability": "mutable", + "name": "bitmap", + "nameLocation": "1056:6:34", + "nodeType": "VariableDeclaration", + "scope": 9136, + "src": "1041:21:34", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + }, + "typeName": { + "id": 9103, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9102, + "name": "BitMap", + "nameLocations": [ + "1041:6:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9100, + "src": "1041:6:34" + }, + "referencedDeclaration": 9100, + "src": "1041:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9106, + "mutability": "mutable", + "name": "index", + "nameLocation": "1072:5:34", + "nodeType": "VariableDeclaration", + "scope": 9136, + "src": "1064:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1064:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1040:38:34" + }, + "returnParameters": { + "id": 9110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9136, + "src": "1102:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9108, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1102:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1101:6:34" + }, + "scope": 9230, + "src": "1028:217:34", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9161, + "nodeType": "Block", + "src": "1401:121:34", + "statements": [ + { + "condition": { + "id": 9147, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9144, + "src": "1415:5:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 9159, + "nodeType": "Block", + "src": "1471:45:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 9155, + "name": "bitmap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9140, + "src": "1491:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + } + }, + { + "id": 9156, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9142, + "src": "1499:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9154, + "name": "unset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9229, + "src": "1485:5:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BitMap_$9100_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct BitMaps.BitMap storage pointer,uint256)" + } + }, + "id": 9157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1485:20:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9158, + "nodeType": "ExpressionStatement", + "src": "1485:20:34" + } + ] + }, + "id": 9160, + "nodeType": "IfStatement", + "src": "1411:105:34", + "trueBody": { + "id": 9153, + "nodeType": "Block", + "src": "1422:43:34", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 9149, + "name": "bitmap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9140, + "src": "1440:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + } + }, + { + "id": 9150, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9142, + "src": "1448:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9148, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9195, + "src": "1436:3:34", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BitMap_$9100_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct BitMaps.BitMap storage pointer,uint256)" + } + }, + "id": 9151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1436:18:34", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9152, + "nodeType": "ExpressionStatement", + "src": "1436:18:34" + } + ] + } + } + ] + }, + "documentation": { + "id": 9137, + "nodeType": "StructuredDocumentation", + "src": "1251:71:34", + "text": " @dev Sets the bit at `index` to the boolean `value`." + }, + "id": 9162, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setTo", + "nameLocation": "1336:5:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9140, + "mutability": "mutable", + "name": "bitmap", + "nameLocation": "1357:6:34", + "nodeType": "VariableDeclaration", + "scope": 9162, + "src": "1342:21:34", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + }, + "typeName": { + "id": 9139, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9138, + "name": "BitMap", + "nameLocations": [ + "1342:6:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9100, + "src": "1342:6:34" + }, + "referencedDeclaration": 9100, + "src": "1342:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9142, + "mutability": "mutable", + "name": "index", + "nameLocation": "1373:5:34", + "nodeType": "VariableDeclaration", + "scope": 9162, + "src": "1365:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1365:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9144, + "mutability": "mutable", + "name": "value", + "nameLocation": "1385:5:34", + "nodeType": "VariableDeclaration", + "scope": 9162, + "src": "1380:10:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9143, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1380:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1341:50:34" + }, + "returnParameters": { + "id": 9146, + "nodeType": "ParameterList", + "parameters": [], + "src": "1401:0:34" + }, + "scope": 9230, + "src": "1327:195:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9194, + "nodeType": "Block", + "src": "1641:126:34", + "statements": [ + { + "assignments": [ + 9172 + ], + "declarations": [ + { + "constant": false, + "id": 9172, + "mutability": "mutable", + "name": "bucket", + "nameLocation": "1659:6:34", + "nodeType": "VariableDeclaration", + "scope": 9194, + "src": "1651:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1651:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9176, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9173, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9168, + "src": "1668:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 9174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1668:10:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1651:27:34" + }, + { + "assignments": [ + 9178 + ], + "declarations": [ + { + "constant": false, + "id": 9178, + "mutability": "mutable", + "name": "mask", + "nameLocation": "1696:4:34", + "nodeType": "VariableDeclaration", + "scope": 9194, + "src": "1688:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9185, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1703:1:34", + "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": 9182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9180, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9168, + "src": "1709:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "30786666", + "id": 9181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1717:4:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "1709:12:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9183, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1708:14:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1703:19:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1688:34:34" + }, + { + "expression": { + "id": 9192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 9186, + "name": "bitmap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9166, + "src": "1732:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + } + }, + "id": 9189, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1739:5:34", + "memberName": "_data", + "nodeType": "MemberAccess", + "referencedDeclaration": 9099, + "src": "1732:12:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 9190, + "indexExpression": { + "id": 9188, + "name": "bucket", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9172, + "src": "1745:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1732:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "id": 9191, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9178, + "src": "1756:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1732:28:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9193, + "nodeType": "ExpressionStatement", + "src": "1732:28:34" + } + ] + }, + "documentation": { + "id": 9163, + "nodeType": "StructuredDocumentation", + "src": "1528:48:34", + "text": " @dev Sets the bit at `index`." + }, + "id": 9195, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nameLocation": "1590:3:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9166, + "mutability": "mutable", + "name": "bitmap", + "nameLocation": "1609:6:34", + "nodeType": "VariableDeclaration", + "scope": 9195, + "src": "1594:21:34", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + }, + "typeName": { + "id": 9165, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9164, + "name": "BitMap", + "nameLocations": [ + "1594:6:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9100, + "src": "1594:6:34" + }, + "referencedDeclaration": 9100, + "src": "1594:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9168, + "mutability": "mutable", + "name": "index", + "nameLocation": "1625:5:34", + "nodeType": "VariableDeclaration", + "scope": 9195, + "src": "1617:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1617:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1593:38:34" + }, + "returnParameters": { + "id": 9170, + "nodeType": "ParameterList", + "parameters": [], + "src": "1641:0:34" + }, + "scope": 9230, + "src": "1581:186:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9228, + "nodeType": "Block", + "src": "1890:127:34", + "statements": [ + { + "assignments": [ + 9205 + ], + "declarations": [ + { + "constant": false, + "id": 9205, + "mutability": "mutable", + "name": "bucket", + "nameLocation": "1908:6:34", + "nodeType": "VariableDeclaration", + "scope": 9228, + "src": "1900:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1900:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9209, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9206, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9201, + "src": "1917:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 9207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1926:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1917:10:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1900:27:34" + }, + { + "assignments": [ + 9211 + ], + "declarations": [ + { + "constant": false, + "id": 9211, + "mutability": "mutable", + "name": "mask", + "nameLocation": "1945:4:34", + "nodeType": "VariableDeclaration", + "scope": 9228, + "src": "1937:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9210, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1937:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9218, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1952:1:34", + "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": 9215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9213, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9201, + "src": "1958:5:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "30786666", + "id": 9214, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1966:4:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "1958:12:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9216, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1957:14:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1952:19:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1937:34:34" + }, + { + "expression": { + "id": 9226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 9219, + "name": "bitmap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9199, + "src": "1981:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap storage pointer" + } + }, + "id": 9222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1988:5:34", + "memberName": "_data", + "nodeType": "MemberAccess", + "referencedDeclaration": 9099, + "src": "1981:12:34", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 9223, + "indexExpression": { + "id": 9221, + "name": "bucket", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9205, + "src": "1994:6:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1981:20:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "&=", + "rightHandSide": { + "id": 9225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "~", + "prefix": true, + "src": "2005:5:34", + "subExpression": { + "id": 9224, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9211, + "src": "2006:4:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1981:29:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9227, + "nodeType": "ExpressionStatement", + "src": "1981:29:34" + } + ] + }, + "documentation": { + "id": 9196, + "nodeType": "StructuredDocumentation", + "src": "1773:50:34", + "text": " @dev Unsets the bit at `index`." + }, + "id": 9229, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unset", + "nameLocation": "1837:5:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9199, + "mutability": "mutable", + "name": "bitmap", + "nameLocation": "1858:6:34", + "nodeType": "VariableDeclaration", + "scope": 9229, + "src": "1843:21:34", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + }, + "typeName": { + "id": 9198, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9197, + "name": "BitMap", + "nameLocations": [ + "1843:6:34" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9100, + "src": "1843:6:34" + }, + "referencedDeclaration": 9100, + "src": "1843:6:34", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9201, + "mutability": "mutable", + "name": "index", + "nameLocation": "1874:5:34", + "nodeType": "VariableDeclaration", + "scope": 9229, + "src": "1866:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1866:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1842:38:34" + }, + "returnParameters": { + "id": 9203, + "nodeType": "ParameterList", + "parameters": [], + "src": "1890:0:34" + }, + "scope": 9230, + "src": "1828:189:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 9231, + "src": "858:1161:34", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "108:1912:34" + }, + "id": 34 + }, + "contracts/DataProtectorSharing.sol": { + "ast": { + "absolutePath": "contracts/DataProtectorSharing.sol", + "exportedSymbols": { + "AccessControlUpgradeable": [ + 362 + ], + "AddOnlyAppWhitelistRegistry": [ + 12170 + ], + "DataProtectorSharing": [ + 10746 + ], + "ERC721BurnableUpgradeable": [ + 1755 + ], + "ERC721Holder": [ + 3484 + ], + "ERC721Upgradeable": [ + 1710 + ], + "IAddOnlyAppWhitelist": [ + 11098 + ], + "ICollection": [ + 11176 + ], + "IDataProtectorSharing": [ + 11343 + ], + "IRegistry": [ + 11628 + ], + "IRental": [ + 11721 + ], + "ISale": [ + 11796 + ], + "ISubscription": [ + 11895 + ], + "IexecLibOrders_v5": [ + 11573 + ], + "Initializable": [ + 630 + ], + "ManageOrders": [ + 11058 + ], + "Math": [ + 7183 + ], + "MulticallUpgradeable": [ + 1904 + ] + }, + "id": 10747, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9232, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1246:24:35" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol", + "id": 9235, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 1756, + "src": "1272:151:35", + "symbolAliases": [ + { + "foreign": { + "id": 9233, + "name": "ERC721BurnableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "1280:25:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9234, + "name": "ERC721Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1307:17:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol", + "id": 9237, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 363, + "src": "1424:113:35", + "symbolAliases": [ + { + "foreign": { + "id": 9236, + "name": "AccessControlUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 362, + "src": "1432:24:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 9239, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 631, + "src": "1538:96:35", + "symbolAliases": [ + { + "foreign": { + "id": 9238, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "1546:13:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", + "id": 9241, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 1905, + "src": "1635:104:35", + "symbolAliases": [ + { + "foreign": { + "id": 9240, + "name": "MulticallUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1904, + "src": "1643:20:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "file": "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol", + "id": 9243, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 3485, + "src": "1740:89:35", + "symbolAliases": [ + { + "foreign": { + "id": 9242, + "name": "ERC721Holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3484, + "src": "1748:12:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "@openzeppelin/contracts/utils/math/Math.sol", + "id": 9245, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 7184, + "src": "1830:65:35", + "symbolAliases": [ + { + "foreign": { + "id": 9244, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "1838:4:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IDataProtectorSharing.sol", + "file": "./interfaces/IDataProtectorSharing.sol", + "id": 9252, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 11344, + "src": "1896:140:35", + "symbolAliases": [ + { + "foreign": { + "id": 9246, + "name": "IDataProtectorSharing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11343, + "src": "1904:21:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9247, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "1927:17:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9248, + "name": "ICollection", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11176, + "src": "1946:11:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9249, + "name": "ISubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11895, + "src": "1959:13:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9250, + "name": "IRental", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11721, + "src": "1974:7:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9251, + "name": "ISale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11796, + "src": "1983:5:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/registry/AddOnlyAppWhitelistRegistry.sol", + "file": "./registry/AddOnlyAppWhitelistRegistry.sol", + "id": 9255, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 12171, + "src": "2037:109:35", + "symbolAliases": [ + { + "foreign": { + "id": 9253, + "name": "AddOnlyAppWhitelistRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12170, + "src": "2045:27:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 9254, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "2074:20:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/ManageOrders.sol", + "file": "./ManageOrders.sol", + "id": 9257, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 11059, + "src": "2147:48:35", + "symbolAliases": [ + { + "foreign": { + "id": 9256, + "name": "ManageOrders", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11058, + "src": "2155:12:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IRegistry.sol", + "file": "./interfaces/IRegistry.sol", + "id": 9259, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10747, + "sourceUnit": 11629, + "src": "2196:53:35", + "symbolAliases": [ + { + "foreign": { + "id": 9258, + "name": "IRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11628, + "src": "2204:9:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 9261, + "name": "Initializable", + "nameLocations": [ + "2350:13:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "2350:13:35" + }, + "id": 9262, + "nodeType": "InheritanceSpecifier", + "src": "2350:13:35" + }, + { + "baseName": { + "id": 9263, + "name": "ERC721BurnableUpgradeable", + "nameLocations": [ + "2369:25:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1755, + "src": "2369:25:35" + }, + "id": 9264, + "nodeType": "InheritanceSpecifier", + "src": "2369:25:35" + }, + { + "baseName": { + "id": 9265, + "name": "MulticallUpgradeable", + "nameLocations": [ + "2400:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1904, + "src": "2400:20:35" + }, + "id": 9266, + "nodeType": "InheritanceSpecifier", + "src": "2400:20:35" + }, + { + "baseName": { + "id": 9267, + "name": "ERC721Holder", + "nameLocations": [ + "2426:12:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3484, + "src": "2426:12:35" + }, + "id": 9268, + "nodeType": "InheritanceSpecifier", + "src": "2426:12:35" + }, + { + "baseName": { + "id": 9269, + "name": "ManageOrders", + "nameLocations": [ + "2444:12:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11058, + "src": "2444:12:35" + }, + "id": 9270, + "nodeType": "InheritanceSpecifier", + "src": "2444:12:35" + }, + { + "baseName": { + "id": 9271, + "name": "AccessControlUpgradeable", + "nameLocations": [ + "2462:24:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 362, + "src": "2462:24:35" + }, + "id": 9272, + "nodeType": "InheritanceSpecifier", + "src": "2462:24:35" + }, + { + "baseName": { + "id": 9273, + "name": "IDataProtectorSharing", + "nameLocations": [ + "2492:21:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11343, + "src": "2492:21:35" + }, + "id": 9274, + "nodeType": "InheritanceSpecifier", + "src": "2492:21:35" + } + ], + "canonicalName": "DataProtectorSharing", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 9260, + "nodeType": "StructuredDocumentation", + "src": "2251:62:35", + "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" + }, + "fullyImplemented": true, + "id": 10746, + "linearizedBaseContracts": [ + 10746, + 11343, + 11796, + 11721, + 11895, + 11176, + 362, + 11058, + 3484, + 3429, + 1904, + 1755, + 1710, + 2286, + 3457, + 3411, + 1944, + 5562, + 2027, + 1801, + 630 + ], + "name": "DataProtectorSharing", + "nameLocation": "2322:20:35", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 9277, + "libraryName": { + "id": 9275, + "name": "Math", + "nameLocations": [ + "2526:4:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 7183, + "src": "2526:4:35" + }, + "nodeType": "UsingForDirective", + "src": "2520:22:35", + "typeName": { + "id": 9276, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2535:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + }, + { + "constant": false, + "functionSelector": "4afecaff", + "id": 9280, + "mutability": "immutable", + "name": "ADD_ONLY_APP_WHITELIST_REGISTRY", + "nameLocation": "2674:31:35", + "nodeType": "VariableDeclaration", + "scope": 10746, + "src": "2629:76:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + }, + "typeName": { + "id": 9279, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9278, + "name": "AddOnlyAppWhitelistRegistry", + "nameLocations": [ + "2629:27:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12170, + "src": "2629:27:35" + }, + "referencedDeclaration": 12170, + "src": "2629:27:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 9283, + "mutability": "immutable", + "name": "PROTECTED_DATA_REGISTRY", + "nameLocation": "2740:23:35", + "nodeType": "VariableDeclaration", + "scope": 10746, + "src": "2711:52:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + }, + "typeName": { + "id": 9282, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9281, + "name": "IRegistry", + "nameLocations": [ + "2711:9:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11628, + "src": "2711:9:35" + }, + "referencedDeclaration": 11628, + "src": "2711:9:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9285, + "mutability": "mutable", + "name": "_nextCollectionTokenId", + "nameLocation": "2785:22:35", + "nodeType": "VariableDeclaration", + "scope": 10746, + "src": "2769:38:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2769:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "f4c0fab4", + "id": 9289, + "mutability": "mutable", + "name": "earning", + "nameLocation": "2879:7:35", + "nodeType": "VariableDeclaration", + "scope": 10746, + "src": "2844:42:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 9288, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 9286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2852:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2844:27:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 9287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2863:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "328cb1f7", + "id": 9294, + "mutability": "mutable", + "name": "protectedDataDetails", + "nameLocation": "2992:20:35", + "nodeType": "VariableDeclaration", + "scope": 10746, + "src": "2944:68:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails)" + }, + "typeName": { + "id": 9293, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 9290, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2944:40:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 9292, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9291, + "name": "ProtectedDataDetails", + "nameLocations": [ + "2963:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "2963:20:35" + }, + "referencedDeclaration": 11295, + "src": "2963:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dfe0bc11", + "id": 9299, + "mutability": "mutable", + "name": "collectionDetails", + "nameLocation": "3112:17:35", + "nodeType": "VariableDeclaration", + "scope": 10746, + "src": "3067:62:35", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails)" + }, + "typeName": { + "id": 9298, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 9295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3075:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3067:37:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 9297, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9296, + "name": "CollectionDetails", + "nameLocations": [ + "3086:17:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11274, + "src": "3086:17:35" + }, + "referencedDeclaration": 11274, + "src": "3086:17:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 9325, + "nodeType": "Block", + "src": "3603:169:35", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9314, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "3613:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 9315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3613:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9316, + "nodeType": "ExpressionStatement", + "src": "3613:22:35" + }, + { + "expression": { + "id": 9319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9317, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "3645:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 9318, + "name": "protectedDataRegistry_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9305, + "src": "3671:22:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "src": "3645:48:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 9320, + "nodeType": "ExpressionStatement", + "src": "3645:48:35" + }, + { + "expression": { + "id": 9323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9321, + "name": "ADD_ONLY_APP_WHITELIST_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "3703:31:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 9322, + "name": "addOnlyAppWhitelistRegistry_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "3737:28:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "src": "3703:62:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "id": 9324, + "nodeType": "ExpressionStatement", + "src": "3703:62:35" + } + ] + }, + "documentation": { + "id": 9300, + "nodeType": "StructuredDocumentation", + "src": "3379:48:35", + "text": "@custom:oz-upgrades-unsafe-allow constructor" + }, + "id": 9326, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 9311, + "name": "_proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9302, + "src": "3595:6:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 9312, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 9310, + "name": "ManageOrders", + "nameLocations": [ + "3582:12:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11058, + "src": "3582:12:35" + }, + "nodeType": "ModifierInvocation", + "src": "3582:20:35" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9302, + "mutability": "mutable", + "name": "_proxy", + "nameLocation": "3461:6:35", + "nodeType": "VariableDeclaration", + "scope": 9326, + "src": "3453:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3453:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9305, + "mutability": "mutable", + "name": "protectedDataRegistry_", + "nameLocation": "3487:22:35", + "nodeType": "VariableDeclaration", + "scope": 9326, + "src": "3477:32:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + }, + "typeName": { + "id": 9304, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9303, + "name": "IRegistry", + "nameLocations": [ + "3477:9:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11628, + "src": "3477:9:35" + }, + "referencedDeclaration": 11628, + "src": "3477:9:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9308, + "mutability": "mutable", + "name": "addOnlyAppWhitelistRegistry_", + "nameLocation": "3547:28:35", + "nodeType": "VariableDeclaration", + "scope": 9326, + "src": "3519:56:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + }, + "typeName": { + "id": 9307, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9306, + "name": "AddOnlyAppWhitelistRegistry", + "nameLocations": [ + "3519:27:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12170, + "src": "3519:27:35" + }, + "referencedDeclaration": 12170, + "src": "3519:27:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "visibility": "internal" + } + ], + "src": "3443:138:35" + }, + "returnParameters": { + "id": 9313, + "nodeType": "ParameterList", + "parameters": [], + "src": "3603:0:35" + }, + "scope": 10746, + "src": "3432:340:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9352, + "nodeType": "Block", + "src": "3819:234:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "6945786563204461746150726f746563746f7253686172696e67", + "id": 9332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3843:28:35", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5ebcf5ad1cdfdf2330fbfc08e3ada07acdad11faa79307daa6fd4fff4484256a", + "typeString": "literal_string \"iExec DataProtectorSharing\"" + }, + "value": "iExec DataProtectorSharing" + }, + { + "hexValue": "69457865634461746150726f746563746f7253686172696e67", + "id": 9333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3873:27:35", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c91800fe8e4d8003bea71f682f58b94191c020922e6a5ecbcb800093e6268fef", + "typeString": "literal_string \"iExecDataProtectorSharing\"" + }, + "value": "iExecDataProtectorSharing" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_5ebcf5ad1cdfdf2330fbfc08e3ada07acdad11faa79307daa6fd4fff4484256a", + "typeString": "literal_string \"iExec DataProtectorSharing\"" + }, + { + "typeIdentifier": "t_stringliteral_c91800fe8e4d8003bea71f682f58b94191c020922e6a5ecbcb800093e6268fef", + "typeString": "literal_string \"iExecDataProtectorSharing\"" + } + ], + "id": 9331, + "name": "__ERC721_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "3829:13:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 9334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3829:72:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9335, + "nodeType": "ExpressionStatement", + "src": "3829:72:35" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9336, + "name": "__ERC721Burnable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1731, + "src": "3911:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 9337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3911:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9338, + "nodeType": "ExpressionStatement", + "src": "3911:23:35" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9339, + "name": "__AccessControl_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 63, + "src": "3944:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 9340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3944:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9341, + "nodeType": "ExpressionStatement", + "src": "3944:22:35" + }, + { + "expression": { + "arguments": [ + { + "id": 9343, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "3987:18:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 9344, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4007:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4011:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4007:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9342, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 315, + "src": "3976:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 9346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3976:42:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9347, + "nodeType": "ExpressionStatement", + "src": "3976:42:35" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "69706673", + "id": 9349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4039:6:35", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ec608becfa25f080ae2dd6d22f44c37c2aec1fbf004b9ef4fe43792a8f1ac1f1", + "typeString": "literal_string \"ipfs\"" + }, + "value": "ipfs" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ec608becfa25f080ae2dd6d22f44c37c2aec1fbf004b9ef4fe43792a8f1ac1f1", + "typeString": "literal_string \"ipfs\"" + } + ], + "id": 9348, + "name": "updateEnv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9916, + "src": "4029:9:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 9350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4029:17:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9351, + "nodeType": "ExpressionStatement", + "src": "4029:17:35" + } + ] + }, + "functionSelector": "8129fc1c", + "id": 9353, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 9329, + "kind": "modifierInvocation", + "modifierName": { + "id": 9328, + "name": "initializer", + "nameLocations": [ + "3807:11:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 470, + "src": "3807:11:35" + }, + "nodeType": "ModifierInvocation", + "src": "3807:11:35" + } + ], + "name": "initialize", + "nameLocation": "3787:10:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9327, + "nodeType": "ParameterList", + "parameters": [], + "src": "3797:2:35" + }, + "returnParameters": { + "id": 9330, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:0:35" + }, + "scope": 10746, + "src": "3778:275:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9373, + "nodeType": "Block", + "src": "4378:170:35", + "statements": [ + { + "condition": { + "id": 9366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4392:75:35", + "subExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 9360, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9355, + "src": "4415:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9359, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "4407:7:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 9361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4407:27:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 9362, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4436:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4440:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4436:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9364, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9355, + "src": "4448:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9358, + "name": "_isAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1144, + "src": "4393:13:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 9365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4393:74:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9372, + "nodeType": "IfStatement", + "src": "4388:154:35", + "trueBody": { + "id": 9371, + "nodeType": "Block", + "src": "4469:73:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9368, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9355, + "src": "4512:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9367, + "name": "NotCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11131, + "src": "4490:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4490:41:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9370, + "nodeType": "RevertStatement", + "src": "4483:48:35" + } + ] + } + } + ] + }, + "id": 9374, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkCollectionOperator", + "nameLocation": "4311:24:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9355, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "4344:18:35", + "nodeType": "VariableDeclaration", + "scope": 9374, + "src": "4336:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4336:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4335:28:35" + }, + "returnParameters": { + "id": 9357, + "nodeType": "ParameterList", + "parameters": [], + "src": "4378:0:35" + }, + "scope": 10746, + "src": "4302:246:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9422, + "nodeType": "Block", + "src": "4629:451:35", + "statements": [ + { + "assignments": [ + 9380 + ], + "declarations": [ + { + "constant": false, + "id": 9380, + "mutability": "mutable", + "name": "protectedDataTokenId", + "nameLocation": "4647:20:35", + "nodeType": "VariableDeclaration", + "scope": 9422, + "src": "4639:28:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9379, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4639:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9388, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 9385, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9376, + "src": "4686:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4678:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 9383, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "4678:7:35", + "typeDescriptions": {} + } + }, + "id": 9386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4678:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 9382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4670:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4670:7:35", + "typeDescriptions": {} + } + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4670:32:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4639:63:35" + }, + { + "assignments": [ + 9390 + ], + "declarations": [ + { + "constant": false, + "id": 9390, + "mutability": "mutable", + "name": "owner", + "nameLocation": "4720:5:35", + "nodeType": "VariableDeclaration", + "scope": 9422, + "src": "4712:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4712:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 9395, + "initialValue": { + "arguments": [ + { + "id": 9393, + "name": "protectedDataTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9380, + "src": "4760:20:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9391, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "4728:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 9392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4752:7:35", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 11583, + "src": "4728:31:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 9394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4728:53:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4712:69:35" + }, + { + "condition": { + "id": 9416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4809:192:35", + "subExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 9396, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4811:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4815:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4811:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 9398, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9390, + "src": "4825:5:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4811:19:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9402, + "name": "protectedDataTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9380, + "src": "4886:20:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9400, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "4850:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 9401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4874:11:35", + "memberName": "getApproved", + "nodeType": "MemberAccess", + "referencedDeclaration": 11617, + "src": "4850:35:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 9403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4850:57:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 9404, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4911:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4915:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4911:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4850:71:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4811:110:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 9410, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9390, + "src": "4982:5:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 9411, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4989:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4993:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4989:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 9408, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "4941:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 9409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4965:16:35", + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 11627, + "src": "4941:40:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 9413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4941:59:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4811:189:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 9415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4810:191:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9421, + "nodeType": "IfStatement", + "src": "4792:282:35", + "trueBody": { + "id": 9420, + "nodeType": "Block", + "src": "5012:62:35", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9417, + "name": "NotAnOwnerOrApprovedOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11139, + "src": "5033:28:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 9418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5033:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9419, + "nodeType": "RevertStatement", + "src": "5026:37:35" + } + ] + } + } + ] + }, + "id": 9423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProtectedDataOperator", + "nameLocation": "4563:27:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9376, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "4599:14:35", + "nodeType": "VariableDeclaration", + "scope": 9423, + "src": "4591:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4591:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4590:24:35" + }, + "returnParameters": { + "id": 9378, + "nodeType": "ParameterList", + "parameters": [], + "src": "4629:0:35" + }, + "scope": 10746, + "src": "4554:526:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9441, + "nodeType": "Block", + "src": "5167:187:35", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 9428, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "5181:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 9430, + "indexExpression": { + "id": 9429, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "5199:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5181:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "id": 9431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5219:26:35", + "memberName": "lastSubscriptionExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11266, + "src": "5181:64:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 9432, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5249:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 9433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5255:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5249:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5181:83:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9440, + "nodeType": "IfStatement", + "src": "5177:171:35", + "trueBody": { + "id": 9439, + "nodeType": "Block", + "src": "5266:82:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9436, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "5318:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9435, + "name": "OnGoingCollectionSubscriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11810, + "src": "5287:30:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5287:50:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9438, + "nodeType": "RevertStatement", + "src": "5280:57:35" + } + ] + } + } + ] + }, + "id": 9442, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkCollectionNotSubscribed", + "nameLocation": "5095:29:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9425, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "5133:18:35", + "nodeType": "VariableDeclaration", + "scope": 9442, + "src": "5125:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5124:28:35" + }, + "returnParameters": { + "id": 9427, + "nodeType": "ParameterList", + "parameters": [], + "src": "5167:0:35" + }, + "scope": 10746, + "src": "5086:268:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9460, + "nodeType": "Block", + "src": "5436:179:35", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 9447, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "5450:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 9449, + "indexExpression": { + "id": 9448, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9444, + "src": "5471:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5450:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "id": 9450, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5487:20:35", + "memberName": "lastRentalExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11282, + "src": "5450:57:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 9451, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5511:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 9452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5517:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5511:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5450:76:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9459, + "nodeType": "IfStatement", + "src": "5446:163:35", + "trueBody": { + "id": 9458, + "nodeType": "Block", + "src": "5528:81:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9455, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9444, + "src": "5583:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9454, + "name": "ProtectedDataCurrentlyBeingRented", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11635, + "src": "5549:33:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 9456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5549:49:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9457, + "nodeType": "RevertStatement", + "src": "5542:56:35" + } + ] + } + } + ] + }, + "id": 9461, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProtectedDataNotRented", + "nameLocation": "5369:28:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9444, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5406:14:35", + "nodeType": "VariableDeclaration", + "scope": 9461, + "src": "5398:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9443, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5398:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5397:24:35" + }, + "returnParameters": { + "id": 9446, + "nodeType": "ParameterList", + "parameters": [], + "src": "5436:0:35" + }, + "scope": 10746, + "src": "5360:255:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9477, + "nodeType": "Block", + "src": "5698:150:35", + "statements": [ + { + "condition": { + "expression": { + "expression": { + "baseExpression": { + "id": 9466, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "5712:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 9468, + "indexExpression": { + "id": 9467, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "5733:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5712:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "id": 9469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5749:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "5712:50:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 9470, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5763:9:35", + "memberName": "isForSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 11743, + "src": "5712:60:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9476, + "nodeType": "IfStatement", + "src": "5708:134:35", + "trueBody": { + "id": 9475, + "nodeType": "Block", + "src": "5774:68:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9472, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "5816:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9471, + "name": "ProtectedDataForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11728, + "src": "5795:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 9473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5795:36:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9474, + "nodeType": "RevertStatement", + "src": "5788:43:35" + } + ] + } + } + ] + }, + "id": 9478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProtectedDataNotForSale", + "nameLocation": "5630:29:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9463, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5668:14:35", + "nodeType": "VariableDeclaration", + "scope": 9478, + "src": "5660:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5660:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5659:24:35" + }, + "returnParameters": { + "id": 9465, + "nodeType": "ParameterList", + "parameters": [], + "src": "5698:0:35" + }, + "scope": 10746, + "src": "5621:227:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9495, + "nodeType": "Block", + "src": "5928:154:35", + "statements": [ + { + "condition": { + "id": 9488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5942:61:35", + "subExpression": { + "expression": { + "expression": { + "baseExpression": { + "id": 9483, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "5943:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 9485, + "indexExpression": { + "id": 9484, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9480, + "src": "5964:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5943:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "id": 9486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5980:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "5943:50:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 9487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5994:9:35", + "memberName": "isForSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 11743, + "src": "5943:60:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9494, + "nodeType": "IfStatement", + "src": "5938:138:35", + "trueBody": { + "id": 9493, + "nodeType": "Block", + "src": "6005:71:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9490, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9480, + "src": "6050:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9489, + "name": "ProtectedDataNotForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11733, + "src": "6026:23:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 9491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6026:39:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9492, + "nodeType": "RevertStatement", + "src": "6019:46:35" + } + ] + } + } + ] + }, + "id": 9496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkProtectedDataForSale", + "nameLocation": "5863:26:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9480, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5898:14:35", + "nodeType": "VariableDeclaration", + "scope": 9496, + "src": "5890:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5890:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5889:24:35" + }, + "returnParameters": { + "id": 9482, + "nodeType": "ParameterList", + "parameters": [], + "src": "5928:0:35" + }, + "scope": 10746, + "src": "5854:228:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9570, + "nodeType": "Block", + "src": "6270:771:35", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 9507, + "name": "_workerpoolOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6284:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + }, + "id": 9508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6301:15:35", + "memberName": "workerpoolprice", + "nodeType": "MemberAccess", + "referencedDeclaration": 11484, + "src": "6284:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 9509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6319:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6284:36:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9516, + "nodeType": "IfStatement", + "src": "6280:114:35", + "trueBody": { + "id": 9515, + "nodeType": "Block", + "src": "6322:72:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9512, + "name": "_workerpoolOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6366:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + ], + "id": 9511, + "name": "WorkerpoolOrderNotFree", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11223, + "src": "6343:22:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_struct$_WorkerpoolOrder_$11503_memory_ptr_$returns$__$", + "typeString": "function (struct IexecLibOrders_v5.WorkerpoolOrder memory) pure" + } + }, + "id": 9513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6343:40:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9514, + "nodeType": "RevertStatement", + "src": "6336:47:35" + } + ] + } + }, + { + "assignments": [ + 9519 + ], + "declarations": [ + { + "constant": false, + "id": 9519, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "6433:21:35", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "6404:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 9518, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9517, + "name": "ProtectedDataDetails", + "nameLocations": [ + "6404:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "6404:20:35" + }, + "referencedDeclaration": 11295, + "src": "6404:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 9523, + "initialValue": { + "baseExpression": { + "id": 9520, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "6457:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 9522, + "indexExpression": { + "id": 9521, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9498, + "src": "6478:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6457:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6404:89:35" + }, + { + "assignments": [ + 9525 + ], + "declarations": [ + { + "constant": false, + "id": 9525, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "6511:17:35", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "6503:25:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6503:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9528, + "initialValue": { + "expression": { + "id": 9526, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "6531:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 9527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6553:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "6531:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6503:60:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 9529, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "6577:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 9530, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6599:7:35", + "memberName": "renters", + "nodeType": "MemberAccess", + "referencedDeclaration": 11291, + "src": "6577:29:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + } + }, + "id": 9533, + "indexExpression": { + "expression": { + "id": 9531, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6607:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6611:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6607:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6577:41:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 9534, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6622:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 9535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6628:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6622:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6577:60:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9541, + "name": "collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "6706:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 9542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6727:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6706:22:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "expression": { + "id": 9544, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9519, + "src": "6744:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 9545, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6766:14:35", + "memberName": "inSubscription", + "nodeType": "MemberAccess", + "referencedDeclaration": 11284, + "src": "6744:36:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6706:74:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 9547, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "6796:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 9549, + "indexExpression": { + "id": 9548, + "name": "collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "6814:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6796:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "id": 9550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6833:11:35", + "memberName": "subscribers", + "nodeType": "MemberAccess", + "referencedDeclaration": 11273, + "src": "6796:48:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + } + }, + "id": 9553, + "indexExpression": { + "expression": { + "id": 9551, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6845:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6849:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6845:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6796:60:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 9554, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6860:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 9555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6866:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "6860:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6796:79:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6706:169:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 9567, + "nodeType": "Block", + "src": "6941:94:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9563, + "name": "collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "6990:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9564, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9498, + "src": "7009:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9562, + "name": "NoValidRentalOrSubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11230, + "src": "6962:27:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address) pure" + } + }, + "id": 9565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6962:62:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9566, + "nodeType": "RevertStatement", + "src": "6955:69:35" + } + ] + }, + "id": 9568, + "nodeType": "IfStatement", + "src": "6689:346:35", + "trueBody": { + "id": 9561, + "nodeType": "Block", + "src": "6886:49:35", + "statements": [ + { + "expression": { + "expression": { + "id": 9558, + "name": "Mode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11261, + "src": "6907:4:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Mode_$11261_$", + "typeString": "type(enum IDataProtectorSharing.Mode)" + } + }, + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6912:12:35", + "memberName": "SUBSCRIPTION", + "nodeType": "MemberAccess", + "referencedDeclaration": 11259, + "src": "6907:17:35", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + }, + "functionReturnParameters": 9506, + "id": 9560, + "nodeType": "Return", + "src": "6900:24:35" + } + ] + } + }, + "id": 9569, + "nodeType": "IfStatement", + "src": "6573:462:35", + "trueBody": { + "id": 9540, + "nodeType": "Block", + "src": "6639:44:35", + "statements": [ + { + "expression": { + "expression": { + "id": 9537, + "name": "Mode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11261, + "src": "6660:4:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Mode_$11261_$", + "typeString": "type(enum IDataProtectorSharing.Mode)" + } + }, + "id": 9538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6665:7:35", + "memberName": "RENTING", + "nodeType": "MemberAccess", + "referencedDeclaration": 11260, + "src": "6660:12:35", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + }, + "functionReturnParameters": 9506, + "id": 9539, + "nodeType": "Return", + "src": "6653:19:35" + } + ] + } + } + ] + }, + "id": 9571, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkAndGetConsumeProtectedDataMode", + "nameLocation": "6097:36:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9498, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "6151:14:35", + "nodeType": "VariableDeclaration", + "scope": 9571, + "src": "6143:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6143:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9501, + "mutability": "mutable", + "name": "_workerpoolOrder", + "nameLocation": "6218:16:35", + "nodeType": "VariableDeclaration", + "scope": 9571, + "src": "6175:59:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + }, + "typeName": { + "id": 9500, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9499, + "name": "IexecLibOrders_v5.WorkerpoolOrder", + "nameLocations": [ + "6175:17:35", + "6193:15:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "6175:33:35" + }, + "referencedDeclaration": 11503, + "src": "6175:33:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + }, + "visibility": "internal" + } + ], + "src": "6133:107:35" + }, + "returnParameters": { + "id": 9506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9505, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9571, + "src": "6264:4:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + }, + "typeName": { + "id": 9504, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9503, + "name": "Mode", + "nameLocations": [ + "6264:4:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11261, + "src": "6264:4:35" + }, + "referencedDeclaration": 11261, + "src": "6264:4:35", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + }, + "visibility": "internal" + } + ], + "src": "6263:6:35" + }, + "scope": 10746, + "src": "6088:953:35", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 11308 + ], + "body": { + "id": 9647, + "nodeType": "Block", + "src": "7525:837:35", + "statements": [ + { + "assignments": [ + 9586 + ], + "declarations": [ + { + "constant": false, + "id": 9586, + "mutability": "mutable", + "name": "_mode", + "nameLocation": "7540:5:35", + "nodeType": "VariableDeclaration", + "scope": 9647, + "src": "7535:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + }, + "typeName": { + "id": 9585, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9584, + "name": "Mode", + "nameLocations": [ + "7535:4:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11261, + "src": "7535:4:35" + }, + "referencedDeclaration": 11261, + "src": "7535:4:35", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + }, + "visibility": "internal" + } + ], + "id": 9591, + "initialValue": { + "arguments": [ + { + "id": 9588, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9574, + "src": "7585:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9589, + "name": "_workerpoolOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "7601:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + ], + "id": 9587, + "name": "_checkAndGetConsumeProtectedDataMode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9571, + "src": "7548:36:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_WorkerpoolOrder_$11503_calldata_ptr_$returns$_t_enum$_Mode_$11261_$", + "typeString": "function (address,struct IexecLibOrders_v5.WorkerpoolOrder calldata) view returns (enum IDataProtectorSharing.Mode)" + } + }, + "id": 9590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7548:70:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7535:83:35" + }, + { + "assignments": [ + 9596 + ], + "declarations": [ + { + "constant": false, + "id": 9596, + "mutability": "mutable", + "name": "_datasetOrder", + "nameLocation": "7666:13:35", + "nodeType": "VariableDeclaration", + "scope": 9647, + "src": "7628:51:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + }, + "typeName": { + "id": 9595, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9594, + "name": "IexecLibOrders_v5.DatasetOrder", + "nameLocations": [ + "7628:17:35", + "7646:12:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11480, + "src": "7628:30:35" + }, + "referencedDeclaration": 11480, + "src": "7628:30:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + } + }, + "visibility": "internal" + } + ], + "id": 9607, + "initialValue": { + "arguments": [ + { + "id": 9598, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9574, + "src": "7715:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 9601, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "7751:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 9603, + "indexExpression": { + "id": 9602, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9574, + "src": "7772:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7751:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "id": 9604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7788:19:35", + "memberName": "addOnlyAppWhitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 11280, + "src": "7751:56:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + ], + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7743:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7743:7:35", + "typeDescriptions": {} + } + }, + "id": 9605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7743:65:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9597, + "name": "_createDatasetOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10925, + "src": "7682:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_DatasetOrder_$11480_memory_ptr_$", + "typeString": "function (address,address) view returns (struct IexecLibOrders_v5.DatasetOrder memory)" + } + }, + "id": 9606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7682:136:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7628:190:35" + }, + { + "assignments": [ + 9612 + ], + "declarations": [ + { + "constant": false, + "id": 9612, + "mutability": "mutable", + "name": "_appOrder", + "nameLocation": "7862:9:35", + "nodeType": "VariableDeclaration", + "scope": 9647, + "src": "7828:43:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + }, + "typeName": { + "id": 9611, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9610, + "name": "IexecLibOrders_v5.AppOrder", + "nameLocations": [ + "7828:17:35", + "7846:8:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11461, + "src": "7828:26:35" + }, + "referencedDeclaration": 11461, + "src": "7828:26:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + } + }, + "visibility": "internal" + } + ], + "id": 9616, + "initialValue": { + "arguments": [ + { + "id": 9614, + "name": "_app", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9579, + "src": "7897:4:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9613, + "name": "_createPreSignAppOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10885, + "src": "7874:22:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_struct$_AppOrder_$11461_memory_ptr_$", + "typeString": "function (address) returns (struct IexecLibOrders_v5.AppOrder memory)" + } + }, + "id": 9615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7874:28:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7828:74:35" + }, + { + "assignments": [ + 9621 + ], + "declarations": [ + { + "constant": false, + "id": 9621, + "mutability": "mutable", + "name": "requestOrder", + "nameLocation": "7950:12:35", + "nodeType": "VariableDeclaration", + "scope": 9647, + "src": "7912:50:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + }, + "typeName": { + "id": 9620, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9619, + "name": "IexecLibOrders_v5.RequestOrder", + "nameLocations": [ + "7912:17:35", + "7930:12:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11536, + "src": "7912:30:35" + }, + "referencedDeclaration": 11536, + "src": "7912:30:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + } + }, + "visibility": "internal" + } + ], + "id": 9630, + "initialValue": { + "arguments": [ + { + "id": 9623, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9574, + "src": "8005:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9624, + "name": "_app", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9579, + "src": "8033:4:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 9625, + "name": "_workerpoolOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "8051:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + }, + "id": 9626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8068:10:35", + "memberName": "workerpool", + "nodeType": "MemberAccess", + "referencedDeclaration": 11482, + "src": "8051:27:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 9627, + "name": "_workerpoolOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "8092:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + }, + "id": 9628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8109:8:35", + "memberName": "category", + "nodeType": "MemberAccess", + "referencedDeclaration": 11490, + "src": "8092:25:35", + "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_uint256", + "typeString": "uint256" + } + ], + "id": 9622, + "name": "_createPreSignRequestOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11030, + "src": "7965:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_struct$_RequestOrder_$11536_memory_ptr_$", + "typeString": "function (address,address,address,uint256) returns (struct IexecLibOrders_v5.RequestOrder memory)" + } + }, + "id": 9629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7965:162:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7912:215:35" + }, + { + "expression": { + "id": 9639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9631, + "name": "dealid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9582, + "src": "8138:6:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 9634, + "name": "_appOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9612, + "src": "8186:9:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + { + "id": 9635, + "name": "_datasetOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9596, + "src": "8209:13:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + { + "id": 9636, + "name": "_workerpoolOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "8236:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + } + }, + { + "id": 9637, + "name": "requestOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "8266:12:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + }, + { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + }, + { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder calldata" + }, + { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder memory" + } + ], + "expression": { + "id": 9632, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "8147:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 9633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8161:11:35", + "memberName": "matchOrders", + "nodeType": "MemberAccess", + "referencedDeclaration": 11438, + "src": "8147:25:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_AppOrder_$11461_memory_ptr_$_t_struct$_DatasetOrder_$11480_memory_ptr_$_t_struct$_WorkerpoolOrder_$11503_memory_ptr_$_t_struct$_RequestOrder_$11536_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct IexecLibOrders_v5.AppOrder memory,struct IexecLibOrders_v5.DatasetOrder memory,struct IexecLibOrders_v5.WorkerpoolOrder memory,struct IexecLibOrders_v5.RequestOrder memory) external returns (bytes32)" + } + }, + "id": 9638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8147:141:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8138:150:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 9640, + "nodeType": "ExpressionStatement", + "src": "8138:150:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 9642, + "name": "dealid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9582, + "src": "8325:6:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 9643, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9574, + "src": "8333:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9644, + "name": "_mode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9586, + "src": "8349:5:35", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + ], + "id": 9641, + "name": "ProtectedDataConsumed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11258, + "src": "8303:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_enum$_Mode_$11261_$returns$__$", + "typeString": "function (bytes32,address,enum IDataProtectorSharing.Mode)" + } + }, + "id": 9645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8303:52:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9646, + "nodeType": "EmitStatement", + "src": "8298:57:35" + } + ] + }, + "documentation": { + "id": 9572, + "nodeType": "StructuredDocumentation", + "src": "7290:37:35", + "text": "@inheritdoc IDataProtectorSharing" + }, + "functionSelector": "d835c337", + "id": 9648, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "consumeProtectedData", + "nameLocation": "7341:20:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9574, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "7379:14:35", + "nodeType": "VariableDeclaration", + "scope": 9648, + "src": "7371:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9573, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7371:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9577, + "mutability": "mutable", + "name": "_workerpoolOrder", + "nameLocation": "7446:16:35", + "nodeType": "VariableDeclaration", + "scope": 9648, + "src": "7403:59:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + }, + "typeName": { + "id": 9576, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9575, + "name": "IexecLibOrders_v5.WorkerpoolOrder", + "nameLocations": [ + "7403:17:35", + "7421:15:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "7403:33:35" + }, + "referencedDeclaration": 11503, + "src": "7403:33:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9579, + "mutability": "mutable", + "name": "_app", + "nameLocation": "7480:4:35", + "nodeType": "VariableDeclaration", + "scope": 9648, + "src": "7472:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7472:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7361:129:35" + }, + "returnParameters": { + "id": 9583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9582, + "mutability": "mutable", + "name": "dealid", + "nameLocation": "7517:6:35", + "nodeType": "VariableDeclaration", + "scope": 9648, + "src": "7509:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 9581, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7509:7:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7508:16:35" + }, + "scope": 10746, + "src": "7332:1030:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 91, + 776 + ], + "body": { + "id": 9663, + "nodeType": "Block", + "src": "8510:60:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 9660, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9650, + "src": "8551:11:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 9658, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "8527:5:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_DataProtectorSharing_$10746_$", + "typeString": "type(contract super DataProtectorSharing)" + } + }, + "id": 9659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8533:17:35", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 91, + "src": "8527:23:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 9661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8527:36:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9657, + "id": 9662, + "nodeType": "Return", + "src": "8520:43:35" + } + ] + }, + "functionSelector": "01ffc9a7", + "id": 9664, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "8377:17:35", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 9654, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 9652, + "name": "ERC721Upgradeable", + "nameLocations": [ + "8450:17:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1710, + "src": "8450:17:35" + }, + { + "id": 9653, + "name": "AccessControlUpgradeable", + "nameLocations": [ + "8469:24:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 362, + "src": "8469:24:35" + } + ], + "src": "8441:53:35" + }, + "parameters": { + "id": 9651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9650, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "8411:11:35", + "nodeType": "VariableDeclaration", + "scope": 9664, + "src": "8404:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 9649, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8404:6:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8394:34:35" + }, + "returnParameters": { + "id": 9657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9656, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9664, + "src": "8504:4:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9655, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8504:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8503:6:35" + }, + "scope": 10746, + "src": "8368:202:35", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 1307 + ], + "body": { + "id": 9719, + "nodeType": "Block", + "src": "8825:499:35", + "statements": [ + { + "assignments": [ + 9678 + ], + "declarations": [ + { + "constant": false, + "id": 9678, + "mutability": "mutable", + "name": "_collectionDetails", + "nameLocation": "8861:18:35", + "nodeType": "VariableDeclaration", + "scope": 9719, + "src": "8835:44:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails" + }, + "typeName": { + "id": 9677, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9676, + "name": "CollectionDetails", + "nameLocations": [ + "8835:17:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11274, + "src": "8835:17:35" + }, + "referencedDeclaration": 11274, + "src": "8835:17:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails" + } + }, + "visibility": "internal" + } + ], + "id": 9682, + "initialValue": { + "baseExpression": { + "id": 9679, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "8882:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 9681, + "indexExpression": { + "id": 9680, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9668, + "src": "8900:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8882:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8835:84:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9683, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9666, + "src": "8933:2:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 9686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8947:1:35", + "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": 9685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8939:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8939:7:35", + "typeDescriptions": {} + } + }, + "id": 9687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8939:10:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8933:16:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9711, + "nodeType": "IfStatement", + "src": "8929:329:35", + "trueBody": { + "id": 9710, + "nodeType": "Block", + "src": "8951:307:35", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 9689, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9678, + "src": "8969:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 9690, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8988:4:35", + "memberName": "size", + "nodeType": "MemberAccess", + "referencedDeclaration": 11264, + "src": "8969:23:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 9691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8995:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8969:27:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9698, + "nodeType": "IfStatement", + "src": "8965:111:35", + "trueBody": { + "id": 9697, + "nodeType": "Block", + "src": "8998:78:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9694, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9668, + "src": "9042:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9693, + "name": "CollectionNotEmpty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11136, + "src": "9023:18:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9023:38:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9696, + "nodeType": "RevertStatement", + "src": "9016:45:35" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 9699, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9678, + "src": "9093:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 9700, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9112:26:35", + "memberName": "lastSubscriptionExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11266, + "src": "9093:45:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 9701, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "9141:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 9702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9147:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "9141:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9093:63:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9709, + "nodeType": "IfStatement", + "src": "9089:159:35", + "trueBody": { + "id": 9708, + "nodeType": "Block", + "src": "9158:90:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 9705, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9668, + "src": "9214:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9704, + "name": "OnGoingCollectionSubscriptions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11810, + "src": "9183:30:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9183:50:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9707, + "nodeType": "RevertStatement", + "src": "9176:57:35" + } + ] + } + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 9714, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9666, + "src": "9288:2:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9715, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9668, + "src": "9292:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9716, + "name": "auth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9670, + "src": "9312:4:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 9712, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "9274:5:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_DataProtectorSharing_$10746_$", + "typeString": "type(contract super DataProtectorSharing)" + } + }, + "id": 9713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9280:7:35", + "memberName": "_update", + "nodeType": "MemberAccess", + "referencedDeclaration": 1307, + "src": "9274:13:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_address_$", + "typeString": "function (address,uint256,address) returns (address)" + } + }, + "id": 9717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9274:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 9675, + "id": 9718, + "nodeType": "Return", + "src": "9267:50:35" + } + ] + }, + "id": 9720, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nameLocation": "8689:7:35", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 9672, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "8798:8:35" + }, + "parameters": { + "id": 9671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9666, + "mutability": "mutable", + "name": "to", + "nameLocation": "8714:2:35", + "nodeType": "VariableDeclaration", + "scope": 9720, + "src": "8706:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8706:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9668, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "8734:18:35", + "nodeType": "VariableDeclaration", + "scope": 9720, + "src": "8726:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8726:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9670, + "mutability": "mutable", + "name": "auth", + "nameLocation": "8770:4:35", + "nodeType": "VariableDeclaration", + "scope": 9720, + "src": "8762:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8762:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8696:84:35" + }, + "returnParameters": { + "id": 9675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9720, + "src": "8816:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8816:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8815:9:35" + }, + "scope": 10746, + "src": "8680:644:35", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 11318 + ], + "body": { + "id": 9737, + "nodeType": "Block", + "src": "9503:84:35", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 9730, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "9520:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 9732, + "indexExpression": { + "id": 9731, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "9541:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9520:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "id": 9733, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9557:7:35", + "memberName": "renters", + "nodeType": "MemberAccess", + "referencedDeclaration": 11291, + "src": "9520:44:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + } + }, + "id": 9735, + "indexExpression": { + "id": 9734, + "name": "_renterAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9725, + "src": "9565:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9520:60:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 9729, + "id": 9736, + "nodeType": "Return", + "src": "9513:67:35" + } + ] + }, + "documentation": { + "id": 9721, + "nodeType": "StructuredDocumentation", + "src": "9330:37:35", + "text": "@inheritdoc IDataProtectorSharing" + }, + "functionSelector": "ea46d1aa", + "id": 9738, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProtectedDataRenter", + "nameLocation": "9381:22:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9723, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "9421:14:35", + "nodeType": "VariableDeclaration", + "scope": 9738, + "src": "9413:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9413:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9725, + "mutability": "mutable", + "name": "_renterAddress", + "nameLocation": "9453:14:35", + "nodeType": "VariableDeclaration", + "scope": 9738, + "src": "9445:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9445:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9403:70:35" + }, + "returnParameters": { + "id": 9729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9728, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9738, + "src": "9495:6:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 9727, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "9495:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "9494:8:35" + }, + "scope": 10746, + "src": "9372:215:35", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11328 + ], + "body": { + "id": 9755, + "nodeType": "Block", + "src": "9775:93:35", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 9748, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "9792:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 9750, + "indexExpression": { + "id": 9749, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9741, + "src": "9810:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9792:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "id": 9751, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9830:11:35", + "memberName": "subscribers", + "nodeType": "MemberAccess", + "referencedDeclaration": 11273, + "src": "9792:49:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + } + }, + "id": 9753, + "indexExpression": { + "id": 9752, + "name": "_subscriberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9743, + "src": "9842:18:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9792:69:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 9747, + "id": 9754, + "nodeType": "Return", + "src": "9785:76:35" + } + ] + }, + "documentation": { + "id": 9739, + "nodeType": "StructuredDocumentation", + "src": "9593:37:35", + "text": "@inheritdoc IDataProtectorSharing" + }, + "functionSelector": "c3533ba2", + "id": 9756, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCollectionSubscriber", + "nameLocation": "9644:23:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9741, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "9685:18:35", + "nodeType": "VariableDeclaration", + "scope": 9756, + "src": "9677:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9677:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9743, + "mutability": "mutable", + "name": "_subscriberAddress", + "nameLocation": "9721:18:35", + "nodeType": "VariableDeclaration", + "scope": 9756, + "src": "9713:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9713:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9667:78:35" + }, + "returnParameters": { + "id": 9747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9746, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9756, + "src": "9767:6:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 9745, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "9767:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "9766:8:35" + }, + "scope": 10746, + "src": "9635:233:35", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11342 + ], + "body": { + "id": 9902, + "nodeType": "Block", + "src": "10063:1317:35", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 9770, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10077:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10081:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10077:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "id": 9774, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "10099:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + ], + "id": 9773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10091:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9772, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10091:7:35", + "typeDescriptions": {} + } + }, + "id": 9775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10091:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10077:36:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9783, + "nodeType": "IfStatement", + "src": "10073:110:35", + "trueBody": { + "id": 9782, + "nodeType": "Block", + "src": "10115:68:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 9778, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10161:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10165:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "10161:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9777, + "name": "OnlyPocoCallerAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11245, + "src": "10136:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 9780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10136:36:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9781, + "nodeType": "RevertStatement", + "src": "10129:43:35" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 9784, + "name": "_extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "10196:10:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10207:6:35", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10196:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10217:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10196:22:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9792, + "nodeType": "IfStatement", + "src": "10192:75:35", + "trueBody": { + "id": 9791, + "nodeType": "Block", + "src": "10220:47:35", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9788, + "name": "EmptyCallData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11248, + "src": "10241:13:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 9789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10241:15:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9790, + "nodeType": "RevertStatement", + "src": "10234:22:35" + } + ] + } + }, + { + "assignments": [ + 9794 + ], + "declarations": [ + { + "constant": false, + "id": 9794, + "mutability": "mutable", + "name": "selector", + "nameLocation": "10283:8:35", + "nodeType": "VariableDeclaration", + "scope": 9902, + "src": "10276:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 9793, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10276:6:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 9801, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 9797, + "name": "_extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "10301:10:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "endExpression": { + "hexValue": "34", + "id": 9798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10313:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "id": 9799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "10301:14:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + ], + "id": 9796, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10294:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 9795, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10294:6:35", + "typeDescriptions": {} + } + }, + "id": 9800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10294:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10276:40:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 9806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9802, + "name": "selector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9794, + "src": "10331:8:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 9803, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10343:4:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + }, + "id": 9804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10348:21:35", + "memberName": "subscribeToCollection", + "nodeType": "MemberAccess", + "referencedDeclaration": 10127, + "src": "10343:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_struct$_SubscriptionParams_$11831_memory_ptr_$returns$_t_uint48_$", + "typeString": "function (uint256,struct ISubscription.SubscriptionParams memory) external returns (uint48)" + } + }, + "id": 9805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10370:8:35", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "10343:35:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "10331:47:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 9836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9832, + "name": "selector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9794, + "src": "10703:8:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 9833, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10715:4:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + }, + "id": 9834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10720:17:35", + "memberName": "rentProtectedData", + "nodeType": "MemberAccess", + "referencedDeclaration": 10343, + "src": "10715:22:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_struct$_RentingParams_$11666_memory_ptr_$returns$_t_uint48_$", + "typeString": "function (address,struct IRental.RentingParams memory) external returns (uint48)" + } + }, + "id": 9835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10738:8:35", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "10715:31:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "10703:43:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 9866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9862, + "name": "selector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9794, + "src": "11039:8:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 9863, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "11051:4:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + }, + "id": 9864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11056:16:35", + "memberName": "buyProtectedData", + "nodeType": "MemberAccess", + "referencedDeclaration": 10560, + "src": "11051:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint72_$returns$__$", + "typeString": "function (address,address,uint72) external" + } + }, + "id": 9865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11073:8:35", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "11051:30:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "11039:42:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9897, + "nodeType": "IfStatement", + "src": "11035:316:35", + "trueBody": { + "id": 9896, + "nodeType": "Block", + "src": "11083:268:35", + "statements": [ + { + "assignments": [ + 9868, + 9870, + 9872 + ], + "declarations": [ + { + "constant": false, + "id": 9868, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "11106:13:35", + "nodeType": "VariableDeclaration", + "scope": 9896, + "src": "11098:21:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11098:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9870, + "mutability": "mutable", + "name": "to", + "nameLocation": "11129:2:35", + "nodeType": "VariableDeclaration", + "scope": 9896, + "src": "11121:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11121:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9872, + "mutability": "mutable", + "name": "price", + "nameLocation": "11140:5:35", + "nodeType": "VariableDeclaration", + "scope": 9896, + "src": "11133:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 9871, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "11133:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "id": 9886, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 9875, + "name": "_extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "11177:10:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "11177:14:35", + "startExpression": { + "hexValue": "34", + "id": 9876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11188:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "components": [ + { + "id": 9879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11210:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11210:7:35", + "typeDescriptions": {} + } + }, + { + "id": 9881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11219:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9880, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11219:7:35", + "typeDescriptions": {} + } + }, + { + "id": 9883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11228:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 9882, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "11228:6:35", + "typeDescriptions": {} + } + } + ], + "id": 9884, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11209:26:35", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint72_$_$", + "typeString": "tuple(type(address),type(address),type(uint72))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint72_$_$", + "typeString": "tuple(type(address),type(address),type(uint72))" + } + ], + "expression": { + "id": 9873, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "11149:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 9874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11153:6:35", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "11149:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 9885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11149:100:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_payable_$_t_address_payable_$_t_uint72_$", + "typeString": "tuple(address payable,address payable,uint72)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11097:152:35" + }, + { + "expression": { + "arguments": [ + { + "id": 9888, + "name": "protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9868, + "src": "11281:13:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9889, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9759, + "src": "11296:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9890, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9870, + "src": "11305:2:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9891, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9872, + "src": "11309:5:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "id": 9887, + "name": "_buyProtectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10637, + "src": "11263:17:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint72_$returns$__$", + "typeString": "function (address,address,address,uint72)" + } + }, + "id": 9892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11263:52:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9893, + "nodeType": "ExpressionStatement", + "src": "11263:52:35" + }, + { + "expression": { + "hexValue": "74727565", + "id": 9894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11336:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9769, + "id": 9895, + "nodeType": "Return", + "src": "11329:11:35" + } + ] + } + }, + "id": 9898, + "nodeType": "IfStatement", + "src": "10699:652:35", + "trueBody": { + "id": 9861, + "nodeType": "Block", + "src": "10748:281:35", + "statements": [ + { + "assignments": [ + 9838, + 9841 + ], + "declarations": [ + { + "constant": false, + "id": 9838, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "10771:13:35", + "nodeType": "VariableDeclaration", + "scope": 9861, + "src": "10763:21:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9837, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10763:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9841, + "mutability": "mutable", + "name": "rentingParams", + "nameLocation": "10807:13:35", + "nodeType": "VariableDeclaration", + "scope": 9861, + "src": "10786:34:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 9840, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9839, + "name": "RentingParams", + "nameLocations": [ + "10786:13:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "10786:13:35" + }, + "referencedDeclaration": 11666, + "src": "10786:13:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "id": 9852, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 9844, + "name": "_extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "10852:10:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "10852:14:35", + "startExpression": { + "hexValue": "34", + "id": 9845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10863:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "components": [ + { + "id": 9848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10885:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10885:7:35", + "typeDescriptions": {} + } + }, + { + "id": 9849, + "name": "RentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11666, + "src": "10894:13:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RentingParams_$11666_storage_ptr_$", + "typeString": "type(struct IRental.RentingParams storage pointer)" + } + } + ], + "id": 9850, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10884:24:35", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_struct$_RentingParams_$11666_storage_ptr_$_$", + "typeString": "tuple(type(address),type(struct IRental.RentingParams storage pointer))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_struct$_RentingParams_$11666_storage_ptr_$_$", + "typeString": "tuple(type(address),type(struct IRental.RentingParams storage pointer))" + } + ], + "expression": { + "id": 9842, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "10824:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 9843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10828:6:35", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "10824:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 9851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10824:98:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_payable_$_t_struct$_RentingParams_$11666_memory_ptr_$", + "typeString": "tuple(address payable,struct IRental.RentingParams memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10762:160:35" + }, + { + "expression": { + "arguments": [ + { + "id": 9854, + "name": "protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9838, + "src": "10955:13:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9855, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9759, + "src": "10970:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9856, + "name": "rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9841, + "src": "10979:13:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + ], + "id": 9853, + "name": "_rentProtectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10452, + "src": "10936:18:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_RentingParams_$11666_memory_ptr_$returns$_t_uint48_$", + "typeString": "function (address,address,struct IRental.RentingParams memory) returns (uint48)" + } + }, + "id": 9857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10936:57:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 9858, + "nodeType": "ExpressionStatement", + "src": "10936:57:35" + }, + { + "expression": { + "hexValue": "74727565", + "id": 9859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11014:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9769, + "id": 9860, + "nodeType": "Return", + "src": "11007:11:35" + } + ] + } + }, + "id": 9899, + "nodeType": "IfStatement", + "src": "10327:1024:35", + "trueBody": { + "id": 9831, + "nodeType": "Block", + "src": "10380:313:35", + "statements": [ + { + "assignments": [ + 9808, + 9811 + ], + "declarations": [ + { + "constant": false, + "id": 9808, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "10403:17:35", + "nodeType": "VariableDeclaration", + "scope": 9831, + "src": "10395:25:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10395:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9811, + "mutability": "mutable", + "name": "subscriptionParams", + "nameLocation": "10448:18:35", + "nodeType": "VariableDeclaration", + "scope": 9831, + "src": "10422:44:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 9810, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9809, + "name": "SubscriptionParams", + "nameLocations": [ + "10422:18:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "10422:18:35" + }, + "referencedDeclaration": 11831, + "src": "10422:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "id": 9822, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "id": 9814, + "name": "_extraData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "10498:10:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "10498:14:35", + "startExpression": { + "hexValue": "34", + "id": 9815, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10509:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "components": [ + { + "id": 9818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10531:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10531:7:35", + "typeDescriptions": {} + } + }, + { + "id": 9819, + "name": "SubscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11831, + "src": "10540:18:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_SubscriptionParams_$11831_storage_ptr_$", + "typeString": "type(struct ISubscription.SubscriptionParams storage pointer)" + } + } + ], + "id": 9820, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10530:29:35", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_struct$_SubscriptionParams_$11831_storage_ptr_$_$", + "typeString": "tuple(type(uint256),type(struct ISubscription.SubscriptionParams storage pointer))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_struct$_SubscriptionParams_$11831_storage_ptr_$_$", + "typeString": "tuple(type(uint256),type(struct ISubscription.SubscriptionParams storage pointer))" + } + ], + "expression": { + "id": 9812, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "10470:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 9813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10474:6:35", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "10470:10:35", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 9821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10470:103:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_struct$_SubscriptionParams_$11831_memory_ptr_$", + "typeString": "tuple(uint256,struct ISubscription.SubscriptionParams memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10394:179:35" + }, + { + "expression": { + "arguments": [ + { + "id": 9824, + "name": "collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9808, + "src": "10610:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9825, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9759, + "src": "10629:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9826, + "name": "subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9811, + "src": "10638:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + ], + "id": 9823, + "name": "_subscribeToCollection", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10222, + "src": "10587:22:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_struct$_SubscriptionParams_$11831_memory_ptr_$returns$_t_uint48_$", + "typeString": "function (uint256,address,struct ISubscription.SubscriptionParams memory) returns (uint48)" + } + }, + "id": 9827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10587:70:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 9828, + "nodeType": "ExpressionStatement", + "src": "10587:70:35" + }, + { + "expression": { + "hexValue": "74727565", + "id": 9829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10678:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9769, + "id": 9830, + "nodeType": "Return", + "src": "10671:11:35" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11368:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 9769, + "id": 9901, + "nodeType": "Return", + "src": "11361:12:35" + } + ] + }, + "documentation": { + "id": 9757, + "nodeType": "StructuredDocumentation", + "src": "9874:37:35", + "text": "@inheritdoc IDataProtectorSharing" + }, + "functionSelector": "8f4ffcb1", + "id": 9903, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "receiveApproval", + "nameLocation": "9925:15:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9759, + "mutability": "mutable", + "name": "_sender", + "nameLocation": "9958:7:35", + "nodeType": "VariableDeclaration", + "scope": 9903, + "src": "9950:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9950:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9761, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9903, + "src": "9975:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9975:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9763, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9903, + "src": "9992:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9762, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9992:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9765, + "mutability": "mutable", + "name": "_extraData", + "nameLocation": "10024:10:35", + "nodeType": "VariableDeclaration", + "scope": 9903, + "src": "10009:25:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9764, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10009:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9940:100:35" + }, + "returnParameters": { + "id": 9769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9768, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9903, + "src": "10057:4:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9767, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10057:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10056:6:35" + }, + "scope": 10746, + "src": "9916:1464:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9915, + "nodeType": "Block", + "src": "11741:74:35", + "statements": [ + { + "expression": { + "id": 9913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9911, + "name": "_iexecResultStorageProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10796, + "src": "11751:27:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 9912, + "name": "iexecResultStorageProvider_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9905, + "src": "11781:27:35", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "11751:57:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9914, + "nodeType": "ExpressionStatement", + "src": "11751:57:35" + } + ] + }, + "functionSelector": "0b9f187b", + "id": 9916, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 9908, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "11721:18:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 9909, + "kind": "modifierInvocation", + "modifierName": { + "id": 9907, + "name": "onlyRole", + "nameLocations": [ + "11712:8:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 57, + "src": "11712:8:35" + }, + "nodeType": "ModifierInvocation", + "src": "11712:28:35" + } + ], + "name": "updateEnv", + "nameLocation": "11638:9:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9905, + "mutability": "mutable", + "name": "iexecResultStorageProvider_", + "nameLocation": "11671:27:35", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "11657:41:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9904, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11657:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "11647:57:35" + }, + "returnParameters": { + "id": 9910, + "nodeType": "ParameterList", + "parameters": [], + "src": "11741:0:35" + }, + "scope": 10746, + "src": "11629:186:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11158 + ], + "body": { + "id": 9936, + "nodeType": "Block", + "src": "12160:157:35", + "statements": [ + { + "assignments": [ + 9925 + ], + "declarations": [ + { + "constant": false, + "id": 9925, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "12178:7:35", + "nodeType": "VariableDeclaration", + "scope": 9936, + "src": "12170:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12170:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9928, + "initialValue": { + "id": 9927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "12188:24:35", + "subExpression": { + "id": 9926, + "name": "_nextCollectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9285, + "src": "12190:22:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12170:42:35" + }, + { + "expression": { + "arguments": [ + { + "id": 9930, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9919, + "src": "12273:3:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 9931, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9925, + "src": "12278:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9929, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1372, + 1402 + ], + "referencedDeclaration": 1372, + "src": "12263:9:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12263:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9933, + "nodeType": "ExpressionStatement", + "src": "12263:23:35" + }, + { + "expression": { + "id": 9934, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9925, + "src": "12303:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9923, + "id": 9935, + "nodeType": "Return", + "src": "12296:14:35" + } + ] + }, + "documentation": { + "id": 9917, + "nodeType": "StructuredDocumentation", + "src": "12064:27:35", + "text": "@inheritdoc ICollection" + }, + "functionSelector": "2069e953", + "id": 9937, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createCollection", + "nameLocation": "12105:16:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9919, + "mutability": "mutable", + "name": "_to", + "nameLocation": "12130:3:35", + "nodeType": "VariableDeclaration", + "scope": 9937, + "src": "12122:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12122:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12121:13:35" + }, + "returnParameters": { + "id": 9923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9922, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9937, + "src": "12151:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12151:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12150:9:35" + }, + "scope": 10746, + "src": "12096:221:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11169 + ], + "body": { + "id": 10041, + "nodeType": "Block", + "src": "12518:880:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 9949, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9940, + "src": "12553:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9948, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "12528:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 9950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12528:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9951, + "nodeType": "ExpressionStatement", + "src": "12528:44:35" + }, + { + "expression": { + "arguments": [ + { + "id": 9953, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9942, + "src": "12610:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9952, + "name": "_checkProtectedDataOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "12582:27:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 9954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12582:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9955, + "nodeType": "ExpressionStatement", + "src": "12582:43:35" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 9965, + "name": "_appWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9945, + "src": "12700:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + ], + "id": 9964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12692:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12692:7:35", + "typeDescriptions": {} + } + }, + "id": 9966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12692:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12684:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 9961, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "12684:7:35", + "typeDescriptions": {} + } + }, + "id": 9967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12684:31:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 9960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12676:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12676:7:35", + "typeDescriptions": {} + } + }, + "id": 9968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12676:40:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9956, + "name": "ADD_ONLY_APP_WHITELIST_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "12636:31:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "id": 9958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12668:7:35", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 824, + "src": "12636:39:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 9969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12636:81:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9970, + "nodeType": "ExpressionStatement", + "src": "12636:81:35" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 9980, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9942, + "src": "12829:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12821:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 9978, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "12821:7:35", + "typeDescriptions": {} + } + }, + "id": 9981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12821:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 9977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12813:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12813:7:35", + "typeDescriptions": {} + } + }, + "id": 9982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12813:32:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9974, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "12781:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 9975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12805:7:35", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 11583, + "src": "12781:31:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 9983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12781:65:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 9986, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "12868:4:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + ], + "id": 9985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12860:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12860:7:35", + "typeDescriptions": {} + } + }, + "id": 9987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12860:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 9992, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9942, + "src": "12903:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12895:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 9990, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "12895:7:35", + "typeDescriptions": {} + } + }, + "id": 9993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12895:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 9989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12887:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12887:7:35", + "typeDescriptions": {} + } + }, + "id": 9994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12887:32:35", + "tryCall": false, + "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": 9971, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "12727:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 9973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12751:16:35", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11593, + "src": "12727:40:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 9995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12727:202:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9996, + "nodeType": "ExpressionStatement", + "src": "12727:202:35" + }, + { + "assignments": [ + 9999 + ], + "declarations": [ + { + "constant": false, + "id": 9999, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "12968:21:35", + "nodeType": "VariableDeclaration", + "scope": 10041, + "src": "12939:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 9998, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9997, + "name": "ProtectedDataDetails", + "nameLocations": [ + "12939:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "12939:20:35" + }, + "referencedDeclaration": 11295, + "src": "12939:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10003, + "initialValue": { + "baseExpression": { + "id": 10000, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "12992:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10002, + "indexExpression": { + "id": 10001, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9942, + "src": "13013:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12992:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12939:89:35" + }, + { + "expression": { + "id": 10008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10004, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9999, + "src": "13038:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10006, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13060:19:35", + "memberName": "addOnlyAppWhitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 11280, + "src": "13038:41:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10007, + "name": "_appWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9945, + "src": "13082:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "src": "13038:57:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "id": 10009, + "nodeType": "ExpressionStatement", + "src": "13038:57:35" + }, + { + "expression": { + "id": 10014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10010, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9999, + "src": "13105:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10012, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13127:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "13105:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10013, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9940, + "src": "13140:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13105:53:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10015, + "nodeType": "ExpressionStatement", + "src": "13105:53:35" + }, + { + "expression": { + "id": 10021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 10016, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "13168:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 10018, + "indexExpression": { + "id": 10017, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9940, + "src": "13186:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13168:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "id": 10019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13206:4:35", + "memberName": "size", + "nodeType": "MemberAccess", + "referencedDeclaration": 11264, + "src": "13168:42:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 10020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13214:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13168:47:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10022, + "nodeType": "ExpressionStatement", + "src": "13168:47:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10024, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9942, + "src": "13253:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 10027, + "name": "_appWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9945, + "src": "13277:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + ], + "id": 10026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13269:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13269:7:35", + "typeDescriptions": {} + } + }, + "id": 10028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13269:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10023, + "name": "_createPreSignDatasetOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10959, + "src": "13226:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_struct$_DatasetOrder_$11480_memory_ptr_$", + "typeString": "function (address,address) returns (struct IexecLibOrders_v5.DatasetOrder memory)" + } + }, + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13226:66:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + "id": 10030, + "nodeType": "ExpressionStatement", + "src": "13226:66:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10032, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9942, + "src": "13329:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10033, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9940, + "src": "13345:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 10034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13365:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "arguments": [ + { + "id": 10037, + "name": "_appWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9945, + "src": "13376:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + ], + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13368:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13368:7:35", + "typeDescriptions": {} + } + }, + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13368:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10031, + "name": "ProtectedDataTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11150, + "src": "13307:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13307:84:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10040, + "nodeType": "EmitStatement", + "src": "13302:89:35" + } + ] + }, + "documentation": { + "id": 9938, + "nodeType": "StructuredDocumentation", + "src": "12323:27:35", + "text": "@inheritdoc ICollection" + }, + "functionSelector": "40e6158d", + "id": 10042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addProtectedDataToCollection", + "nameLocation": "12364:28:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9940, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "12410:18:35", + "nodeType": "VariableDeclaration", + "scope": 10042, + "src": "12402:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9939, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12402:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9942, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "12446:14:35", + "nodeType": "VariableDeclaration", + "scope": 10042, + "src": "12438:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12438:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9945, + "mutability": "mutable", + "name": "_appWhitelist", + "nameLocation": "12491:13:35", + "nodeType": "VariableDeclaration", + "scope": 10042, + "src": "12470:34:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + }, + "typeName": { + "id": 9944, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9943, + "name": "IAddOnlyAppWhitelist", + "nameLocations": [ + "12470:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11098, + "src": "12470:20:35" + }, + "referencedDeclaration": 11098, + "src": "12470:20:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "visibility": "internal" + } + ], + "src": "12392:118:35" + }, + "returnParameters": { + "id": 9947, + "nodeType": "ParameterList", + "parameters": [], + "src": "12518:0:35" + }, + "scope": 10746, + "src": "12355:1043:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11175 + ], + "body": { + "id": 10107, + "nodeType": "Block", + "src": "13510:615:35", + "statements": [ + { + "assignments": [ + 10049 + ], + "declarations": [ + { + "constant": false, + "id": 10049, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "13528:18:35", + "nodeType": "VariableDeclaration", + "scope": 10107, + "src": "13520:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13520:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10054, + "initialValue": { + "expression": { + "baseExpression": { + "id": 10050, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "13549:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10052, + "indexExpression": { + "id": 10051, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10045, + "src": "13570:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13549:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "id": 10053, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13586:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "13549:47:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13520:76:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10056, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10049, + "src": "13631:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10055, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "13606:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13606:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10058, + "nodeType": "ExpressionStatement", + "src": "13606:44:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10060, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10049, + "src": "13690:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10059, + "name": "_checkCollectionNotSubscribed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9442, + "src": "13660:29:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13660:49:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10062, + "nodeType": "ExpressionStatement", + "src": "13660:49:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10064, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10045, + "src": "13748:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10063, + "name": "_checkProtectedDataNotRented", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "13719:28:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 10065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13719:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10066, + "nodeType": "ExpressionStatement", + "src": "13719:44:35" + }, + { + "expression": { + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "13774:43:35", + "subExpression": { + "baseExpression": { + "id": 10067, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "13781:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10069, + "indexExpression": { + "id": 10068, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10045, + "src": "13802:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13781:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10071, + "nodeType": "ExpressionStatement", + "src": "13774:43:35" + }, + { + "expression": { + "id": 10077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 10072, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "13827:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 10074, + "indexExpression": { + "id": 10073, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10049, + "src": "13845:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13827:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "id": 10075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "13865:4:35", + "memberName": "size", + "nodeType": "MemberAccess", + "referencedDeclaration": 11264, + "src": "13827:42:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 10076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13873:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13827:47:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10078, + "nodeType": "ExpressionStatement", + "src": "13827:47:35" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 10084, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "13946:4:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + ], + "id": 10083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13938:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10082, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13938:7:35", + "typeDescriptions": {} + } + }, + "id": 10085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13938:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 10086, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13965:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13969:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "13965:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 10092, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10045, + "src": "14005:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13997:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 10090, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "13997:7:35", + "typeDescriptions": {} + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13997:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13989:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 10088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13989:7:35", + "typeDescriptions": {} + } + }, + "id": 10094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13989:32:35", + "tryCall": false, + "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": 10079, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "13884:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 10081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13908:16:35", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11593, + "src": "13884:40:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 10095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13884:147:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10096, + "nodeType": "ExpressionStatement", + "src": "13884:147:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10098, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10045, + "src": "14068:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 10099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14084:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 10100, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10049, + "src": "14087:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14115:1:35", + "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": 10102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14107:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14107:7:35", + "typeDescriptions": {} + } + }, + "id": 10104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14107:10:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10097, + "name": "ProtectedDataTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11150, + "src": "14046:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 10105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14046:72:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10106, + "nodeType": "EmitStatement", + "src": "14041:77:35" + } + ] + }, + "documentation": { + "id": 10043, + "nodeType": "StructuredDocumentation", + "src": "13404:27:35", + "text": "@inheritdoc ICollection" + }, + "functionSelector": "d0b06c66", + "id": 10108, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataFromCollection", + "nameLocation": "13445:33:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10045, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "13487:14:35", + "nodeType": "VariableDeclaration", + "scope": 10108, + "src": "13479:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13479:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "13478:24:35" + }, + "returnParameters": { + "id": 10047, + "nodeType": "ParameterList", + "parameters": [], + "src": "13510:0:35" + }, + "scope": 10746, + "src": "13436:689:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11873 + ], + "body": { + "id": 10126, + "nodeType": "Block", + "src": "14568:99:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10120, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "14608:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 10121, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14628:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14632:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "14628:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10123, + "name": "_subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10114, + "src": "14640:19:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + ], + "id": 10119, + "name": "_subscribeToCollection", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10222, + "src": "14585:22:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_struct$_SubscriptionParams_$11831_memory_ptr_$returns$_t_uint48_$", + "typeString": "function (uint256,address,struct ISubscription.SubscriptionParams memory) returns (uint48)" + } + }, + "id": 10124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14585:75:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 10118, + "id": 10125, + "nodeType": "Return", + "src": "14578:82:35" + } + ] + }, + "documentation": { + "id": 10109, + "nodeType": "StructuredDocumentation", + "src": "14374:29:35", + "text": "@inheritdoc ISubscription" + }, + "functionSelector": "d3c52389", + "id": 10127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subscribeToCollection", + "nameLocation": "14417:21:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10111, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "14456:18:35", + "nodeType": "VariableDeclaration", + "scope": 10127, + "src": "14448:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14448:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10114, + "mutability": "mutable", + "name": "_subscriptionParams", + "nameLocation": "14510:19:35", + "nodeType": "VariableDeclaration", + "scope": 10127, + "src": "14484:45:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 10113, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10112, + "name": "SubscriptionParams", + "nameLocations": [ + "14484:18:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "14484:18:35" + }, + "referencedDeclaration": 11831, + "src": "14484:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "14438:97:35" + }, + "returnParameters": { + "id": 10118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10117, + "mutability": "mutable", + "name": "endDate", + "nameLocation": "14559:7:35", + "nodeType": "VariableDeclaration", + "scope": 10127, + "src": "14552:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 10116, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14552:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14551:16:35" + }, + "scope": 10746, + "src": "14408:259:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 10221, + "nodeType": "Block", + "src": "14860:1171:35", + "statements": [ + { + "assignments": [ + 10141 + ], + "declarations": [ + { + "constant": false, + "id": 10141, + "mutability": "mutable", + "name": "_collectionDetails", + "nameLocation": "14896:18:35", + "nodeType": "VariableDeclaration", + "scope": 10221, + "src": "14870:44:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails" + }, + "typeName": { + "id": 10140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10139, + "name": "CollectionDetails", + "nameLocations": [ + "14870:17:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11274, + "src": "14870:17:35" + }, + "referencedDeclaration": 11274, + "src": "14870:17:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10145, + "initialValue": { + "baseExpression": { + "id": 10142, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "14917:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 10144, + "indexExpression": { + "id": 10143, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10129, + "src": "14935:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14917:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14870:84:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 10158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10146, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "14981:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15000:18:35", + "memberName": "subscriptionParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11269, + "src": "14981:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage", + "typeString": "struct ISubscription.SubscriptionParams storage ref" + } + }, + "id": 10148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15019:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11828, + "src": "14981:43:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 10149, + "name": "_subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10134, + "src": "15028:19:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + }, + "id": 10150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15048:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11828, + "src": "15028:25:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "14981:72:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "id": 10157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10152, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "15069:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10153, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15088:18:35", + "memberName": "subscriptionParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11269, + "src": "15069:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage", + "typeString": "struct ISubscription.SubscriptionParams storage ref" + } + }, + "id": 10154, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15107:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11830, + "src": "15069:46:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 10155, + "name": "_subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10134, + "src": "15119:19:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + }, + "id": 10156, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15139:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11830, + "src": "15119:28:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "src": "15069:78:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14981:166:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10165, + "nodeType": "IfStatement", + "src": "14964:292:35", + "trueBody": { + "id": 10164, + "nodeType": "Block", + "src": "15158:98:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10160, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10129, + "src": "15205:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10161, + "name": "_subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10134, + "src": "15225:19:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams memory" + } + ], + "id": 10159, + "name": "InvalidSubscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11825, + "src": "15179:25:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_struct$_SubscriptionParams_$11831_memory_ptr_$returns$__$", + "typeString": "function (uint256,struct ISubscription.SubscriptionParams memory) pure" + } + }, + "id": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15179:66:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10163, + "nodeType": "RevertStatement", + "src": "15172:73:35" + } + ] + } + }, + { + "expression": { + "id": 10179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10166, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10137, + "src": "15490:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 10169, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "15507:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 10170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15513:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "15507:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15500:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10167, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "15500:6:35", + "typeDescriptions": {} + } + }, + "id": 10171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15500:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 10174, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "15533:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15552:18:35", + "memberName": "subscriptionParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11269, + "src": "15533:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage", + "typeString": "struct ISubscription.SubscriptionParams storage ref" + } + }, + "id": 10176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15571:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11830, + "src": "15533:46:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + ], + "id": 10173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15526:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10172, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "15526:6:35", + "typeDescriptions": {} + } + }, + "id": 10177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15526:54:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "15500:80:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "15490:90:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 10180, + "nodeType": "ExpressionStatement", + "src": "15490:90:35" + }, + { + "expression": { + "id": 10187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 10181, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "15590:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10184, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15609:11:35", + "memberName": "subscribers", + "nodeType": "MemberAccess", + "referencedDeclaration": 11273, + "src": "15590:30:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + } + }, + "id": 10185, + "indexExpression": { + "id": 10183, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10131, + "src": "15621:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15590:39:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10186, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10137, + "src": "15632:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "15590:49:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 10188, + "nodeType": "ExpressionStatement", + "src": "15590:49:35" + }, + { + "expression": { + "id": 10201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10189, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "15649:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "15668:26:35", + "memberName": "lastSubscriptionExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11266, + "src": "15649:45:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 10196, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10137, + "src": "15726:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "expression": { + "id": 10197, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "15735:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15754:26:35", + "memberName": "lastSubscriptionExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11266, + "src": "15735:45:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "expression": { + "id": 10194, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "15717:4:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$7183_$", + "typeString": "type(library Math)" + } + }, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15722:3:35", + "memberName": "max", + "nodeType": "MemberAccess", + "referencedDeclaration": 5870, + "src": "15717:8:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15717:64:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15697:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10192, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "15697:6:35", + "typeDescriptions": {} + } + }, + "id": 10200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15697:94:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "15649:142:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 10202, + "nodeType": "ExpressionStatement", + "src": "15649:142:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10206, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10131, + "src": "15841:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 10208, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10129, + "src": "15870:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10207, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "15862:7:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 10209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15862:27:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 10210, + "name": "_collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "15903:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage_ptr", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage pointer" + } + }, + "id": 10211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15922:18:35", + "memberName": "subscriptionParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11269, + "src": "15903:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage", + "typeString": "struct ISubscription.SubscriptionParams storage ref" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15941:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11828, + "src": "15903:43:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "expression": { + "id": 10203, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "15801:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 10205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15815:12:35", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11381, + "src": "15801:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 10213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15801:155:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10214, + "nodeType": "ExpressionStatement", + "src": "15801:155:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10216, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10129, + "src": "15987:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10217, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10131, + "src": "16007:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10218, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10137, + "src": "16016:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 10215, + "name": "NewSubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11848, + "src": "15971:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint48_$returns$__$", + "typeString": "function (uint256,address,uint48)" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15971:53:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10220, + "nodeType": "EmitStatement", + "src": "15966:58:35" + } + ] + }, + "id": 10222, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_subscribeToCollection", + "nameLocation": "14682:22:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10129, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "14722:18:35", + "nodeType": "VariableDeclaration", + "scope": 10222, + "src": "14714:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14714:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10131, + "mutability": "mutable", + "name": "spender", + "nameLocation": "14758:7:35", + "nodeType": "VariableDeclaration", + "scope": 10222, + "src": "14750:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14750:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10134, + "mutability": "mutable", + "name": "_subscriptionParams", + "nameLocation": "14801:19:35", + "nodeType": "VariableDeclaration", + "scope": 10222, + "src": "14775:45:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 10133, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10132, + "name": "SubscriptionParams", + "nameLocations": [ + "14775:18:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "14775:18:35" + }, + "referencedDeclaration": 11831, + "src": "14775:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "14704:122:35" + }, + "returnParameters": { + "id": 10138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10137, + "mutability": "mutable", + "name": "endDate", + "nameLocation": "14851:7:35", + "nodeType": "VariableDeclaration", + "scope": 10222, + "src": "14844:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 10136, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14844:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14843:16:35" + }, + "scope": 10746, + "src": "14673:1358:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "baseFunctions": [ + 11879 + ], + "body": { + "id": 10259, + "nodeType": "Block", + "src": "16142:424:35", + "statements": [ + { + "assignments": [ + 10230 + ], + "declarations": [ + { + "constant": false, + "id": 10230, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "16181:21:35", + "nodeType": "VariableDeclaration", + "scope": 10259, + "src": "16152:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10229, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10228, + "name": "ProtectedDataDetails", + "nameLocations": [ + "16152:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "16152:20:35" + }, + "referencedDeclaration": 11295, + "src": "16152:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10234, + "initialValue": { + "baseExpression": { + "id": 10231, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "16205:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10233, + "indexExpression": { + "id": 10232, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10225, + "src": "16226:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16205:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16152:89:35" + }, + { + "assignments": [ + 10236 + ], + "declarations": [ + { + "constant": false, + "id": 10236, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "16259:18:35", + "nodeType": "VariableDeclaration", + "scope": 10259, + "src": "16251:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16251:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10239, + "initialValue": { + "expression": { + "id": 10237, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10230, + "src": "16280:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16302:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "16280:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16251:61:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10241, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10236, + "src": "16347:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10240, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "16322:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16322:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10243, + "nodeType": "ExpressionStatement", + "src": "16322:44:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10245, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10225, + "src": "16406:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10244, + "name": "_checkProtectedDataNotForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9478, + "src": "16376:29:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 10246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16376:45:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10247, + "nodeType": "ExpressionStatement", + "src": "16376:45:35" + }, + { + "expression": { + "id": 10252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10248, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10230, + "src": "16432:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "16454:14:35", + "memberName": "inSubscription", + "nodeType": "MemberAccess", + "referencedDeclaration": 11284, + "src": "16432:36:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 10251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16471:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "16432:43:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10253, + "nodeType": "ExpressionStatement", + "src": "16432:43:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10255, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10236, + "src": "16524:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10256, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10225, + "src": "16544:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10254, + "name": "ProtectedDataAddedForSubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11855, + "src": "16490:33:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 10257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16490:69:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10258, + "nodeType": "EmitStatement", + "src": "16485:74:35" + } + ] + }, + "documentation": { + "id": 10223, + "nodeType": "StructuredDocumentation", + "src": "16037:29:35", + "text": "@inheritdoc ISubscription" + }, + "functionSelector": "fe4c31a4", + "id": 10260, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setProtectedDataToSubscription", + "nameLocation": "16080:30:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10225, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "16119:14:35", + "nodeType": "VariableDeclaration", + "scope": 10260, + "src": "16111:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16111:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16110:24:35" + }, + "returnParameters": { + "id": 10227, + "nodeType": "ParameterList", + "parameters": [], + "src": "16142:0:35" + }, + "scope": 10746, + "src": "16071:495:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11885 + ], + "body": { + "id": 10297, + "nodeType": "Block", + "src": "16682:432:35", + "statements": [ + { + "assignments": [ + 10268 + ], + "declarations": [ + { + "constant": false, + "id": 10268, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "16721:21:35", + "nodeType": "VariableDeclaration", + "scope": 10297, + "src": "16692:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10267, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10266, + "name": "ProtectedDataDetails", + "nameLocations": [ + "16692:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "16692:20:35" + }, + "referencedDeclaration": 11295, + "src": "16692:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10272, + "initialValue": { + "baseExpression": { + "id": 10269, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "16745:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10271, + "indexExpression": { + "id": 10270, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10263, + "src": "16766:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16745:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16692:89:35" + }, + { + "assignments": [ + 10274 + ], + "declarations": [ + { + "constant": false, + "id": 10274, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "16799:18:35", + "nodeType": "VariableDeclaration", + "scope": 10297, + "src": "16791:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16791:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10277, + "initialValue": { + "expression": { + "id": 10275, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10268, + "src": "16820:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10276, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16842:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "16820:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16791:61:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10279, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10274, + "src": "16887:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10278, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "16862:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16862:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10281, + "nodeType": "ExpressionStatement", + "src": "16862:44:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10283, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10274, + "src": "16946:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10282, + "name": "_checkCollectionNotSubscribed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9442, + "src": "16916:29:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16916:49:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10285, + "nodeType": "ExpressionStatement", + "src": "16916:49:35" + }, + { + "expression": { + "id": 10290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10286, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10268, + "src": "16976:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10288, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "16998:14:35", + "memberName": "inSubscription", + "nodeType": "MemberAccess", + "referencedDeclaration": 11284, + "src": "16976:36:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 10289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17015:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "16976:44:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10291, + "nodeType": "ExpressionStatement", + "src": "16976:44:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10293, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10274, + "src": "17072:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10294, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10263, + "src": "17092:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10292, + "name": "ProtectedDataRemovedFromSubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11862, + "src": "17035:36:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17035:72:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10296, + "nodeType": "EmitStatement", + "src": "17030:77:35" + } + ] + }, + "documentation": { + "id": 10261, + "nodeType": "StructuredDocumentation", + "src": "16572:29:35", + "text": "@inheritdoc ISubscription" + }, + "functionSelector": "72d570ce", + "id": 10298, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataFromSubscription", + "nameLocation": "16615:35:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10263, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "16659:14:35", + "nodeType": "VariableDeclaration", + "scope": 10298, + "src": "16651:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10262, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16651:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16650:24:35" + }, + "returnParameters": { + "id": 10265, + "nodeType": "ParameterList", + "parameters": [], + "src": "16682:0:35" + }, + "scope": 10746, + "src": "16606:508:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11894 + ], + "body": { + "id": 10323, + "nodeType": "Block", + "src": "17291:227:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10308, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10301, + "src": "17326:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10307, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "17301:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17301:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10310, + "nodeType": "ExpressionStatement", + "src": "17301:44:35" + }, + { + "expression": { + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 10311, + "name": "collectionDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9299, + "src": "17356:17:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CollectionDetails_$11274_storage_$", + "typeString": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails storage ref)" + } + }, + "id": 10313, + "indexExpression": { + "id": 10312, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10301, + "src": "17374:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17356:37:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CollectionDetails_$11274_storage", + "typeString": "struct IDataProtectorSharing.CollectionDetails storage ref" + } + }, + "id": 10314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "17394:18:35", + "memberName": "subscriptionParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11269, + "src": "17356:56:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage", + "typeString": "struct ISubscription.SubscriptionParams storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10315, + "name": "_subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "17415:19:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_calldata_ptr", + "typeString": "struct ISubscription.SubscriptionParams calldata" + } + }, + "src": "17356:78:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage", + "typeString": "struct ISubscription.SubscriptionParams storage ref" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "17356:78:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10319, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10301, + "src": "17471:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10320, + "name": "_subscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "17491:19:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_calldata_ptr", + "typeString": "struct ISubscription.SubscriptionParams calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_calldata_ptr", + "typeString": "struct ISubscription.SubscriptionParams calldata" + } + ], + "id": 10318, + "name": "NewSubscriptionParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11839, + "src": "17449:21:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_struct$_SubscriptionParams_$11831_memory_ptr_$returns$__$", + "typeString": "function (uint256,struct ISubscription.SubscriptionParams memory)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17449:62:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "17444:67:35" + } + ] + }, + "documentation": { + "id": 10299, + "nodeType": "StructuredDocumentation", + "src": "17120:29:35", + "text": "@inheritdoc ISubscription" + }, + "functionSelector": "ff19d9df", + "id": 10324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setSubscriptionParams", + "nameLocation": "17163:21:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10301, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "17202:18:35", + "nodeType": "VariableDeclaration", + "scope": 10324, + "src": "17194:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17194:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "mutability": "mutable", + "name": "_subscriptionParams", + "nameLocation": "17258:19:35", + "nodeType": "VariableDeclaration", + "scope": 10324, + "src": "17230:47:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_calldata_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 10303, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10302, + "name": "SubscriptionParams", + "nameLocations": [ + "17230:18:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "17230:18:35" + }, + "referencedDeclaration": 11831, + "src": "17230:18:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "17184:99:35" + }, + "returnParameters": { + "id": 10306, + "nodeType": "ParameterList", + "parameters": [], + "src": "17291:0:35" + }, + "scope": 10746, + "src": "17154:364:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11705 + ], + "body": { + "id": 10342, + "nodeType": "Block", + "src": "17937:86:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10336, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10327, + "src": "17973:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 10337, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "17989:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17993:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "17989:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10339, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10330, + "src": "18001:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + ], + "id": 10335, + "name": "_rentProtectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10452, + "src": "17954:18:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_RentingParams_$11666_memory_ptr_$returns$_t_uint48_$", + "typeString": "function (address,address,struct IRental.RentingParams memory) returns (uint48)" + } + }, + "id": 10340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17954:62:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 10334, + "id": 10341, + "nodeType": "Return", + "src": "17947:69:35" + } + ] + }, + "documentation": { + "id": 10325, + "nodeType": "StructuredDocumentation", + "src": "17767:23:35", + "text": "@inheritdoc IRental" + }, + "functionSelector": "9a82c2bd", + "id": 10343, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "rentProtectedData", + "nameLocation": "17804:17:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10327, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "17839:14:35", + "nodeType": "VariableDeclaration", + "scope": 10343, + "src": "17831:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17831:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10330, + "mutability": "mutable", + "name": "_rentingParams", + "nameLocation": "17884:14:35", + "nodeType": "VariableDeclaration", + "scope": 10343, + "src": "17863:35:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 10329, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10328, + "name": "RentingParams", + "nameLocations": [ + "17863:13:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "17863:13:35" + }, + "referencedDeclaration": 11666, + "src": "17863:13:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "17821:83:35" + }, + "returnParameters": { + "id": 10334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10333, + "mutability": "mutable", + "name": "endDate", + "nameLocation": "17928:7:35", + "nodeType": "VariableDeclaration", + "scope": 10343, + "src": "17921:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 10332, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "17921:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "17920:16:35" + }, + "scope": 10746, + "src": "17795:228:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 10451, + "nodeType": "Block", + "src": "18198:1306:35", + "statements": [ + { + "assignments": [ + 10357 + ], + "declarations": [ + { + "constant": false, + "id": 10357, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "18237:21:35", + "nodeType": "VariableDeclaration", + "scope": 10451, + "src": "18208:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10356, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10355, + "name": "ProtectedDataDetails", + "nameLocations": [ + "18208:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "18208:20:35" + }, + "referencedDeclaration": 11295, + "src": "18208:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10361, + "initialValue": { + "baseExpression": { + "id": 10358, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "18261:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10360, + "indexExpression": { + "id": 10359, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10345, + "src": "18282:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18261:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18208:89:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "id": 10366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10362, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "18311:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10363, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18333:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "18311:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10364, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18347:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "18311:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 10365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18359:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18311:49:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10372, + "nodeType": "IfStatement", + "src": "18307:138:35", + "trueBody": { + "id": 10371, + "nodeType": "Block", + "src": "18362:83:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10368, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10345, + "src": "18419:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10367, + "name": "ProtectedDataNotAvailableForRenting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11647, + "src": "18383:35:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", + "typeString": "function (address) pure" + } + }, + "id": 10369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18383:51:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10370, + "nodeType": "RevertStatement", + "src": "18376:58:35" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 10385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "id": 10378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10373, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "18471:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10374, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18493:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "18471:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10375, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18507:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "18471:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 10376, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "18519:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + }, + "id": 10377, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18534:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "18519:23:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "src": "18471:71:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "id": 10384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10379, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "18558:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18580:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "18558:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18594:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11663, + "src": "18558:41:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 10382, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "18603:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + }, + "id": 10383, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18618:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11663, + "src": "18603:20:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "18558:65:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18471:152:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10392, + "nodeType": "IfStatement", + "src": "18454:264:35", + "trueBody": { + "id": 10391, + "nodeType": "Block", + "src": "18634:84:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10387, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10345, + "src": "18676:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10388, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "18692:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams memory" + } + ], + "id": 10386, + "name": "InvalidRentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11660, + "src": "18655:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_struct$_RentingParams_$11666_memory_ptr_$returns$__$", + "typeString": "function (address,struct IRental.RentingParams memory) pure" + } + }, + "id": 10389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18655:52:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10390, + "nodeType": "RevertStatement", + "src": "18648:59:35" + } + ] + } + }, + { + "expression": { + "id": 10406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10393, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10353, + "src": "18728:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "id": 10405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 10396, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "18745:5:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 10397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18751:9:35", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "18745:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18738:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10394, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "18738:6:35", + "typeDescriptions": {} + } + }, + "id": 10398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18738:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 10401, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "18771:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10402, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18793:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "18771:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10403, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18807:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "18771:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + ], + "id": 10400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18764:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10399, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "18764:6:35", + "typeDescriptions": {} + } + }, + "id": 10404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18764:52:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "18738:78:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "18728:88:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 10407, + "nodeType": "ExpressionStatement", + "src": "18728:88:35" + }, + { + "expression": { + "id": 10414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 10408, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "18826:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18848:7:35", + "memberName": "renters", + "nodeType": "MemberAccess", + "referencedDeclaration": 11291, + "src": "18826:29:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + } + }, + "id": 10412, + "indexExpression": { + "id": 10410, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10347, + "src": "18856:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18826:38:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10413, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10353, + "src": "18867:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "18826:48:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 10415, + "nodeType": "ExpressionStatement", + "src": "18826:48:35" + }, + { + "expression": { + "id": 10428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10416, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "19091:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10418, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "19113:20:35", + "memberName": "lastRentalExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11282, + "src": "19091:42:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "id": 10423, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10353, + "src": "19165:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + { + "expression": { + "id": 10424, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "19174:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10425, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19196:20:35", + "memberName": "lastRentalExpiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11282, + "src": "19174:42:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "expression": { + "id": 10421, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7183, + "src": "19156:4:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$7183_$", + "typeString": "type(library Math)" + } + }, + "id": 10422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19161:3:35", + "memberName": "max", + "nodeType": "MemberAccess", + "referencedDeclaration": 5870, + "src": "19156:8:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19156:61:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19136:6:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 10419, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "19136:6:35", + "typeDescriptions": {} + } + }, + "id": 10427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19136:91:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "19091:136:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "id": 10429, + "nodeType": "ExpressionStatement", + "src": "19091:136:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10433, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10347, + "src": "19278:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 10435, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "19307:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19329:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "19307:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10434, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "19299:7:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 10437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19299:41:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 10438, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "19354:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10439, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19376:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "19354:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10440, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19390:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11663, + "src": "19354:41:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "expression": { + "id": 10430, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "19238:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 10432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19252:12:35", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11381, + "src": "19238:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 10441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19238:167:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10442, + "nodeType": "ExpressionStatement", + "src": "19238:167:35" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 10444, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10357, + "src": "19430:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10445, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19452:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "19430:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10446, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10345, + "src": "19464:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10447, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10347, + "src": "19480:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10448, + "name": "endDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10353, + "src": "19489:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + ], + "id": 10443, + "name": "NewRental", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11694, + "src": "19420:9:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint48_$returns$__$", + "typeString": "function (uint256,address,address,uint48)" + } + }, + "id": 10449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19420:77:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10450, + "nodeType": "EmitStatement", + "src": "19415:82:35" + } + ] + }, + "id": 10452, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_rentProtectedData", + "nameLocation": "18038:18:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10345, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "18074:14:35", + "nodeType": "VariableDeclaration", + "scope": 10452, + "src": "18066:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18066:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10347, + "mutability": "mutable", + "name": "spender", + "nameLocation": "18106:7:35", + "nodeType": "VariableDeclaration", + "scope": 10452, + "src": "18098:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18098:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10350, + "mutability": "mutable", + "name": "_rentingParams", + "nameLocation": "18144:14:35", + "nodeType": "VariableDeclaration", + "scope": 10452, + "src": "18123:35:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 10349, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10348, + "name": "RentingParams", + "nameLocations": [ + "18123:13:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "18123:13:35" + }, + "referencedDeclaration": 11666, + "src": "18123:13:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "18056:108:35" + }, + "returnParameters": { + "id": 10354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10353, + "mutability": "mutable", + "name": "endDate", + "nameLocation": "18189:7:35", + "nodeType": "VariableDeclaration", + "scope": 10452, + "src": "18182:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 10352, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "18182:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "18181:16:35" + }, + "scope": 10746, + "src": "18029:1475:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "baseFunctions": [ + 11714 + ], + "body": { + "id": 10504, + "nodeType": "Block", + "src": "19665:559:35", + "statements": [ + { + "assignments": [ + 10463 + ], + "declarations": [ + { + "constant": false, + "id": 10463, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "19704:21:35", + "nodeType": "VariableDeclaration", + "scope": 10504, + "src": "19675:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10461, + "name": "ProtectedDataDetails", + "nameLocations": [ + "19675:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "19675:20:35" + }, + "referencedDeclaration": 11295, + "src": "19675:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10467, + "initialValue": { + "baseExpression": { + "id": 10464, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "19728:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10466, + "indexExpression": { + "id": 10465, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10455, + "src": "19749:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19728:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19675:89:35" + }, + { + "assignments": [ + 10469 + ], + "declarations": [ + { + "constant": false, + "id": 10469, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "19782:18:35", + "nodeType": "VariableDeclaration", + "scope": 10504, + "src": "19774:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19774:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10472, + "initialValue": { + "expression": { + "id": 10470, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10463, + "src": "19803:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19825:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "19803:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19774:61:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10474, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10469, + "src": "19870:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10473, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "19845:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19845:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10476, + "nodeType": "ExpressionStatement", + "src": "19845:44:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10478, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10455, + "src": "19929:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10477, + "name": "_checkProtectedDataNotForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9478, + "src": "19899:29:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 10479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19899:45:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10480, + "nodeType": "ExpressionStatement", + "src": "19899:45:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "id": 10484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 10481, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10458, + "src": "19959:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams calldata" + } + }, + "id": 10482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19974:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "19959:23:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 10483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19986:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19959:28:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10491, + "nodeType": "IfStatement", + "src": "19955:106:35", + "trueBody": { + "id": 10490, + "nodeType": "Block", + "src": "19989:72:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 10486, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10458, + "src": "20026:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams calldata" + } + }, + "id": 10487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20041:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "20026:23:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + ], + "id": 10485, + "name": "DurationInvalid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11652, + "src": "20010:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint48_$returns$__$", + "typeString": "function (uint48) pure" + } + }, + "id": 10488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20010:40:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10489, + "nodeType": "RevertStatement", + "src": "20003:47:35" + } + ] + } + }, + { + "expression": { + "id": 10496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 10492, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10463, + "src": "20070:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "20092:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "20070:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10495, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10458, + "src": "20108:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams calldata" + } + }, + "src": "20070:52:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10497, + "nodeType": "ExpressionStatement", + "src": "20070:52:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10499, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10469, + "src": "20166:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10500, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10455, + "src": "20186:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10501, + "name": "_rentingParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10458, + "src": "20202:14:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams calldata" + } + ], + "id": 10498, + "name": "ProtectedDataAddedForRenting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "20137:28:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_struct$_RentingParams_$11666_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,struct IRental.RentingParams memory)" + } + }, + "id": 10502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20137:80:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10503, + "nodeType": "EmitStatement", + "src": "20132:85:35" + } + ] + }, + "documentation": { + "id": 10453, + "nodeType": "StructuredDocumentation", + "src": "19510:23:35", + "text": "@inheritdoc IRental" + }, + "functionSelector": "ff811f60", + "id": 10505, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setProtectedDataToRenting", + "nameLocation": "19547:25:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10455, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "19590:14:35", + "nodeType": "VariableDeclaration", + "scope": 10505, + "src": "19582:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19582:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10458, + "mutability": "mutable", + "name": "_rentingParams", + "nameLocation": "19637:14:35", + "nodeType": "VariableDeclaration", + "scope": 10505, + "src": "19614:37:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 10457, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10456, + "name": "RentingParams", + "nameLocations": [ + "19614:13:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "19614:13:35" + }, + "referencedDeclaration": 11666, + "src": "19614:13:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "19572:85:35" + }, + "returnParameters": { + "id": 10460, + "nodeType": "ParameterList", + "parameters": [], + "src": "19665:0:35" + }, + "scope": 10746, + "src": "19538:686:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11720 + ], + "body": { + "id": 10540, + "nodeType": "Block", + "src": "20329:372:35", + "statements": [ + { + "assignments": [ + 10513 + ], + "declarations": [ + { + "constant": false, + "id": 10513, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "20368:21:35", + "nodeType": "VariableDeclaration", + "scope": 10540, + "src": "20339:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10512, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10511, + "name": "ProtectedDataDetails", + "nameLocations": [ + "20339:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "20339:20:35" + }, + "referencedDeclaration": 11295, + "src": "20339:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10517, + "initialValue": { + "baseExpression": { + "id": 10514, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "20392:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10516, + "indexExpression": { + "id": 10515, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10508, + "src": "20413:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20392:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20339:89:35" + }, + { + "assignments": [ + 10519 + ], + "declarations": [ + { + "constant": false, + "id": 10519, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "20446:18:35", + "nodeType": "VariableDeclaration", + "scope": 10540, + "src": "20438:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20438:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10522, + "initialValue": { + "expression": { + "id": 10520, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "20467:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10521, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20489:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "20467:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20438:61:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10524, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10519, + "src": "20534:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10523, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "20509:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20509:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10526, + "nodeType": "ExpressionStatement", + "src": "20509:44:35" + }, + { + "expression": { + "id": 10533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 10527, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10513, + "src": "20564:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10530, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20586:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "20564:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10531, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "20600:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "20564:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 10532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20611:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20564:48:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "id": 10534, + "nodeType": "ExpressionStatement", + "src": "20564:48:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10536, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10519, + "src": "20659:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10537, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10508, + "src": "20679:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10535, + "name": "ProtectedDataRemovedFromRenting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11683, + "src": "20627:31:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 10538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20627:67:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10539, + "nodeType": "EmitStatement", + "src": "20622:72:35" + } + ] + }, + "documentation": { + "id": 10506, + "nodeType": "StructuredDocumentation", + "src": "20230:23:35", + "text": "@inheritdoc IRental" + }, + "functionSelector": "185e4e8d", + "id": 10541, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataFromRenting", + "nameLocation": "20267:30:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10508, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "20306:14:35", + "nodeType": "VariableDeclaration", + "scope": 10541, + "src": "20298:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20298:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "20297:24:35" + }, + "returnParameters": { + "id": 10510, + "nodeType": "ParameterList", + "parameters": [], + "src": "20329:0:35" + }, + "scope": 10746, + "src": "20258:443:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11795 + ], + "body": { + "id": 10559, + "nodeType": "Block", + "src": "21061:82:35", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10552, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10544, + "src": "21096:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 10553, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "21112:3:35", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21116:6:35", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "21112:10:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10555, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10546, + "src": "21124:3:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10556, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10548, + "src": "21129:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "id": 10551, + "name": "_buyProtectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10637, + "src": "21078:17:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint72_$returns$__$", + "typeString": "function (address,address,address,uint72)" + } + }, + "id": 10557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21078:58:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 10550, + "id": 10558, + "nodeType": "Return", + "src": "21071:65:35" + } + ] + }, + "documentation": { + "id": 10542, + "nodeType": "StructuredDocumentation", + "src": "20950:21:35", + "text": "@inheritdoc ISale" + }, + "functionSelector": "53574f9e", + "id": 10560, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyProtectedData", + "nameLocation": "20985:16:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10549, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10544, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "21010:14:35", + "nodeType": "VariableDeclaration", + "scope": 10560, + "src": "21002:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21002:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10546, + "mutability": "mutable", + "name": "_to", + "nameLocation": "21034:3:35", + "nodeType": "VariableDeclaration", + "scope": 10560, + "src": "21026:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21026:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10548, + "mutability": "mutable", + "name": "_price", + "nameLocation": "21046:6:35", + "nodeType": "VariableDeclaration", + "scope": 10560, + "src": "21039:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 10547, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "21039:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "21001:52:35" + }, + "returnParameters": { + "id": 10550, + "nodeType": "ParameterList", + "parameters": [], + "src": "21061:0:35" + }, + "scope": 10746, + "src": "20976:167:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 10636, + "nodeType": "Block", + "src": "21291:771:35", + "statements": [ + { + "assignments": [ + 10573 + ], + "declarations": [ + { + "constant": false, + "id": 10573, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "21330:21:35", + "nodeType": "VariableDeclaration", + "scope": 10636, + "src": "21301:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10572, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10571, + "name": "ProtectedDataDetails", + "nameLocations": [ + "21301:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "21301:20:35" + }, + "referencedDeclaration": 11295, + "src": "21301:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10577, + "initialValue": { + "baseExpression": { + "id": 10574, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "21354:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10576, + "indexExpression": { + "id": 10575, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10562, + "src": "21375:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21354:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21301:89:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10579, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10562, + "src": "21427:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10578, + "name": "_checkProtectedDataForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "21400:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 10580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21400:42:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10581, + "nodeType": "ExpressionStatement", + "src": "21400:42:35" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "id": 10586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10582, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10573, + "src": "21456:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21478:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "21456:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 10584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21492:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11745, + "src": "21456:41:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 10585, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10568, + "src": "21501:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "21456:51:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10593, + "nodeType": "IfStatement", + "src": "21452:136:35", + "trueBody": { + "id": 10592, + "nodeType": "Block", + "src": "21509:79:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10588, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10562, + "src": "21554:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10589, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10568, + "src": "21570:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "id": 10587, + "name": "InvalidPriceForPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11740, + "src": "21530:23:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint72_$returns$__$", + "typeString": "function (address,uint72) pure" + } + }, + "id": 10590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21530:47:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10591, + "nodeType": "RevertStatement", + "src": "21523:54:35" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 10599, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21660:4:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DataProtectorSharing_$10746", + "typeString": "contract DataProtectorSharing" + } + ], + "id": 10598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21652:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21652:7:35", + "typeDescriptions": {} + } + }, + "id": 10600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21652:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10601, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10566, + "src": "21679:3:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 10606, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10562, + "src": "21712:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21704:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 10604, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "21704:7:35", + "typeDescriptions": {} + } + }, + "id": 10607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21704:23:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 10603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21696:7:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 10602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21696:7:35", + "typeDescriptions": {} + } + }, + "id": 10608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21696:32:35", + "tryCall": false, + "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": 10594, + "name": "PROTECTED_DATA_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9283, + "src": "21598:23:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRegistry_$11628", + "typeString": "contract IRegistry" + } + }, + "id": 10596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21622:16:35", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11593, + "src": "21598:40:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 10609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21598:140:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10610, + "nodeType": "ExpressionStatement", + "src": "21598:140:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10614, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10564, + "src": "21788:7:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "expression": { + "id": 10616, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10573, + "src": "21817:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21839:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "21817:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10615, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "21809:7:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 10618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21809:41:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "expression": { + "id": 10619, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10573, + "src": "21864:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10620, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21886:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "21864:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 10621, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21900:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11745, + "src": "21864:41:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "expression": { + "id": 10611, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "21748:13:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 10613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21762:12:35", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11381, + "src": "21748:26:35", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 10622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21748:167:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10623, + "nodeType": "ExpressionStatement", + "src": "21748:167:35" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 10625, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10573, + "src": "21948:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21970:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "21948:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10627, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10566, + "src": "21982:3:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10628, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10562, + "src": "21987:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10624, + "name": "ProtectedDataSold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11771, + "src": "21930:17:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256,address,address)" + } + }, + "id": 10629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21930:72:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10630, + "nodeType": "EmitStatement", + "src": "21925:77:35" + }, + { + "expression": { + "id": 10634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "22012:43:35", + "subExpression": { + "baseExpression": { + "id": 10631, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "22019:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10633, + "indexExpression": { + "id": 10632, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10562, + "src": "22040:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "22019:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10635, + "nodeType": "ExpressionStatement", + "src": "22012:43:35" + } + ] + }, + "id": 10637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_buyProtectedData", + "nameLocation": "21158:17:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10562, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "21193:14:35", + "nodeType": "VariableDeclaration", + "scope": 10637, + "src": "21185:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21185:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10564, + "mutability": "mutable", + "name": "spender", + "nameLocation": "21225:7:35", + "nodeType": "VariableDeclaration", + "scope": 10637, + "src": "21217:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21217:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10566, + "mutability": "mutable", + "name": "_to", + "nameLocation": "21250:3:35", + "nodeType": "VariableDeclaration", + "scope": 10637, + "src": "21242:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21242:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10568, + "mutability": "mutable", + "name": "_price", + "nameLocation": "21270:6:35", + "nodeType": "VariableDeclaration", + "scope": 10637, + "src": "21263:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 10567, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "21263:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "21175:107:35" + }, + "returnParameters": { + "id": 10570, + "nodeType": "ParameterList", + "parameters": [], + "src": "21291:0:35" + }, + "scope": 10746, + "src": "21149:913:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "baseFunctions": [ + 11779 + ], + "body": { + "id": 10708, + "nodeType": "Block", + "src": "22173:810:35", + "statements": [ + { + "assignments": [ + 10647 + ], + "declarations": [ + { + "constant": false, + "id": 10647, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "22212:21:35", + "nodeType": "VariableDeclaration", + "scope": 10708, + "src": "22183:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10646, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10645, + "name": "ProtectedDataDetails", + "nameLocations": [ + "22183:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "22183:20:35" + }, + "referencedDeclaration": 11295, + "src": "22183:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10651, + "initialValue": { + "baseExpression": { + "id": 10648, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "22236:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10650, + "indexExpression": { + "id": 10649, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "22257:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22236:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22183:89:35" + }, + { + "assignments": [ + 10653 + ], + "declarations": [ + { + "constant": false, + "id": 10653, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "22290:18:35", + "nodeType": "VariableDeclaration", + "scope": 10708, + "src": "22282:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22282:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10656, + "initialValue": { + "expression": { + "id": 10654, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10647, + "src": "22311:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22333:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "22311:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22282:61:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10658, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "22378:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10657, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "22353:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22353:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10660, + "nodeType": "ExpressionStatement", + "src": "22353:44:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10662, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "22436:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10661, + "name": "_checkProtectedDataNotRented", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "22407:28:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", + "typeString": "function (address) view" + } + }, + "id": 10663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22407:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10664, + "nodeType": "ExpressionStatement", + "src": "22407:44:35" + }, + { + "condition": { + "expression": { + "id": 10665, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10647, + "src": "22466:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22488:14:35", + "memberName": "inSubscription", + "nodeType": "MemberAccess", + "referencedDeclaration": 11284, + "src": "22466:36:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10673, + "nodeType": "IfStatement", + "src": "22462:146:35", + "trueBody": { + "id": 10672, + "nodeType": "Block", + "src": "22504:104:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10668, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "22562:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10669, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "22582:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10667, + "name": "ProtectedDataAvailableInSubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11817, + "src": "22525:36:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address) pure" + } + }, + "id": 10670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22525:72:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10671, + "nodeType": "RevertStatement", + "src": "22518:79:35" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "id": 10678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 10674, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10647, + "src": "22621:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22643:13:35", + "memberName": "rentingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11287, + "src": "22621:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage", + "typeString": "struct IRental.RentingParams storage ref" + } + }, + "id": 10676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22657:8:35", + "memberName": "duration", + "nodeType": "MemberAccess", + "referencedDeclaration": 11665, + "src": "22621:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 10677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22668:1:35", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22621:48:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10685, + "nodeType": "IfStatement", + "src": "22617:154:35", + "trueBody": { + "id": 10684, + "nodeType": "Block", + "src": "22671:100:35", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 10680, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "22725:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10681, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "22745:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10679, + "name": "ProtectedDataAvailableForRenting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11642, + "src": "22692:32:35", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address) pure" + } + }, + "id": 10682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22692:68:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10683, + "nodeType": "RevertStatement", + "src": "22685:75:35" + } + ] + } + }, + { + "expression": { + "id": 10692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 10686, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10647, + "src": "22780:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10689, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22802:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "22780:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 10690, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "22816:9:35", + "memberName": "isForSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 11743, + "src": "22780:45:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 10691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22828:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "22780:52:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10693, + "nodeType": "ExpressionStatement", + "src": "22780:52:35" + }, + { + "expression": { + "id": 10700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 10694, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10647, + "src": "22842:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22864:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "22842:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 10698, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "22878:5:35", + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 11745, + "src": "22842:41:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 10699, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10642, + "src": "22886:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "22842:50:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "id": 10701, + "nodeType": "ExpressionStatement", + "src": "22842:50:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10703, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10653, + "src": "22933:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10704, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10640, + "src": "22953:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10705, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10642, + "src": "22969:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + ], + "id": 10702, + "name": "ProtectedDataAddedForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11755, + "src": "22907:25:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint72_$returns$__$", + "typeString": "function (uint256,address,uint72)" + } + }, + "id": 10706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22907:69:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10707, + "nodeType": "EmitStatement", + "src": "22902:74:35" + } + ] + }, + "documentation": { + "id": 10638, + "nodeType": "StructuredDocumentation", + "src": "22068:21:35", + "text": "@inheritdoc ISale" + }, + "functionSelector": "dc30b8fc", + "id": 10709, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setProtectedDataForSale", + "nameLocation": "22103:23:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10640, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "22135:14:35", + "nodeType": "VariableDeclaration", + "scope": 10709, + "src": "22127:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22127:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10642, + "mutability": "mutable", + "name": "_price", + "nameLocation": "22158:6:35", + "nodeType": "VariableDeclaration", + "scope": 10709, + "src": "22151:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 10641, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "22151:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "22126:39:35" + }, + "returnParameters": { + "id": 10644, + "nodeType": "ParameterList", + "parameters": [], + "src": "22173:0:35" + }, + "scope": 10746, + "src": "22094:889:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11785 + ], + "body": { + "id": 10744, + "nodeType": "Block", + "src": "23082:374:35", + "statements": [ + { + "assignments": [ + 10717 + ], + "declarations": [ + { + "constant": false, + "id": 10717, + "mutability": "mutable", + "name": "_protectedDataDetails", + "nameLocation": "23121:21:35", + "nodeType": "VariableDeclaration", + "scope": 10744, + "src": "23092:50:35", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + }, + "typeName": { + "id": 10716, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10715, + "name": "ProtectedDataDetails", + "nameLocations": [ + "23092:20:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11295, + "src": "23092:20:35" + }, + "referencedDeclaration": 11295, + "src": "23092:20:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails" + } + }, + "visibility": "internal" + } + ], + "id": 10721, + "initialValue": { + "baseExpression": { + "id": 10718, + "name": "protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9294, + "src": "23145:20:35", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_ProtectedDataDetails_$11295_storage_$", + "typeString": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails storage ref)" + } + }, + "id": 10720, + "indexExpression": { + "id": 10719, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10712, + "src": "23166:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23145:36:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23092:89:35" + }, + { + "assignments": [ + 10723 + ], + "declarations": [ + { + "constant": false, + "id": 10723, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "23199:18:35", + "nodeType": "VariableDeclaration", + "scope": 10744, + "src": "23191:26:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23191:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10726, + "initialValue": { + "expression": { + "id": 10724, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10717, + "src": "23220:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10725, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23242:10:35", + "memberName": "collection", + "nodeType": "MemberAccess", + "referencedDeclaration": 11277, + "src": "23220:32:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23191:61:35" + }, + { + "expression": { + "arguments": [ + { + "id": 10728, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "23287:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10727, + "name": "_checkCollectionOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9374, + "src": "23262:24:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 10729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23262:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10730, + "nodeType": "ExpressionStatement", + "src": "23262:44:35" + }, + { + "expression": { + "id": 10737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 10731, + "name": "_protectedDataDetails", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10717, + "src": "23317:21:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProtectedDataDetails_$11295_storage_ptr", + "typeString": "struct IDataProtectorSharing.ProtectedDataDetails storage pointer" + } + }, + "id": 10734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23339:13:35", + "memberName": "sellingParams", + "nodeType": "MemberAccess", + "referencedDeclaration": 11294, + "src": "23317:35:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage", + "typeString": "struct ISale.SellingParams storage ref" + } + }, + "id": 10735, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "23353:9:35", + "memberName": "isForSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 11743, + "src": "23317:45:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 10736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23365:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "23317:53:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10738, + "nodeType": "ExpressionStatement", + "src": "23317:53:35" + }, + { + "eventCall": { + "arguments": [ + { + "id": 10740, + "name": "_collectionTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10723, + "src": "23414:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10741, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10712, + "src": "23434:14:35", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10739, + "name": "ProtectedDataRemovedFromSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11762, + "src": "23385:28:35", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 10742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23385:64:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10743, + "nodeType": "EmitStatement", + "src": "23380:69:35" + } + ] + }, + "documentation": { + "id": 10710, + "nodeType": "StructuredDocumentation", + "src": "22989:21:35", + "text": "@inheritdoc ISale" + }, + "functionSelector": "01d0b634", + "id": 10745, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataForSale", + "nameLocation": "23024:26:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10712, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "23059:14:35", + "nodeType": "VariableDeclaration", + "scope": 10745, + "src": "23051:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23051:7:35", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "23050:24:35" + }, + "returnParameters": { + "id": 10714, + "nodeType": "ParameterList", + "parameters": [], + "src": "23082:0:35" + }, + "scope": 10746, + "src": "23015:441:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 10747, + "src": "2313:21145:35", + "usedErrors": [ + 379, + 382, + 1954, + 1957, + 2244, + 2249, + 2258, + 2263, + 2268, + 2275, + 2280, + 2285, + 3571, + 3963, + 11131, + 11136, + 11139, + 11223, + 11230, + 11235, + 11240, + 11245, + 11248, + 11635, + 11642, + 11647, + 11652, + 11660, + 11728, + 11733, + 11740, + 11805, + 11810, + 11817, + 11825 + ], + "usedEvents": [ + 387, + 1966, + 1975, + 1984, + 3310, + 3319, + 3328, + 11150, + 11258, + 11676, + 11683, + 11694, + 11755, + 11762, + 11771, + 11839, + 11848, + 11855, + 11862 + ] + } + ], + "src": "1246:22213:35" + }, + "id": 35 + }, + "contracts/ManageOrders.sol": { + "ast": { + "absolutePath": "contracts/ManageOrders.sol", + "exportedSymbols": { + "IPoCo": [ + 11439 + ], + "IexecLibOrders_v5": [ + 11573 + ], + "ManageOrders": [ + 11058 + ] + }, + "id": 11059, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10748, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1246:24:36" + }, + { + "absolutePath": "contracts/interfaces/IPoCo.sol", + "file": "./interfaces/IPoCo.sol", + "id": 10750, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11059, + "sourceUnit": 11574, + "src": "1272:57:36", + "symbolAliases": [ + { + "foreign": { + "id": 10749, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "1280:17:36", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IPoCo.sol", + "file": "./interfaces/IPoCo.sol", + "id": 10752, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11059, + "sourceUnit": 11574, + "src": "1330:45:36", + "symbolAliases": [ + { + "foreign": { + "id": 10751, + "name": "IPoCo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "1338:5:36", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "ManageOrders", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 10753, + "nodeType": "StructuredDocumentation", + "src": "1377:62:36", + "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" + }, + "fullyImplemented": true, + "id": 11058, + "linearizedBaseContracts": [ + 11058 + ], + "name": "ManageOrders", + "nameLocation": "1492:12:36", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 10757, + "libraryName": { + "id": 10754, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1517:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1517:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1511:65:36", + "typeName": { + "id": 10756, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10755, + "name": "IexecLibOrders_v5.OrderOperationEnum", + "nameLocations": [ + "1539:17:36", + "1557:18:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11442, + "src": "1539:36:36" + }, + "referencedDeclaration": 11442, + "src": "1539:36:36", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + } + }, + { + "global": false, + "id": 10761, + "libraryName": { + "id": 10758, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1587:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1587:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1581:55:36", + "typeName": { + "id": 10760, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10759, + "name": "IexecLibOrders_v5.AppOrder", + "nameLocations": [ + "1609:17:36", + "1627:8:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11461, + "src": "1609:26:36" + }, + "referencedDeclaration": 11461, + "src": "1609:26:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + } + } + }, + { + "global": false, + "id": 10765, + "libraryName": { + "id": 10762, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1647:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1647:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1641:62:36", + "typeName": { + "id": 10764, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10763, + "name": "IexecLibOrders_v5.WorkerpoolOrder", + "nameLocations": [ + "1669:17:36", + "1687:15:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "1669:33:36" + }, + "referencedDeclaration": 11503, + "src": "1669:33:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + } + }, + { + "global": false, + "id": 10769, + "libraryName": { + "id": 10766, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1714:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1714:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1708:59:36", + "typeName": { + "id": 10768, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10767, + "name": "IexecLibOrders_v5.DatasetOrder", + "nameLocations": [ + "1736:17:36", + "1754:12:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11480, + "src": "1736:30:36" + }, + "referencedDeclaration": 11480, + "src": "1736:30:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + } + } + }, + { + "global": false, + "id": 10773, + "libraryName": { + "id": 10770, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1778:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1778:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1772:59:36", + "typeName": { + "id": 10772, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10771, + "name": "IexecLibOrders_v5.RequestOrder", + "nameLocations": [ + "1800:17:36", + "1818:12:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11536, + "src": "1800:30:36" + }, + "referencedDeclaration": 11536, + "src": "1800:30:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + } + } + }, + { + "global": false, + "id": 10777, + "libraryName": { + "id": 10774, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1842:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1842:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1836:64:36", + "typeName": { + "id": 10776, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10775, + "name": "IexecLibOrders_v5.AppOrderOperation", + "nameLocations": [ + "1864:17:36", + "1882:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11545, + "src": "1864:35:36" + }, + "referencedDeclaration": 11545, + "src": "1864:35:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrderOperation_$11545_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrderOperation" + } + } + }, + { + "global": false, + "id": 10781, + "libraryName": { + "id": 10778, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1911:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1911:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1905:68:36", + "typeName": { + "id": 10780, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10779, + "name": "IexecLibOrders_v5.DatasetOrderOperation", + "nameLocations": [ + "1933:17:36", + "1951:21:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11554, + "src": "1933:39:36" + }, + "referencedDeclaration": 11554, + "src": "1933:39:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrderOperation_$11554_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrderOperation" + } + } + }, + { + "global": false, + "id": 10785, + "libraryName": { + "id": 10782, + "name": "IexecLibOrders_v5", + "nameLocations": [ + "1984:17:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11573, + "src": "1984:17:36" + }, + "nodeType": "UsingForDirective", + "src": "1978:68:36", + "typeName": { + "id": 10784, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10783, + "name": "IexecLibOrders_v5.RequestOrderOperation", + "nameLocations": [ + "2006:17:36", + "2024:21:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11572, + "src": "2006:39:36" + }, + "referencedDeclaration": 11572, + "src": "2006:39:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation" + } + } + }, + { + "constant": false, + "id": 10788, + "mutability": "immutable", + "name": "POCO_DELEGATE", + "nameLocation": "2158:13:36", + "nodeType": "VariableDeclaration", + "scope": 11058, + "src": "2133:38:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + }, + "typeName": { + "id": 10787, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10786, + "name": "IPoCo", + "nameLocations": [ + "2133:5:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11439, + "src": "2133:5:36" + }, + "referencedDeclaration": 11439, + "src": "2133:5:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 10791, + "mutability": "constant", + "name": "TAG", + "nameLocation": "2203:3:36", + "nodeType": "VariableDeclaration", + "scope": 11058, + "src": "2177:106:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 10789, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2177:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303033", + "id": 10790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2217:66:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "0x0000000000000000000000000000000000000000000000000000000000000003" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 10794, + "mutability": "constant", + "name": "TRUST", + "nameLocation": "2330:5:36", + "nodeType": "VariableDeclaration", + "scope": 11058, + "src": "2304:35:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2304:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 10793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2338:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10796, + "mutability": "mutable", + "name": "_iexecResultStorageProvider", + "nameLocation": "2379:27:36", + "nodeType": "VariableDeclaration", + "scope": 11058, + "src": "2363:43:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 10795, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2363:6:36", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10798, + "mutability": "mutable", + "name": "_iexecResultStorageProxy", + "nameLocation": "2554:24:36", + "nodeType": "VariableDeclaration", + "scope": 11058, + "src": "2538:40:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 10797, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2538:6:36", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10800, + "mutability": "mutable", + "name": "_salt", + "nameLocation": "2600:5:36", + "nodeType": "VariableDeclaration", + "scope": 11058, + "src": "2584:21:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2584:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 10812, + "nodeType": "Block", + "src": "2941:51:36", + "statements": [ + { + "expression": { + "id": 10810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10806, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "2951:13:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10808, + "name": "pocoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10803, + "src": "2973:11:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10807, + "name": "IPoCo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "2967:5:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IPoCo_$11439_$", + "typeString": "type(contract IPoCo)" + } + }, + "id": 10809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2967:18:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "src": "2951:34:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 10811, + "nodeType": "ExpressionStatement", + "src": "2951:34:36" + } + ] + }, + "documentation": { + "id": 10801, + "nodeType": "StructuredDocumentation", + "src": "2855:48:36", + "text": "@custom:oz-upgrades-unsafe-allow constructor" + }, + "id": 10813, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10803, + "mutability": "mutable", + "name": "pocoAddress", + "nameLocation": "2928:11:36", + "nodeType": "VariableDeclaration", + "scope": 10813, + "src": "2920:19:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2920:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2919:21:36" + }, + "returnParameters": { + "id": 10805, + "nodeType": "ParameterList", + "parameters": [], + "src": "2941:0:36" + }, + "scope": 11058, + "src": "2908:84:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10853, + "nodeType": "Block", + "src": "3359:466:36", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10823, + "name": "_appAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10815, + "src": "3473:11:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 10824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3512:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 10827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3544:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 10826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3544:7:36", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 10825, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3539:4:36", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3539:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 10829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3553:3:36", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3539:17:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10830, + "name": "TAG", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10791, + "src": "3579:3:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3625:1:36", + "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": 10832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3617:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3617:7:36", + "typeDescriptions": {} + } + }, + "id": 10834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3617:10:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:1:36", + "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": 10836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3665:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10835, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3665:7:36", + "typeDescriptions": {} + } + }, + "id": 10838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3665:10:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 10841, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3720:4:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ManageOrders_$11058", + "typeString": "contract ManageOrders" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ManageOrders_$11058", + "typeString": "contract ManageOrders" + } + ], + "id": 10840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3712:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10839, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3712:7:36", + "typeDescriptions": {} + } + }, + "id": 10842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3712:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3765:1:36", + "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": 10844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3757:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 10843, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3757:7:36", + "typeDescriptions": {} + } + }, + "id": 10846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3757:10:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3801:1:36", + "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": 10848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "3791:9:36", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 10847, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3795:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 10850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3791:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 10821, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "3423:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3441:8:36", + "memberName": "AppOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 11461, + "src": "3423:26:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_AppOrder_$11461_storage_ptr_$", + "typeString": "type(struct IexecLibOrders_v5.AppOrder storage pointer)" + } + }, + "id": 10851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3468:3:36", + "3502:8:36", + "3531:6:36", + "3574:3:36", + "3600:15:36", + "3645:18:36", + "3693:17:36", + "3751:4:36", + "3785:4:36" + ], + "names": [ + "app", + "appprice", + "volume", + "tag", + "datasetrestrict", + "workerpoolrestrict", + "requesterrestrict", + "salt", + "sign" + ], + "nodeType": "FunctionCall", + "src": "3423:395:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + "functionReturnParameters": 10820, + "id": 10852, + "nodeType": "Return", + "src": "3404:414:36" + } + ] + }, + "id": 10854, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createAppOrder", + "nameLocation": "3250:15:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10815, + "mutability": "mutable", + "name": "_appAddress", + "nameLocation": "3283:11:36", + "nodeType": "VariableDeclaration", + "scope": 10854, + "src": "3275:19:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3275:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3265:35:36" + }, + "returnParameters": { + "id": 10820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10819, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10854, + "src": "3324:33:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + }, + "typeName": { + "id": 10818, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10817, + "name": "IexecLibOrders_v5.AppOrder", + "nameLocations": [ + "3324:17:36", + "3342:8:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11461, + "src": "3324:26:36" + }, + "referencedDeclaration": 11461, + "src": "3324:26:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + } + }, + "visibility": "internal" + } + ], + "src": "3323:35:36" + }, + "scope": 11058, + "src": "3241:584:36", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10884, + "nodeType": "Block", + "src": "3961:350:36", + "statements": [ + { + "expression": { + "id": 10866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10862, + "name": "_appOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10860, + "src": "3971:9:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10864, + "name": "_appAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10856, + "src": "3999:11:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10863, + "name": "_createAppOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10854, + "src": "3983:15:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_AppOrder_$11461_memory_ptr_$", + "typeString": "function (address) view returns (struct IexecLibOrders_v5.AppOrder memory)" + } + }, + "id": 10865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3983:28:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + "src": "3971:40:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + "id": 10867, + "nodeType": "ExpressionStatement", + "src": "3971:40:36" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 10873, + "name": "_appOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10860, + "src": "4143:9:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + } + }, + { + "expression": { + "expression": { + "id": 10874, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "4181:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4199:18:36", + "memberName": "OrderOperationEnum", + "nodeType": "MemberAccess", + "referencedDeclaration": 11442, + "src": "4181:36:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OrderOperationEnum_$11442_$", + "typeString": "type(enum IexecLibOrders_v5.OrderOperationEnum)" + } + }, + "id": 10876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4218:4:36", + "memberName": "SIGN", + "nodeType": "MemberAccess", + "referencedDeclaration": 11440, + "src": "4181:41:36", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4277:1:36", + "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": 10878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4267:9:36", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 10877, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4271:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 10880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4267:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder memory" + }, + { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 10871, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "4082:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4100:17:36", + "memberName": "AppOrderOperation", + "nodeType": "MemberAccess", + "referencedDeclaration": 11545, + "src": "4082:35:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_AppOrderOperation_$11545_storage_ptr_$", + "typeString": "type(struct IexecLibOrders_v5.AppOrderOperation storage pointer)" + } + }, + "id": 10881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "4136:5:36", + "4170:9:36", + "4261:4:36" + ], + "names": [ + "order", + "operation", + "sign" + ], + "nodeType": "FunctionCall", + "src": "4082:212:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrderOperation_$11545_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrderOperation memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_AppOrderOperation_$11545_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrderOperation memory" + } + ], + "expression": { + "id": 10868, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "4040:13:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 10870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4054:14:36", + "memberName": "manageAppOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 11403, + "src": "4040:28:36", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_AppOrderOperation_$11545_memory_ptr_$returns$__$", + "typeString": "function (struct IexecLibOrders_v5.AppOrderOperation memory) external" + } + }, + "id": 10882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4040:264:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10883, + "nodeType": "ExpressionStatement", + "src": "4040:264:36" + } + ] + }, + "id": 10885, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createPreSignAppOrder", + "nameLocation": "3840:22:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10856, + "mutability": "mutable", + "name": "_appAddress", + "nameLocation": "3880:11:36", + "nodeType": "VariableDeclaration", + "scope": 10885, + "src": "3872:19:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10855, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3872:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3862:35:36" + }, + "returnParameters": { + "id": 10861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10860, + "mutability": "mutable", + "name": "_appOrder", + "nameLocation": "3950:9:36", + "nodeType": "VariableDeclaration", + "scope": 10885, + "src": "3916:43:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_memory_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + }, + "typeName": { + "id": 10859, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10858, + "name": "IexecLibOrders_v5.AppOrder", + "nameLocations": [ + "3916:17:36", + "3934:8:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11461, + "src": "3916:26:36" + }, + "referencedDeclaration": 11461, + "src": "3916:26:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + } + }, + "visibility": "internal" + } + ], + "src": "3915:45:36" + }, + "scope": 11058, + "src": "3831:480:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10924, + "nodeType": "Block", + "src": "4477:476:36", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 10897, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10887, + "src": "4603:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 10898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4649:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 10901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4681:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 10900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4681:7:36", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 10899, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4676:4:36", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4676:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 10903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4690:3:36", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4676:17:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10904, + "name": "TAG", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10791, + "src": "4716:3:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 10905, + "name": "_appWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10889, + "src": "4750:13:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4809:1:36", + "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": 10907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4801:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4801:7:36", + "typeDescriptions": {} + } + }, + "id": 10909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4801:10:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 10912, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4856:4:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ManageOrders_$11058", + "typeString": "contract ManageOrders" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ManageOrders_$11058", + "typeString": "contract ManageOrders" + } + ], + "id": 10911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4848:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4848:7:36", + "typeDescriptions": {} + } + }, + "id": 10913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4848:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4893:1:36", + "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": 10915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4885:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 10914, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4885:7:36", + "typeDescriptions": {} + } + }, + "id": 10917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4885:10:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4929:1:36", + "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": 10919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4919:9:36", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 10918, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4923:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 10921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4919:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 10895, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "4545:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4563:12:36", + "memberName": "DatasetOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 11480, + "src": "4545:30:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_DatasetOrder_$11480_storage_ptr_$", + "typeString": "type(struct IexecLibOrders_v5.DatasetOrder storage pointer)" + } + }, + "id": 10922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "4594:7:36", + "4635:12:36", + "4668:6:36", + "4711:3:36", + "4737:11:36", + "4781:18:36", + "4829:17:36", + "4879:4:36", + "4913:4:36" + ], + "names": [ + "dataset", + "datasetprice", + "volume", + "tag", + "apprestrict", + "workerpoolrestrict", + "requesterrestrict", + "salt", + "sign" + ], + "nodeType": "FunctionCall", + "src": "4545:401:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + "functionReturnParameters": 10894, + "id": 10923, + "nodeType": "Return", + "src": "4526:420:36" + } + ] + }, + "id": 10925, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createDatasetOrder", + "nameLocation": "4326:19:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10887, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "4363:14:36", + "nodeType": "VariableDeclaration", + "scope": 10925, + "src": "4355:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4355:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10889, + "mutability": "mutable", + "name": "_appWhitelist", + "nameLocation": "4395:13:36", + "nodeType": "VariableDeclaration", + "scope": 10925, + "src": "4387:21:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4387:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4345:69:36" + }, + "returnParameters": { + "id": 10894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10893, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10925, + "src": "4438:37:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + }, + "typeName": { + "id": 10892, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10891, + "name": "IexecLibOrders_v5.DatasetOrder", + "nameLocations": [ + "4438:17:36", + "4456:12:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11480, + "src": "4438:30:36" + }, + "referencedDeclaration": 11480, + "src": "4438:30:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + } + }, + "visibility": "internal" + } + ], + "src": "4437:39:36" + }, + "scope": 11058, + "src": "4317:636:36", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10958, + "nodeType": "Block", + "src": "5135:388:36", + "statements": [ + { + "expression": { + "id": 10940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10935, + "name": "_datasetOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10933, + "src": "5145:13:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 10937, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10927, + "src": "5181:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 10938, + "name": "_appWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10929, + "src": "5197:13:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10936, + "name": "_createDatasetOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10925, + "src": "5161:19:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_DatasetOrder_$11480_memory_ptr_$", + "typeString": "function (address,address) view returns (struct IexecLibOrders_v5.DatasetOrder memory)" + } + }, + "id": 10939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5161:50:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + "src": "5145:66:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + "id": 10941, + "nodeType": "ExpressionStatement", + "src": "5145:66:36" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 10947, + "name": "_datasetOrder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10933, + "src": "5351:13:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + } + }, + { + "expression": { + "expression": { + "id": 10948, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "5393:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5411:18:36", + "memberName": "OrderOperationEnum", + "nodeType": "MemberAccess", + "referencedDeclaration": 11442, + "src": "5393:36:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OrderOperationEnum_$11442_$", + "typeString": "type(enum IexecLibOrders_v5.OrderOperationEnum)" + } + }, + "id": 10950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5430:4:36", + "memberName": "SIGN", + "nodeType": "MemberAccess", + "referencedDeclaration": 11440, + "src": "5393:41:36", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 10953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5489:1:36", + "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": 10952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5479:9:36", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 10951, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5483:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 10954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5479:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder memory" + }, + { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 10945, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "5286:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5304:21:36", + "memberName": "DatasetOrderOperation", + "nodeType": "MemberAccess", + "referencedDeclaration": 11554, + "src": "5286:39:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_DatasetOrderOperation_$11554_storage_ptr_$", + "typeString": "type(struct IexecLibOrders_v5.DatasetOrderOperation storage pointer)" + } + }, + "id": 10955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5344:5:36", + "5382:9:36", + "5473:4:36" + ], + "names": [ + "order", + "operation", + "sign" + ], + "nodeType": "FunctionCall", + "src": "5286:220:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrderOperation_$11554_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrderOperation memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_DatasetOrderOperation_$11554_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrderOperation memory" + } + ], + "expression": { + "id": 10942, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "5240:13:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 10944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5254:18:36", + "memberName": "manageDatasetOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 11409, + "src": "5240:32:36", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_DatasetOrderOperation_$11554_memory_ptr_$returns$__$", + "typeString": "function (struct IexecLibOrders_v5.DatasetOrderOperation memory) external" + } + }, + "id": 10956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5240:276:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10957, + "nodeType": "ExpressionStatement", + "src": "5240:276:36" + } + ] + }, + "id": 10959, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createPreSignDatasetOrder", + "nameLocation": "4968:26:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10927, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5012:14:36", + "nodeType": "VariableDeclaration", + "scope": 10959, + "src": "5004:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5004:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10929, + "mutability": "mutable", + "name": "_appWhitelist", + "nameLocation": "5044:13:36", + "nodeType": "VariableDeclaration", + "scope": 10959, + "src": "5036:21:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5036:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4994:69:36" + }, + "returnParameters": { + "id": 10934, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10933, + "mutability": "mutable", + "name": "_datasetOrder", + "nameLocation": "5120:13:36", + "nodeType": "VariableDeclaration", + "scope": 10959, + "src": "5082:51:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_memory_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + }, + "typeName": { + "id": 10932, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10931, + "name": "IexecLibOrders_v5.DatasetOrder", + "nameLocations": [ + "5082:17:36", + "5100:12:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11480, + "src": "5082:30:36" + }, + "referencedDeclaration": 11480, + "src": "5082:30:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + } + }, + "visibility": "internal" + } + ], + "src": "5081:53:36" + }, + "scope": 11058, + "src": "4959:564:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11029, + "nodeType": "Block", + "src": "5752:1322:36", + "statements": [ + { + "assignments": [ + 10977 + ], + "declarations": [ + { + "constant": false, + "id": 10977, + "mutability": "mutable", + "name": "requestOrderOperation", + "nameLocation": "5848:21:36", + "nodeType": "VariableDeclaration", + "scope": 11029, + "src": "5801:68:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation" + }, + "typeName": { + "id": 10976, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10975, + "name": "IexecLibOrders_v5.RequestOrderOperation", + "nameLocations": [ + "5801:17:36", + "5819:21:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11572, + "src": "5801:39:36" + }, + "referencedDeclaration": 11572, + "src": "5801:39:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation" + } + }, + "visibility": "internal" + } + ], + "id": 11019, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 10982, + "name": "_appAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10963, + "src": "6008:11:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 10983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6064:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 10984, + "name": "_protectedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10961, + "src": "6106:14:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 10985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6169:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 10986, + "name": "_workerpoolAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10965, + "src": "6214:18:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "30", + "id": 10987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6284:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "arguments": [ + { + "id": 10990, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6336:4:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ManageOrders_$11058", + "typeString": "contract ManageOrders" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ManageOrders_$11058", + "typeString": "contract ManageOrders" + } + ], + "id": 10989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6328:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10988, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:36", + "typeDescriptions": {} + } + }, + "id": 10991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6328:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "hexValue": "31", + "id": 10992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6381:1:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "id": 10993, + "name": "TAG", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10791, + "src": "6419:3:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 10994, + "name": "_category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10967, + "src": "6464:9:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 10995, + "name": "TRUST", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10794, + "src": "6512:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 10996, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6562:3:36", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6566:6:36", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6562:10:36", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 11000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6622:1:36", + "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": 10999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6614:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 10998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6614:7:36", + "typeDescriptions": {} + } + }, + "id": 11001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6614:10:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11002, + "name": "generateParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11057, + "src": "6664:14:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 11003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6664:16:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11004, + "name": "getSalt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11042, + "src": "6717:7:36", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bytes32_$", + "typeString": "function () returns (bytes32)" + } + }, + "id": 11005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6717:9:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 11008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6774:1:36", + "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": 11007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6764:9:36", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 11006, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6768:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 11009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6764:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 10980, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "5950:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5968:12:36", + "memberName": "RequestOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "5950:30:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RequestOrder_$11536_storage_ptr_$", + "typeString": "type(struct IexecLibOrders_v5.RequestOrder storage pointer)" + } + }, + "id": 11010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "6003:3:36", + "6051:11:36", + "6097:7:36", + "6152:15:36", + "6202:10:36", + "6264:18:36", + "6317:9:36", + "6373:6:36", + "6414:3:36", + "6454:8:36", + "6505:5:36", + "6549:11:36", + "6604:8:36", + "6656:6:36", + "6711:4:36", + "6758:4:36" + ], + "names": [ + "app", + "appmaxprice", + "dataset", + "datasetmaxprice", + "workerpool", + "workerpoolmaxprice", + "requester", + "volume", + "tag", + "category", + "trust", + "beneficiary", + "callback", + "params", + "salt", + "sign" + ], + "nodeType": "FunctionCall", + "src": "5950:845:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder memory" + } + }, + { + "expression": { + "expression": { + "id": 11011, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "6824:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 11012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6842:18:36", + "memberName": "OrderOperationEnum", + "nodeType": "MemberAccess", + "referencedDeclaration": 11442, + "src": "6824:36:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OrderOperationEnum_$11442_$", + "typeString": "type(enum IexecLibOrders_v5.OrderOperationEnum)" + } + }, + "id": 11013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6861:4:36", + "memberName": "SIGN", + "nodeType": "MemberAccess", + "referencedDeclaration": 11440, + "src": "6824:41:36", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 11016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6920:1:36", + "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": 11015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6910:9:36", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 11014, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6914:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 11017, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6910:12:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder memory" + }, + { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 10978, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "5872:17:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IexecLibOrders_v5_$11573_$", + "typeString": "type(library IexecLibOrders_v5)" + } + }, + "id": 10979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5903:21:36", + "memberName": "RequestOrderOperation", + "nodeType": "MemberAccess", + "referencedDeclaration": 11572, + "src": "5872:52:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RequestOrderOperation_$11572_storage_ptr_$", + "typeString": "type(struct IexecLibOrders_v5.RequestOrderOperation storage pointer)" + } + }, + "id": 11018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5943:5:36", + "6813:9:36", + "6904:4:36" + ], + "names": [ + "order", + "operation", + "sign" + ], + "nodeType": "FunctionCall", + "src": "5872:1065:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5801:1136:36" + }, + { + "expression": { + "arguments": [ + { + "id": 11023, + "name": "requestOrderOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10977, + "src": "7000:21:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation memory" + } + ], + "expression": { + "id": 11020, + "name": "POCO_DELEGATE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10788, + "src": "6967:13:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPoCo_$11439", + "typeString": "contract IPoCo" + } + }, + "id": 11022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6981:18:36", + "memberName": "manageRequestOrder", + "nodeType": "MemberAccess", + "referencedDeclaration": 11421, + "src": "6967:32:36", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_RequestOrderOperation_$11572_memory_ptr_$returns$__$", + "typeString": "function (struct IexecLibOrders_v5.RequestOrderOperation memory) external" + } + }, + "id": 11024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6967:55:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11025, + "nodeType": "ExpressionStatement", + "src": "6967:55:36" + }, + { + "expression": { + "expression": { + "id": 11026, + "name": "requestOrderOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10977, + "src": "7040:21:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation memory" + } + }, + "id": 11027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7062:5:36", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 11566, + "src": "7040:27:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder memory" + } + }, + "functionReturnParameters": 10972, + "id": 11028, + "nodeType": "Return", + "src": "7033:34:36" + } + ] + }, + "id": 11030, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_createPreSignRequestOrder", + "nameLocation": "5538:26:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10961, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5582:14:36", + "nodeType": "VariableDeclaration", + "scope": 11030, + "src": "5574:22:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10960, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5574:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10963, + "mutability": "mutable", + "name": "_appAddress", + "nameLocation": "5614:11:36", + "nodeType": "VariableDeclaration", + "scope": 11030, + "src": "5606:19:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10962, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5606:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10965, + "mutability": "mutable", + "name": "_workerpoolAddress", + "nameLocation": "5643:18:36", + "nodeType": "VariableDeclaration", + "scope": 11030, + "src": "5635:26:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10964, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5635:7:36", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10967, + "mutability": "mutable", + "name": "_category", + "nameLocation": "5679:9:36", + "nodeType": "VariableDeclaration", + "scope": 11030, + "src": "5671:17:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5671:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5564:130:36" + }, + "returnParameters": { + "id": 10972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10971, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11030, + "src": "5713:37:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_memory_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + }, + "typeName": { + "id": 10970, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10969, + "name": "IexecLibOrders_v5.RequestOrder", + "nameLocations": [ + "5713:17:36", + "5731:12:36" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11536, + "src": "5713:30:36" + }, + "referencedDeclaration": 11536, + "src": "5713:30:36", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + } + }, + "visibility": "internal" + } + ], + "src": "5712:39:36" + }, + "scope": 11058, + "src": "5529:1545:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11041, + "nodeType": "Block", + "src": "7125:40:36", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 11038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "7150:7:36", + "subExpression": { + "id": 11037, + "name": "_salt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10800, + "src": "7152:5:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7142:7:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 11035, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7142:7:36", + "typeDescriptions": {} + } + }, + "id": 11039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7142:16:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 11034, + "id": 11040, + "nodeType": "Return", + "src": "7135:23:36" + } + ] + }, + "id": 11042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSalt", + "nameLocation": "7089:7:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11031, + "nodeType": "ParameterList", + "parameters": [], + "src": "7096:2:36" + }, + "returnParameters": { + "id": 11034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11033, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11042, + "src": "7116:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11032, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7116:7:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7115:9:36" + }, + "scope": 11058, + "src": "7080:85:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 11056, + "nodeType": "Block", + "src": "7234:379:36", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "7b2269657865635f726573756c745f656e6372797074696f6e223a74727565", + "id": 11050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7345:33:36", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_de43f859c5b41ae763b3cf3079fdf2eb03404edf87902f203872493397b6d5eb", + "typeString": "literal_string \"{\"iexec_result_encryption\":true\"" + }, + "value": "{\"iexec_result_encryption\":true" + }, + { + "hexValue": "2c2269657865635f726573756c745f73746f726167655f70726f7669646572223a22", + "id": 11051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7427:36:36", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_64a0632b25b099a8394a67910c746124d56bcfe74154e02a072981b112e5aafe", + "typeString": "literal_string \",\"iexec_result_storage_provider\":\"\"" + }, + "value": ",\"iexec_result_storage_provider\":\"" + }, + { + "id": 11052, + "name": "_iexecResultStorageProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10796, + "src": "7512:27:36", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "hexValue": "227d", + "id": 11053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7557:4:36", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "typeString": "literal_string \"\"}\"" + }, + "value": "\"}" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_de43f859c5b41ae763b3cf3079fdf2eb03404edf87902f203872493397b6d5eb", + "typeString": "literal_string \"{\"iexec_result_encryption\":true\"" + }, + { + "typeIdentifier": "t_stringliteral_64a0632b25b099a8394a67910c746124d56bcfe74154e02a072981b112e5aafe", + "typeString": "literal_string \",\"iexec_result_storage_provider\":\"\"" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + }, + { + "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", + "typeString": "literal_string \"\"}\"" + } + ], + "expression": { + "id": 11048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7263:6:36", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 11047, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7263:6:36", + "typeDescriptions": {} + } + }, + "id": 11049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7270:6:36", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "7263:13:36", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 11054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7263:343:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 11046, + "id": 11055, + "nodeType": "Return", + "src": "7244:362:36" + } + ] + }, + "id": 11057, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "generateParams", + "nameLocation": "7180:14:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11043, + "nodeType": "ParameterList", + "parameters": [], + "src": "7194:2:36" + }, + "returnParameters": { + "id": 11046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11045, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11057, + "src": "7219:13:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 11044, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7219:6:36", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7218:15:36" + }, + "scope": 11058, + "src": "7171:442:36", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "scope": 11059, + "src": "1474:6141:36", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1246:6370:36" + }, + "id": 36 + }, + "contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "ast": { + "absolutePath": "contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "exportedSymbols": { + "ERC1967Proxy": [ + 2770 + ], + "ERC1967Utils": [ + 3064 + ], + "IERC1967": [ + 2196 + ], + "ITransparentUpgradeableProxy": [ + 3180 + ], + "ProxyAdmin": [ + 3158 + ], + "TransparentUpgradeableProxy": [ + 3294 + ] + }, + "id": 11062, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11060, + "literals": [ + "solidity", + ">", + "0.0", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "39:23:37" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "file": "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol", + "id": 11061, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11062, + "sourceUnit": 3295, + "src": "63:83:37", + "symbolAliases": [], + "unitAlias": "" + } + ], + "src": "39:108:37" + }, + "id": 37 + }, + "contracts/interfaces/IAddOnlyAppWhitelist.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelist.sol", + "exportedSymbols": { + "IAddOnlyAppWhitelist": [ + 11098 + ] + }, + "id": 11099, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11063, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:38" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAddOnlyAppWhitelist", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11098, + "linearizedBaseContracts": [ + 11098 + ], + "name": "IAddOnlyAppWhitelist", + "nameLocation": "1277:20:38", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 11064, + "nodeType": "StructuredDocumentation", + "src": "1304:180:38", + "text": " Custom revert error indicating that the application is not owned by the contract.\n @param appAddress - The address added to the AddOnlyAppWhitelist." + }, + "eventSelector": "f4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd", + "id": 11068, + "name": "NewAppAddedToAddOnlyAppWhitelist", + "nameLocation": "1495:32:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 11067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11066, + "indexed": false, + "mutability": "mutable", + "name": "appAddress", + "nameLocation": "1536:10:38", + "nodeType": "VariableDeclaration", + "scope": 11068, + "src": "1528:18:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1528:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1527:20:38" + }, + "src": "1489:59:38" + }, + { + "documentation": { + "id": 11069, + "nodeType": "StructuredDocumentation", + "src": "1554:103:38", + "text": " Custom revert error indicating that the caller is not the autorized operator." + }, + "errorSelector": "d0c8b1ce", + "id": 11071, + "name": "NotAddOnlyAppWhitelistOperator", + "nameLocation": "1668:30:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11070, + "nodeType": "ParameterList", + "parameters": [], + "src": "1698:2:38" + }, + "src": "1662:39:38" + }, + { + "documentation": { + "id": 11072, + "nodeType": "StructuredDocumentation", + "src": "1707:125:38", + "text": " Allow operator of the whitelist can add an app.\n @param _app - The address of the app to add." + }, + "functionSelector": "93ac9b16", + "id": 11077, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addApp", + "nameLocation": "1846:6:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11074, + "mutability": "mutable", + "name": "_app", + "nameLocation": "1861:4:38", + "nodeType": "VariableDeclaration", + "scope": 11077, + "src": "1853:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1852:14:38" + }, + "returnParameters": { + "id": 11076, + "nodeType": "ParameterList", + "parameters": [], + "src": "1875:0:38" + }, + "scope": 11098, + "src": "1837:39:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11078, + "nodeType": "StructuredDocumentation", + "src": "1882:149:38", + "text": " Return true if the app is registered or not in the AddOnlyAppWhitelist.\n @param _app - The address of the app to add." + }, + "functionSelector": "c3c5a547", + "id": 11085, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isRegistered", + "nameLocation": "2045:12:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11080, + "mutability": "mutable", + "name": "_app", + "nameLocation": "2066:4:38", + "nodeType": "VariableDeclaration", + "scope": 11085, + "src": "2058:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2058:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2057:14:38" + }, + "returnParameters": { + "id": 11084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11083, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11085, + "src": "2095:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11082, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2095:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2094:6:38" + }, + "scope": 11098, + "src": "2036:65:38", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11086, + "nodeType": "StructuredDocumentation", + "src": "2107:60:38", + "text": " Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 11091, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "2181:5:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11087, + "nodeType": "ParameterList", + "parameters": [], + "src": "2186:2:38" + }, + "returnParameters": { + "id": 11090, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11089, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11091, + "src": "2212:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2212:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2211:9:38" + }, + "scope": 11098, + "src": "2172:49:38", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11092, + "nodeType": "StructuredDocumentation", + "src": "2227:173:38", + "text": " Transfers ownership of the contract to a new address. Only the operator is allow to do that.\n @param newOwner - The address of the new owner." + }, + "functionSelector": "f2fde38b", + "id": 11097, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nameLocation": "2414:17:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11094, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2440:8:38", + "nodeType": "VariableDeclaration", + "scope": 11097, + "src": "2432:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2432:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2431:18:38" + }, + "returnParameters": { + "id": 11096, + "nodeType": "ParameterList", + "parameters": [], + "src": "2458:0:38" + }, + "scope": 11098, + "src": "2405:54:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11099, + "src": "1267:1194:38", + "usedErrors": [ + 11071 + ], + "usedEvents": [ + 11068 + ] + } + ], + "src": "1241:1221:38" + }, + "id": 38 + }, + "contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol", + "exportedSymbols": { + "IAddOnlyAppWhitelist": [ + 11098 + ], + "IAddOnlyAppWhitelistRegistry": [ + 11122 + ] + }, + "id": 11123, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11100, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:39" + }, + { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelist.sol", + "file": "./IAddOnlyAppWhitelist.sol", + "id": 11102, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11123, + "sourceUnit": 11099, + "src": "1267:64:39", + "symbolAliases": [ + { + "foreign": { + "id": 11101, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1275:20:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAddOnlyAppWhitelistRegistry", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11122, + "linearizedBaseContracts": [ + 11122 + ], + "name": "IAddOnlyAppWhitelistRegistry", + "nameLocation": "1343:28:39", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11103, + "nodeType": "StructuredDocumentation", + "src": "1378:468:39", + "text": " Creates a new AddOnlyAppWhitelist contract and registers it under the specified owner.\n This function facilitates the dynamic creation and onboarding of new applications\n into the platform's whitelist system, expanding the ecosystem.\n @param owner - The address that will own the newly created AddOnlyAppWhitelist contract.\n @return IAddOnlyAppWhitelist - The newly created and registered AddOnlyAppWhitelist contract." + }, + "functionSelector": "9680579d", + "id": 11111, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createAddOnlyAppWhitelist", + "nameLocation": "1860:25:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11106, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11105, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1894:5:39", + "nodeType": "VariableDeclaration", + "scope": 11111, + "src": "1886:13:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1885:15:39" + }, + "returnParameters": { + "id": 11110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11109, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11111, + "src": "1919:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + }, + "typeName": { + "id": 11108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11107, + "name": "IAddOnlyAppWhitelist", + "nameLocations": [ + "1919:20:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11098, + "src": "1919:20:39" + }, + "referencedDeclaration": 11098, + "src": "1919:20:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "visibility": "internal" + } + ], + "src": "1918:22:39" + }, + "scope": 11122, + "src": "1851:90:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11112, + "nodeType": "StructuredDocumentation", + "src": "1947:423:39", + "text": " Checks if spender can operate on tokenId, assuming the provided owner is the actual\n owner. Reverts if spender does not have approval from the provided owner for the given\n token or for all its assets the spender for the specific tokenId.\n @param spender - The spender that you want to check if he has approval.\n @param tokenId - TokenId that we want to check for approval." + }, + "functionSelector": "2972b0f0", + "id": 11121, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isAuthorized", + "nameLocation": "2384:12:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11114, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2405:7:39", + "nodeType": "VariableDeclaration", + "scope": 11121, + "src": "2397:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2397:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11116, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2422:7:39", + "nodeType": "VariableDeclaration", + "scope": 11121, + "src": "2414:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2414:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2396:34:39" + }, + "returnParameters": { + "id": 11120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11119, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11121, + "src": "2454:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2454:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2453:6:39" + }, + "scope": 11122, + "src": "2375:85:39", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11123, + "src": "1333:1129:39", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1241:1222:39" + }, + "id": 39 + }, + "contracts/interfaces/ICollection.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ICollection.sol", + "exportedSymbols": { + "IAddOnlyAppWhitelist": [ + 11098 + ], + "ICollection": [ + 11176 + ] + }, + "id": 11177, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11124, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:40" + }, + { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelist.sol", + "file": "./IAddOnlyAppWhitelist.sol", + "id": 11126, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11177, + "sourceUnit": 11099, + "src": "1267:64:40", + "symbolAliases": [ + { + "foreign": { + "id": 11125, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1275:20:40", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ICollection", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11176, + "linearizedBaseContracts": [ + 11176 + ], + "name": "ICollection", + "nameLocation": "1343:11:40", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11127, + "nodeType": "StructuredDocumentation", + "src": "1361:202:40", + "text": " Custom revert error indicating that the caller is not the owner of the collection.\n @param collectionTokenId - The ID of the collection where the caller is not the owner." + }, + "errorSelector": "73ed0187", + "id": 11131, + "name": "NotCollectionOperator", + "nameLocation": "1574:21:40", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11130, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11129, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "1604:17:40", + "nodeType": "VariableDeclaration", + "scope": 11131, + "src": "1596:25:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1596:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1595:27:40" + }, + "src": "1568:55:40" + }, + { + "documentation": { + "id": 11132, + "nodeType": "StructuredDocumentation", + "src": "1629:212:40", + "text": " Custom revert error indicating that the collection is not empty and cannot be removed.\n @param collectionTokenId - The ID of the collection that is not empty and cannot be removed." + }, + "errorSelector": "86acf7fd", + "id": 11136, + "name": "CollectionNotEmpty", + "nameLocation": "1852:18:40", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11134, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "1879:17:40", + "nodeType": "VariableDeclaration", + "scope": 11136, + "src": "1871:25:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1871:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1870:27:40" + }, + "src": "1846:52:40" + }, + { + "documentation": { + "id": 11137, + "nodeType": "StructuredDocumentation", + "src": "1904:95:40", + "text": " Custom revert error indicating that the caller is not approved or the owner." + }, + "errorSelector": "ede508e5", + "id": 11139, + "name": "NotAnOwnerOrApprovedOperator", + "nameLocation": "2010:28:40", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11138, + "nodeType": "ParameterList", + "parameters": [], + "src": "2038:2:40" + }, + "src": "2004:37:40" + }, + { + "anonymous": false, + "documentation": { + "id": 11140, + "nodeType": "StructuredDocumentation", + "src": "2047:453:40", + "text": " Event emitted when a protected data is removed from a collection.\n @param protectedData - The address of the protected data.\n @param newCollection - The ID of the collection to which the protected data is added.\n @param oldCollection - The ID of the collection from which the protected data is removed.\n @param addOnlyAppWhitelist - The address of the approved application to consume the protected data." + }, + "eventSelector": "701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd", + "id": 11150, + "name": "ProtectedDataTransfer", + "nameLocation": "2511:21:40", + "nodeType": "EventDefinition", + "parameters": { + "id": 11149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11142, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "2550:13:40", + "nodeType": "VariableDeclaration", + "scope": 11150, + "src": "2542:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2542:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11144, + "indexed": false, + "mutability": "mutable", + "name": "newCollection", + "nameLocation": "2581:13:40", + "nodeType": "VariableDeclaration", + "scope": 11150, + "src": "2573:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2573:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11146, + "indexed": false, + "mutability": "mutable", + "name": "oldCollection", + "nameLocation": "2612:13:40", + "nodeType": "VariableDeclaration", + "scope": 11150, + "src": "2604:21:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2604:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11148, + "indexed": false, + "mutability": "mutable", + "name": "addOnlyAppWhitelist", + "nameLocation": "2643:19:40", + "nodeType": "VariableDeclaration", + "scope": 11150, + "src": "2635:27:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2635:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2532:136:40" + }, + "src": "2505:164:40" + }, + { + "documentation": { + "id": 11151, + "nodeType": "StructuredDocumentation", + "src": "2675:196:40", + "text": " Create a new collection and returns its token ID.\n @return tokenId The token ID of the newly created collection.\n @param _to - The address of the token owner." + }, + "functionSelector": "2069e953", + "id": 11158, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createCollection", + "nameLocation": "2885:16:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11153, + "mutability": "mutable", + "name": "_to", + "nameLocation": "2910:3:40", + "nodeType": "VariableDeclaration", + "scope": 11158, + "src": "2902:11:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2902:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2901:13:40" + }, + "returnParameters": { + "id": 11157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11156, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2941:7:40", + "nodeType": "VariableDeclaration", + "scope": 11158, + "src": "2933:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2933:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2932:17:40" + }, + "scope": 11176, + "src": "2876:74:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11159, + "nodeType": "StructuredDocumentation", + "src": "2956:515:40", + "text": " Add protected data to the specified collection.\n The owner should approve the smart contract before calling this function.\n The ownership of the protected data added to the collection is transferred to the smart contract,\n enabling it to publish protected data orders.\n @param _collectionTokenId The ID of the collection.\n @param _protectedData The address of the protected data to be added.\n @param _appAddress The address of the application whitelist." + }, + "functionSelector": "40e6158d", + "id": 11169, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addProtectedDataToCollection", + "nameLocation": "3485:28:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11161, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "3531:18:40", + "nodeType": "VariableDeclaration", + "scope": 11169, + "src": "3523:26:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11160, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3523:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11163, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "3567:14:40", + "nodeType": "VariableDeclaration", + "scope": 11169, + "src": "3559:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3559:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11166, + "mutability": "mutable", + "name": "_appAddress", + "nameLocation": "3612:11:40", + "nodeType": "VariableDeclaration", + "scope": 11169, + "src": "3591:32:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + }, + "typeName": { + "id": 11165, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11164, + "name": "IAddOnlyAppWhitelist", + "nameLocations": [ + "3591:20:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11098, + "src": "3591:20:40" + }, + "referencedDeclaration": 11098, + "src": "3591:20:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "visibility": "internal" + } + ], + "src": "3513:116:40" + }, + "returnParameters": { + "id": 11168, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:40" + }, + "scope": 11176, + "src": "3476:163:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11170, + "nodeType": "StructuredDocumentation", + "src": "3645:231:40", + "text": " Remove protected data from the specified collection.\n The ownership of the protected data is given back to the msg.sender\n @param _protectedData The address of the protected data to be removed." + }, + "functionSelector": "d0b06c66", + "id": 11175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataFromCollection", + "nameLocation": "3890:33:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11172, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "3932:14:40", + "nodeType": "VariableDeclaration", + "scope": 11175, + "src": "3924:22:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3924:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3923:24:40" + }, + "returnParameters": { + "id": 11174, + "nodeType": "ParameterList", + "parameters": [], + "src": "3956:0:40" + }, + "scope": 11176, + "src": "3881:76:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11177, + "src": "1333:2626:40", + "usedErrors": [ + 11131, + 11136, + 11139 + ], + "usedEvents": [ + 11150 + ] + } + ], + "src": "1241:2719:40" + }, + "id": 40 + }, + "contracts/interfaces/IDataProtector.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDataProtector.sol", + "exportedSymbols": { + "IDataProtector": [ + 11195 + ] + }, + "id": 11196, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11178, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:41" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDataProtector", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11195, + "linearizedBaseContracts": [ + 11195 + ], + "name": "IDataProtector", + "nameLocation": "1278:14:41", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11179, + "nodeType": "StructuredDocumentation", + "src": "1299:474:41", + "text": " Create a new protectedData.\n @param _datasetOwner - The owner of the ProtectedData.\n @param _datasetName - The name of the ProtectedData (metadata).\n @param _datasetSchema - The schema of the data containing in the ProtectedData\n @param _datasetMultiaddr - The multiaddress of the ProtectedData.\n @param _datasetChecksum -The checksum of the ProtectedData.\n @return IDataset - The ProtcetedData instance created." + }, + "functionSelector": "167fbf5f", + "id": 11194, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createDatasetWithSchema", + "nameLocation": "1787:23:41", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11181, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1828:13:41", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "1820:21:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11180, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1820:7:41", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11183, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1867:12:41", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "1851:28:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 11182, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1851:6:41", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11185, + "mutability": "mutable", + "name": "_datasetSchema", + "nameLocation": "1905:14:41", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "1889:30:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 11184, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1889:6:41", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11187, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1944:17:41", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "1929:32:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1929:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11189, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1979:16:41", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "1971:24:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11188, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1971:7:41", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1810:191:41" + }, + "returnParameters": { + "id": 11193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11192, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11194, + "src": "2020:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:7:41", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2019:9:41" + }, + "scope": 11195, + "src": "1778:251:41", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11196, + "src": "1268:763:41", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:790:41" + }, + "id": 41 + }, + "contracts/interfaces/IDataProtectorSharing.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDataProtectorSharing.sol", + "exportedSymbols": { + "IAddOnlyAppWhitelist": [ + 11098 + ], + "ICollection": [ + 11176 + ], + "IDataProtectorSharing": [ + 11343 + ], + "IRental": [ + 11721 + ], + "ISale": [ + 11796 + ], + "ISubscription": [ + 11895 + ], + "IexecLibOrders_v5": [ + 11573 + ] + }, + "id": 11344, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11197, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1246:24:42" + }, + { + "absolutePath": "contracts/interfaces/ISubscription.sol", + "file": "./ISubscription.sol", + "id": 11199, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11344, + "sourceUnit": 11896, + "src": "1272:50:42", + "symbolAliases": [ + { + "foreign": { + "id": 11198, + "name": "ISubscription", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11895, + "src": "1280:13:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ICollection.sol", + "file": "./ICollection.sol", + "id": 11201, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11344, + "sourceUnit": 11177, + "src": "1323:46:42", + "symbolAliases": [ + { + "foreign": { + "id": 11200, + "name": "ICollection", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11176, + "src": "1331:11:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IPoCo.sol", + "file": "./IPoCo.sol", + "id": 11203, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11344, + "sourceUnit": 11574, + "src": "1370:46:42", + "symbolAliases": [ + { + "foreign": { + "id": 11202, + "name": "IexecLibOrders_v5", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11573, + "src": "1378:17:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IRental.sol", + "file": "./IRental.sol", + "id": 11205, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11344, + "sourceUnit": 11722, + "src": "1417:38:42", + "symbolAliases": [ + { + "foreign": { + "id": 11204, + "name": "IRental", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11721, + "src": "1425:7:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ISale.sol", + "file": "./ISale.sol", + "id": 11207, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11344, + "sourceUnit": 11797, + "src": "1456:34:42", + "symbolAliases": [ + { + "foreign": { + "id": 11206, + "name": "ISale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11796, + "src": "1464:5:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelist.sol", + "file": "./IAddOnlyAppWhitelist.sol", + "id": 11209, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 11344, + "sourceUnit": 11099, + "src": "1491:64:42", + "symbolAliases": [ + { + "foreign": { + "id": 11208, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1499:20:42", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 11210, + "name": "ICollection", + "nameLocations": [ + "1592:11:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11176, + "src": "1592:11:42" + }, + "id": 11211, + "nodeType": "InheritanceSpecifier", + "src": "1592:11:42" + }, + { + "baseName": { + "id": 11212, + "name": "ISubscription", + "nameLocations": [ + "1605:13:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11895, + "src": "1605:13:42" + }, + "id": 11213, + "nodeType": "InheritanceSpecifier", + "src": "1605:13:42" + }, + { + "baseName": { + "id": 11214, + "name": "IRental", + "nameLocations": [ + "1620:7:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11721, + "src": "1620:7:42" + }, + "id": 11215, + "nodeType": "InheritanceSpecifier", + "src": "1620:7:42" + }, + { + "baseName": { + "id": 11216, + "name": "ISale", + "nameLocations": [ + "1629:5:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11796, + "src": "1629:5:42" + }, + "id": 11217, + "nodeType": "InheritanceSpecifier", + "src": "1629:5:42" + } + ], + "canonicalName": "IDataProtectorSharing", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11343, + "linearizedBaseContracts": [ + 11343, + 11796, + 11721, + 11895, + 11176 + ], + "name": "IDataProtectorSharing", + "nameLocation": "1567:21:42", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11218, + "nodeType": "StructuredDocumentation", + "src": "1641:166:42", + "text": " Custom revert error indicating that the workerpool order is not free.\n @param workerpoolOrder - The workerpool order that is not free." + }, + "errorSelector": "85461e9b", + "id": 11223, + "name": "WorkerpoolOrderNotFree", + "nameLocation": "1818:22:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11221, + "mutability": "mutable", + "name": "workerpoolOrder", + "nameLocation": "1875:15:42", + "nodeType": "VariableDeclaration", + "scope": 11223, + "src": "1841:49:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_memory_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + }, + "typeName": { + "id": 11220, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11219, + "name": "IexecLibOrders_v5.WorkerpoolOrder", + "nameLocations": [ + "1841:17:42", + "1859:15:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "1841:33:42" + }, + "referencedDeclaration": 11503, + "src": "1841:33:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + }, + "visibility": "internal" + } + ], + "src": "1840:51:42" + }, + "src": "1812:80:42" + }, + { + "documentation": { + "id": 11224, + "nodeType": "StructuredDocumentation", + "src": "1898:303:42", + "text": " Custom revert error indicating that there is no valid rental or subscription for the protected data.\n @param collectionTokenId - The ID of the collection for which there is no valid rental or subscription.\n @param protectedDatas - The address of the protected data." + }, + "errorSelector": "0e39d6b3", + "id": 11230, + "name": "NoValidRentalOrSubscription", + "nameLocation": "2212:27:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11226, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "2248:17:42", + "nodeType": "VariableDeclaration", + "scope": 11230, + "src": "2240:25:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11225, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2240:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11228, + "mutability": "mutable", + "name": "protectedDatas", + "nameLocation": "2275:14:42", + "nodeType": "VariableDeclaration", + "scope": 11230, + "src": "2267:22:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2267:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2239:51:42" + }, + "src": "2206:85:42" + }, + { + "documentation": { + "id": 11231, + "nodeType": "StructuredDocumentation", + "src": "2297:193:42", + "text": " Custom revert error indicating that the application is not owned by the contract.\n @param app - The address of the application that is not owned by the contract." + }, + "errorSelector": "8092b6d1", + "id": 11235, + "name": "AppNotWhitelistedForProtectedData", + "nameLocation": "2501:33:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11233, + "mutability": "mutable", + "name": "app", + "nameLocation": "2543:3:42", + "nodeType": "VariableDeclaration", + "scope": 11235, + "src": "2535:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11232, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2535:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2534:13:42" + }, + "src": "2495:53:42" + }, + { + "documentation": { + "id": 11236, + "nodeType": "StructuredDocumentation", + "src": "2554:168:42", + "text": " Custom revert error indicating that an operator is not the app registry.\n @param _appWhitelist - The address of the AddOnlyAppWhitelist." + }, + "errorSelector": "3bd8e34c", + "id": 11240, + "name": "InvalidAppWhitelist", + "nameLocation": "2733:19:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11238, + "mutability": "mutable", + "name": "_appWhitelist", + "nameLocation": "2761:13:42", + "nodeType": "VariableDeclaration", + "scope": 11240, + "src": "2753:21:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2753:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2752:23:42" + }, + "src": "2727:49:42" + }, + { + "documentation": { + "id": 11241, + "nodeType": "StructuredDocumentation", + "src": "2782:71:42", + "text": " Custom revert error that the caller is not the Poco." + }, + "errorSelector": "ca41b301", + "id": 11245, + "name": "OnlyPocoCallerAuthorized", + "nameLocation": "2864:24:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11243, + "mutability": "mutable", + "name": "_caller", + "nameLocation": "2897:7:42", + "nodeType": "VariableDeclaration", + "scope": 11245, + "src": "2889:15:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11242, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2889:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2888:17:42" + }, + "src": "2858:48:42" + }, + { + "documentation": { + "id": 11246, + "nodeType": "StructuredDocumentation", + "src": "2912:84:42", + "text": " Custom revert error indicating that the extra data set are empty." + }, + "errorSelector": "f83e0d84", + "id": 11248, + "name": "EmptyCallData", + "nameLocation": "3007:13:42", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11247, + "nodeType": "ParameterList", + "parameters": [], + "src": "3020:2:42" + }, + "src": "3001:22:42" + }, + { + "anonymous": false, + "documentation": { + "id": 11249, + "nodeType": "StructuredDocumentation", + "src": "3029:353:42", + "text": " Event emitted when protected data is consumed under a specific deal, providing the unique deal ID and the mode of consumption.\n @param dealId - The unique identifier for the deal.\n @param protectedData - protectedData used for the deal.\n @param mode - The mode of consumption (either subscription or renting)." + }, + "eventSelector": "09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff12", + "id": 11258, + "name": "ProtectedDataConsumed", + "nameLocation": "3393:21:42", + "nodeType": "EventDefinition", + "parameters": { + "id": 11257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11251, + "indexed": false, + "mutability": "mutable", + "name": "dealId", + "nameLocation": "3423:6:42", + "nodeType": "VariableDeclaration", + "scope": 11258, + "src": "3415:14:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11250, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3415:7:42", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11253, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "3439:13:42", + "nodeType": "VariableDeclaration", + "scope": 11258, + "src": "3431:21:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11252, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3431:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11256, + "indexed": false, + "mutability": "mutable", + "name": "mode", + "nameLocation": "3459:4:42", + "nodeType": "VariableDeclaration", + "scope": 11258, + "src": "3454:9:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + }, + "typeName": { + "id": 11255, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11254, + "name": "Mode", + "nameLocations": [ + "3454:4:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11261, + "src": "3454:4:42" + }, + "referencedDeclaration": 11261, + "src": "3454:4:42", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Mode_$11261", + "typeString": "enum IDataProtectorSharing.Mode" + } + }, + "visibility": "internal" + } + ], + "src": "3414:50:42" + }, + "src": "3387:78:42" + }, + { + "canonicalName": "IDataProtectorSharing.Mode", + "id": 11261, + "members": [ + { + "id": 11259, + "name": "SUBSCRIPTION", + "nameLocation": "3491:12:42", + "nodeType": "EnumValue", + "src": "3491:12:42" + }, + { + "id": 11260, + "name": "RENTING", + "nameLocation": "3558:7:42", + "nodeType": "EnumValue", + "src": "3558:7:42" + } + ], + "name": "Mode", + "nameLocation": "3476:4:42", + "nodeType": "EnumDefinition", + "src": "3471:140:42" + }, + { + "canonicalName": "IDataProtectorSharing.CollectionDetails", + "documentation": { + "id": 11262, + "nodeType": "StructuredDocumentation", + "src": "3617:470:42", + "text": " CollectionDetails struct contains details about a collection.\n @param size - number of protectedData inside the collection.\n @param lastSubscriptionExpiration - The latest expiration timestamp among all subscriptions for the protected data.\n @param subscriptionParams - Subscription pameters associated to the collection.\n @param subscribers - Mapping of subscriber addresses to their subscription expiration timestamps." + }, + "id": 11274, + "members": [ + { + "constant": false, + "id": 11264, + "mutability": "mutable", + "name": "size", + "nameLocation": "4135:4:42", + "nodeType": "VariableDeclaration", + "scope": 11274, + "src": "4127:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4127:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11266, + "mutability": "mutable", + "name": "lastSubscriptionExpiration", + "nameLocation": "4156:26:42", + "nodeType": "VariableDeclaration", + "scope": 11274, + "src": "4149:33:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11265, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "4149:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11269, + "mutability": "mutable", + "name": "subscriptionParams", + "nameLocation": "4211:18:42", + "nodeType": "VariableDeclaration", + "scope": 11274, + "src": "4192:37:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 11268, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11267, + "name": "SubscriptionParams", + "nameLocations": [ + "4192:18:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "4192:18:42" + }, + "referencedDeclaration": 11831, + "src": "4192:18:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11273, + "mutability": "mutable", + "name": "subscribers", + "nameLocation": "4266:11:42", + "nodeType": "VariableDeclaration", + "scope": 11274, + "src": "4239:38:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + }, + "typeName": { + "id": 11272, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 11270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4247:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "4239:26:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 11271, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "4258:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + }, + "visibility": "internal" + } + ], + "name": "CollectionDetails", + "nameLocation": "4099:17:42", + "nodeType": "StructDefinition", + "scope": 11343, + "src": "4092:256:42", + "visibility": "public" + }, + { + "canonicalName": "IDataProtectorSharing.ProtectedDataDetails", + "documentation": { + "id": 11275, + "nodeType": "StructuredDocumentation", + "src": "4354:768:42", + "text": " ProtectedDataDetails struct contains details about protected data.\n @param collection - The ID of the collection containing the protected data.\n @param AddOnlyAppWhitelist - The address of the application whitelist that contains all th app that could consume the protected data.\n @param lastRentalExpiration - The latest expiration timestamp among all rentals for the protected data.\n @param renters - Mapping of renter addresses to their rental expiration timestamps.\n @param inSubscription - Indicates whether the protected data is part of a subscription.\n @param sellingParams - Selling parameters for to the sale of the protected data.\n @param datasetOrder - Order published for the protectedData" + }, + "id": 11295, + "members": [ + { + "constant": false, + "id": 11277, + "mutability": "mutable", + "name": "collection", + "nameLocation": "5173:10:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5165:18:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5165:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11280, + "mutability": "mutable", + "name": "addOnlyAppWhitelist", + "nameLocation": "5214:19:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5193:40:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + }, + "typeName": { + "id": 11279, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11278, + "name": "IAddOnlyAppWhitelist", + "nameLocations": [ + "5193:20:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11098, + "src": "5193:20:42" + }, + "referencedDeclaration": 11098, + "src": "5193:20:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11282, + "mutability": "mutable", + "name": "lastRentalExpiration", + "nameLocation": "5250:20:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5243:27:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11281, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "5243:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11284, + "mutability": "mutable", + "name": "inSubscription", + "nameLocation": "5285:14:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5280:19:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11283, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5280:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11287, + "mutability": "mutable", + "name": "rentingParams", + "nameLocation": "5323:13:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5309:27:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 11286, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11285, + "name": "RentingParams", + "nameLocations": [ + "5309:13:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "5309:13:42" + }, + "referencedDeclaration": 11666, + "src": "5309:13:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11291, + "mutability": "mutable", + "name": "renters", + "nameLocation": "5373:7:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5346:34:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + }, + "typeName": { + "id": 11290, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 11288, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5354:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5346:26:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint48_$", + "typeString": "mapping(address => uint48)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 11289, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "5365:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11294, + "mutability": "mutable", + "name": "sellingParams", + "nameLocation": "5464:13:42", + "nodeType": "VariableDeclaration", + "scope": 11295, + "src": "5450:27:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage_ptr", + "typeString": "struct ISale.SellingParams" + }, + "typeName": { + "id": 11293, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11292, + "name": "SellingParams", + "nameLocations": [ + "5450:13:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11746, + "src": "5450:13:42" + }, + "referencedDeclaration": 11746, + "src": "5450:13:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SellingParams_$11746_storage_ptr", + "typeString": "struct ISale.SellingParams" + } + }, + "visibility": "internal" + } + ], + "name": "ProtectedDataDetails", + "nameLocation": "5134:20:42", + "nodeType": "StructDefinition", + "scope": 11343, + "src": "5127:357:42", + "visibility": "public" + }, + { + "documentation": { + "id": 11296, + "nodeType": "StructuredDocumentation", + "src": "5490:473:42", + "text": " Consume protected data by creating a deal on the iExec platform.\n Requires a valid subscription or rental for the protected data.\n @param _protectedData The address of the protected data.\n @param _workerpoolOrder The workerpool order for the computation task.\n @param _app The address of the app that will consume the protected data.\n @return The unique identifier (deal ID) of the created deal on the iExec platform." + }, + "functionSelector": "d835c337", + "id": 11308, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "consumeProtectedData", + "nameLocation": "5977:20:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11298, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "6015:14:42", + "nodeType": "VariableDeclaration", + "scope": 11308, + "src": "6007:22:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6007:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11301, + "mutability": "mutable", + "name": "_workerpoolOrder", + "nameLocation": "6082:16:42", + "nodeType": "VariableDeclaration", + "scope": 11308, + "src": "6039:59:42", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + }, + "typeName": { + "id": 11300, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11299, + "name": "IexecLibOrders_v5.WorkerpoolOrder", + "nameLocations": [ + "6039:17:42", + "6057:15:42" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "6039:33:42" + }, + "referencedDeclaration": 11503, + "src": "6039:33:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11303, + "mutability": "mutable", + "name": "_app", + "nameLocation": "6116:4:42", + "nodeType": "VariableDeclaration", + "scope": 11308, + "src": "6108:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6108:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5997:129:42" + }, + "returnParameters": { + "id": 11307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11306, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11308, + "src": "6145:7:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11305, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6145:7:42", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6144:9:42" + }, + "scope": 11343, + "src": "5968:186:42", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11309, + "nodeType": "StructuredDocumentation", + "src": "6160:438:42", + "text": " Retrieves the rental expiration timestamp for a specific protected data and renter.\n This function allows querying the expiration timestamp of a rental agreement\n between a specific protected data item and a renter.\n @param _protectedData The address of the protected data item.\n @param _renterAddress The address of the renter.\n @return The rental expiration timestamp as a uint48." + }, + "functionSelector": "ea46d1aa", + "id": 11318, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProtectedDataRenter", + "nameLocation": "6612:22:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11311, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "6652:14:42", + "nodeType": "VariableDeclaration", + "scope": 11318, + "src": "6644:22:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6644:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11313, + "mutability": "mutable", + "name": "_renterAddress", + "nameLocation": "6684:14:42", + "nodeType": "VariableDeclaration", + "scope": 11318, + "src": "6676:22:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6676:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6634:70:42" + }, + "returnParameters": { + "id": 11317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11318, + "src": "6728:6:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11315, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "6728:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "6727:8:42" + }, + "scope": 11343, + "src": "6603:133:42", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11319, + "nodeType": "StructuredDocumentation", + "src": "6742:435:42", + "text": " Retrieves the subscription expiration timestamp for a specific collection and subscriber.\n This function allows querying the expiration timestamp of a subscription\n for a specific collection and a subscriber.\n @param _collectionTokenId The ID of the collection.\n @param _subscriberAddress The address of the subscriber.\n @return The subscription expiration timestamp as a uint48." + }, + "functionSelector": "c3533ba2", + "id": 11328, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getCollectionSubscriber", + "nameLocation": "7191:23:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11321, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "7232:18:42", + "nodeType": "VariableDeclaration", + "scope": 11328, + "src": "7224:26:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7224:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11323, + "mutability": "mutable", + "name": "_subscriberAddress", + "nameLocation": "7268:18:42", + "nodeType": "VariableDeclaration", + "scope": 11328, + "src": "7260:26:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7260:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7214:78:42" + }, + "returnParameters": { + "id": 11327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11326, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11328, + "src": "7316:6:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11325, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "7316:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "7315:8:42" + }, + "scope": 11343, + "src": "7182:142:42", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11329, + "nodeType": "StructuredDocumentation", + "src": "7330:501:42", + "text": " Callback function call after in the approveAndCall Poco function. It allows end user to approve\n and call the desired function in the same transaction.\n @param _sender - The msg.sender that call the approveAndCall function in the Poco.\n @param _value - The value set in approveAndCall function.\n @param _extraData - The callData representing the encoded function with signature to call (eg: subscribeToCollection, rentProtectedData, buyProtectedData)." + }, + "functionSelector": "8f4ffcb1", + "id": 11342, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "receiveApproval", + "nameLocation": "7845:15:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11331, + "mutability": "mutable", + "name": "_sender", + "nameLocation": "7878:7:42", + "nodeType": "VariableDeclaration", + "scope": 11342, + "src": "7870:15:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7870:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11333, + "mutability": "mutable", + "name": "_value", + "nameLocation": "7903:6:42", + "nodeType": "VariableDeclaration", + "scope": 11342, + "src": "7895:14:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7895:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11335, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11342, + "src": "7919:7:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7919:7:42", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11337, + "mutability": "mutable", + "name": "_extraData", + "nameLocation": "7951:10:42", + "nodeType": "VariableDeclaration", + "scope": 11342, + "src": "7936:25:42", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11336, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7936:5:42", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7860:107:42" + }, + "returnParameters": { + "id": 11341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11340, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11342, + "src": "7986:4:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11339, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7986:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7985:6:42" + }, + "scope": 11343, + "src": "7836:156:42", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11344, + "src": "1557:6437:42", + "usedErrors": [ + 11131, + 11136, + 11139, + 11223, + 11230, + 11235, + 11240, + 11245, + 11248, + 11635, + 11642, + 11647, + 11652, + 11660, + 11728, + 11733, + 11740, + 11805, + 11810, + 11817, + 11825 + ], + "usedEvents": [ + 11150, + 11258, + 11676, + 11683, + 11694, + 11755, + 11762, + 11771, + 11839, + 11848, + 11855, + 11862 + ] + } + ], + "src": "1246:6749:42" + }, + "id": 42 + }, + "contracts/interfaces/IPoCo.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IPoCo.sol", + "exportedSymbols": { + "IPoCo": [ + 11439 + ], + "IexecLibOrders_v5": [ + 11573 + ] + }, + "id": 11574, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11345, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:43" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IPoCo", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11439, + "linearizedBaseContracts": [ + 11439 + ], + "name": "IPoCo", + "nameLocation": "1363:5:43", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "d0e30db0", + "id": 11350, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "1409:7:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11346, + "nodeType": "ParameterList", + "parameters": [], + "src": "1416:2:43" + }, + "returnParameters": { + "id": 11349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11348, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11350, + "src": "1445:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11347, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1445:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1444:6:43" + }, + "scope": 11439, + "src": "1400:51:43", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "095ea7b3", + "id": 11359, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "1645:7:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11355, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11352, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1661:7:43", + "nodeType": "VariableDeclaration", + "scope": 11359, + "src": "1653:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11351, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1653:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11354, + "mutability": "mutable", + "name": "value", + "nameLocation": "1678:5:43", + "nodeType": "VariableDeclaration", + "scope": 11359, + "src": "1670:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1670:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1652:32:43" + }, + "returnParameters": { + "id": 11358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11357, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11359, + "src": "1703:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11356, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1703:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1702:6:43" + }, + "scope": 11439, + "src": "1636:73:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "cae9ca51", + "id": 11370, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approveAndCall", + "nameLocation": "1723:14:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11361, + "mutability": "mutable", + "name": "spender", + "nameLocation": "1755:7:43", + "nodeType": "VariableDeclaration", + "scope": 11370, + "src": "1747:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1747:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11363, + "mutability": "mutable", + "name": "value", + "nameLocation": "1780:5:43", + "nodeType": "VariableDeclaration", + "scope": 11370, + "src": "1772:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1772:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11365, + "mutability": "mutable", + "name": "extraData", + "nameLocation": "1810:9:43", + "nodeType": "VariableDeclaration", + "scope": 11370, + "src": "1795:24:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11364, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1795:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1737:88:43" + }, + "returnParameters": { + "id": 11369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11368, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11370, + "src": "1844:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11367, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1844:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1843:6:43" + }, + "scope": 11439, + "src": "1714:136:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "23b872dd", + "id": 11381, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "1864:12:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11372, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1894:6:43", + "nodeType": "VariableDeclaration", + "scope": 11381, + "src": "1886:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11374, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "1918:9:43", + "nodeType": "VariableDeclaration", + "scope": 11381, + "src": "1910:17:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1910:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11376, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1945:6:43", + "nodeType": "VariableDeclaration", + "scope": 11381, + "src": "1937:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1937:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1876:81:43" + }, + "returnParameters": { + "id": 11380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11379, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11381, + "src": "1976:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1976:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1975:6:43" + }, + "scope": 11439, + "src": "1855:127:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "70a08231", + "id": 11388, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "1996:9:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11383, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2014:5:43", + "nodeType": "VariableDeclaration", + "scope": 11388, + "src": "2006:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2006:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2005:15:43" + }, + "returnParameters": { + "id": 11387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11386, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11388, + "src": "2044:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2044:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2043:9:43" + }, + "scope": 11439, + "src": "1987:66:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "dd62ed3e", + "id": 11397, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "2067:9:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11390, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2085:5:43", + "nodeType": "VariableDeclaration", + "scope": 11397, + "src": "2077:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2077:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11392, + "mutability": "mutable", + "name": "spender", + "nameLocation": "2100:7:43", + "nodeType": "VariableDeclaration", + "scope": 11397, + "src": "2092:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2092:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2076:32:43" + }, + "returnParameters": { + "id": 11396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11395, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11397, + "src": "2132:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2132:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2131:9:43" + }, + "scope": 11439, + "src": "2058:83:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "b2b07e66", + "id": 11403, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "manageAppOrder", + "nameLocation": "2184:14:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11400, + "mutability": "mutable", + "name": "operation", + "nameLocation": "2244:9:43", + "nodeType": "VariableDeclaration", + "scope": 11403, + "src": "2199:54:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrderOperation_$11545_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrderOperation" + }, + "typeName": { + "id": 11399, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11398, + "name": "IexecLibOrders_v5.AppOrderOperation", + "nameLocations": [ + "2199:17:43", + "2217:17:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11545, + "src": "2199:35:43" + }, + "referencedDeclaration": 11545, + "src": "2199:35:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrderOperation_$11545_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrderOperation" + } + }, + "visibility": "internal" + } + ], + "src": "2198:56:43" + }, + "returnParameters": { + "id": 11402, + "nodeType": "ParameterList", + "parameters": [], + "src": "2263:0:43" + }, + "scope": 11439, + "src": "2175:89:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "4b747106", + "id": 11409, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "manageDatasetOrder", + "nameLocation": "2278:18:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11406, + "mutability": "mutable", + "name": "operation", + "nameLocation": "2355:9:43", + "nodeType": "VariableDeclaration", + "scope": 11409, + "src": "2306:58:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrderOperation_$11554_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrderOperation" + }, + "typeName": { + "id": 11405, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11404, + "name": "IexecLibOrders_v5.DatasetOrderOperation", + "nameLocations": [ + "2306:17:43", + "2324:21:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11554, + "src": "2306:39:43" + }, + "referencedDeclaration": 11554, + "src": "2306:39:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrderOperation_$11554_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrderOperation" + } + }, + "visibility": "internal" + } + ], + "src": "2296:74:43" + }, + "returnParameters": { + "id": 11408, + "nodeType": "ParameterList", + "parameters": [], + "src": "2379:0:43" + }, + "scope": 11439, + "src": "2269:111:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "7e34a077", + "id": 11415, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "manageWorkerpoolOrder", + "nameLocation": "2394:21:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11412, + "mutability": "mutable", + "name": "operation", + "nameLocation": "2477:9:43", + "nodeType": "VariableDeclaration", + "scope": 11415, + "src": "2425:61:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrderOperation_$11563_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrderOperation" + }, + "typeName": { + "id": 11411, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11410, + "name": "IexecLibOrders_v5.WorkerpoolOrderOperation", + "nameLocations": [ + "2425:17:43", + "2443:24:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11563, + "src": "2425:42:43" + }, + "referencedDeclaration": 11563, + "src": "2425:42:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrderOperation_$11563_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrderOperation" + } + }, + "visibility": "internal" + } + ], + "src": "2415:77:43" + }, + "returnParameters": { + "id": 11414, + "nodeType": "ParameterList", + "parameters": [], + "src": "2501:0:43" + }, + "scope": 11439, + "src": "2385:117:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "8dd971d5", + "id": 11421, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "manageRequestOrder", + "nameLocation": "2516:18:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11418, + "mutability": "mutable", + "name": "operation", + "nameLocation": "2593:9:43", + "nodeType": "VariableDeclaration", + "scope": 11421, + "src": "2544:58:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation" + }, + "typeName": { + "id": 11417, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11416, + "name": "IexecLibOrders_v5.RequestOrderOperation", + "nameLocations": [ + "2544:17:43", + "2562:21:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11572, + "src": "2544:39:43" + }, + "referencedDeclaration": 11572, + "src": "2544:39:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrderOperation_$11572_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrderOperation" + } + }, + "visibility": "internal" + } + ], + "src": "2534:74:43" + }, + "returnParameters": { + "id": 11420, + "nodeType": "ParameterList", + "parameters": [], + "src": "2617:0:43" + }, + "scope": 11439, + "src": "2507:111:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "functionSelector": "156194d4", + "id": 11438, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "matchOrders", + "nameLocation": "2651:11:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11424, + "mutability": "mutable", + "name": "appOrder", + "nameLocation": "2708:8:43", + "nodeType": "VariableDeclaration", + "scope": 11438, + "src": "2672:44:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + }, + "typeName": { + "id": 11423, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11422, + "name": "IexecLibOrders_v5.AppOrder", + "nameLocations": [ + "2672:17:43", + "2690:8:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11461, + "src": "2672:26:43" + }, + "referencedDeclaration": 11461, + "src": "2672:26:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11427, + "mutability": "mutable", + "name": "datasetOrder", + "nameLocation": "2766:12:43", + "nodeType": "VariableDeclaration", + "scope": 11438, + "src": "2726:52:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + }, + "typeName": { + "id": 11426, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11425, + "name": "IexecLibOrders_v5.DatasetOrder", + "nameLocations": [ + "2726:17:43", + "2744:12:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11480, + "src": "2726:30:43" + }, + "referencedDeclaration": 11480, + "src": "2726:30:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11430, + "mutability": "mutable", + "name": "workerpoolOrder", + "nameLocation": "2831:15:43", + "nodeType": "VariableDeclaration", + "scope": 11438, + "src": "2788:58:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + }, + "typeName": { + "id": 11429, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11428, + "name": "IexecLibOrders_v5.WorkerpoolOrder", + "nameLocations": [ + "2788:17:43", + "2806:15:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "2788:33:43" + }, + "referencedDeclaration": 11503, + "src": "2788:33:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11433, + "mutability": "mutable", + "name": "requestOrder", + "nameLocation": "2896:12:43", + "nodeType": "VariableDeclaration", + "scope": 11438, + "src": "2856:52:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_calldata_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + }, + "typeName": { + "id": 11432, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11431, + "name": "IexecLibOrders_v5.RequestOrder", + "nameLocations": [ + "2856:17:43", + "2874:12:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11536, + "src": "2856:30:43" + }, + "referencedDeclaration": 11536, + "src": "2856:30:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + } + }, + "visibility": "internal" + } + ], + "src": "2662:252:43" + }, + "returnParameters": { + "id": 11437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11436, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11438, + "src": "2933:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11435, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2933:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2932:9:43" + }, + "scope": 11439, + "src": "2642:300:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11574, + "src": "1353:1591:43", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IexecLibOrders_v5", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 11573, + "linearizedBaseContracts": [ + 11573 + ], + "name": "IexecLibOrders_v5", + "nameLocation": "2986:17:43", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IexecLibOrders_v5.OrderOperationEnum", + "id": 11442, + "members": [ + { + "id": 11440, + "name": "SIGN", + "nameLocation": "3044:4:43", + "nodeType": "EnumValue", + "src": "3044:4:43" + }, + { + "id": 11441, + "name": "CLOSE", + "nameLocation": "3058:5:43", + "nodeType": "EnumValue", + "src": "3058:5:43" + } + ], + "name": "OrderOperationEnum", + "nameLocation": "3015:18:43", + "nodeType": "EnumDefinition", + "src": "3010:59:43" + }, + { + "canonicalName": "IexecLibOrders_v5.AppOrder", + "id": 11461, + "members": [ + { + "constant": false, + "id": 11444, + "mutability": "mutable", + "name": "app", + "nameLocation": "3109:3:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3101:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11443, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3101:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11446, + "mutability": "mutable", + "name": "appprice", + "nameLocation": "3130:8:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3122:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3122:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11448, + "mutability": "mutable", + "name": "volume", + "nameLocation": "3156:6:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3148:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3148:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11450, + "mutability": "mutable", + "name": "tag", + "nameLocation": "3180:3:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3172:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11449, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3172:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11452, + "mutability": "mutable", + "name": "datasetrestrict", + "nameLocation": "3201:15:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3193:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11451, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3193:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11454, + "mutability": "mutable", + "name": "workerpoolrestrict", + "nameLocation": "3234:18:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3226:26:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11453, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3226:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11456, + "mutability": "mutable", + "name": "requesterrestrict", + "nameLocation": "3270:17:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3262:25:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3262:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11458, + "mutability": "mutable", + "name": "salt", + "nameLocation": "3305:4:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3297:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11457, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3297:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11460, + "mutability": "mutable", + "name": "sign", + "nameLocation": "3325:4:43", + "nodeType": "VariableDeclaration", + "scope": 11461, + "src": "3319:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11459, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3319:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "AppOrder", + "nameLocation": "3082:8:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "3075:261:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.DatasetOrder", + "id": 11480, + "members": [ + { + "constant": false, + "id": 11463, + "mutability": "mutable", + "name": "dataset", + "nameLocation": "3380:7:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3372:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3372:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11465, + "mutability": "mutable", + "name": "datasetprice", + "nameLocation": "3405:12:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3397:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3397:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11467, + "mutability": "mutable", + "name": "volume", + "nameLocation": "3435:6:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3427:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3427:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11469, + "mutability": "mutable", + "name": "tag", + "nameLocation": "3459:3:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3451:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3451:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11471, + "mutability": "mutable", + "name": "apprestrict", + "nameLocation": "3480:11:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3472:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3472:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11473, + "mutability": "mutable", + "name": "workerpoolrestrict", + "nameLocation": "3509:18:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3501:26:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3501:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11475, + "mutability": "mutable", + "name": "requesterrestrict", + "nameLocation": "3545:17:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3537:25:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3537:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11477, + "mutability": "mutable", + "name": "salt", + "nameLocation": "3580:4:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3572:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11476, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3572:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11479, + "mutability": "mutable", + "name": "sign", + "nameLocation": "3600:4:43", + "nodeType": "VariableDeclaration", + "scope": 11480, + "src": "3594:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11478, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3594:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "DatasetOrder", + "nameLocation": "3349:12:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "3342:269:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.WorkerpoolOrder", + "id": 11503, + "members": [ + { + "constant": false, + "id": 11482, + "mutability": "mutable", + "name": "workerpool", + "nameLocation": "3658:10:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3650:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3650:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11484, + "mutability": "mutable", + "name": "workerpoolprice", + "nameLocation": "3686:15:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3678:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11483, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3678:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11486, + "mutability": "mutable", + "name": "volume", + "nameLocation": "3719:6:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3711:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3711:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11488, + "mutability": "mutable", + "name": "tag", + "nameLocation": "3743:3:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3735:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11487, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3735:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11490, + "mutability": "mutable", + "name": "category", + "nameLocation": "3764:8:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3756:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3756:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11492, + "mutability": "mutable", + "name": "trust", + "nameLocation": "3790:5:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3782:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3782:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11494, + "mutability": "mutable", + "name": "apprestrict", + "nameLocation": "3813:11:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3805:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3805:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11496, + "mutability": "mutable", + "name": "datasetrestrict", + "nameLocation": "3842:15:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3834:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11495, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3834:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11498, + "mutability": "mutable", + "name": "requesterrestrict", + "nameLocation": "3875:17:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3867:25:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3867:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11500, + "mutability": "mutable", + "name": "salt", + "nameLocation": "3910:4:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3902:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11499, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3902:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11502, + "mutability": "mutable", + "name": "sign", + "nameLocation": "3930:4:43", + "nodeType": "VariableDeclaration", + "scope": 11503, + "src": "3924:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3924:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "WorkerpoolOrder", + "nameLocation": "3624:15:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "3617:324:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.RequestOrder", + "id": 11536, + "members": [ + { + "constant": false, + "id": 11505, + "mutability": "mutable", + "name": "app", + "nameLocation": "3985:3:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "3977:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3977:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11507, + "mutability": "mutable", + "name": "appmaxprice", + "nameLocation": "4006:11:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "3998:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3998:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11509, + "mutability": "mutable", + "name": "dataset", + "nameLocation": "4035:7:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4027:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4027:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11511, + "mutability": "mutable", + "name": "datasetmaxprice", + "nameLocation": "4060:15:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4052:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4052:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11513, + "mutability": "mutable", + "name": "workerpool", + "nameLocation": "4093:10:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4085:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4085:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11515, + "mutability": "mutable", + "name": "workerpoolmaxprice", + "nameLocation": "4121:18:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4113:26:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4113:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11517, + "mutability": "mutable", + "name": "requester", + "nameLocation": "4157:9:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4149:17:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11516, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4149:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11519, + "mutability": "mutable", + "name": "volume", + "nameLocation": "4184:6:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4176:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4176:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11521, + "mutability": "mutable", + "name": "tag", + "nameLocation": "4208:3:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4200:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11520, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4200:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11523, + "mutability": "mutable", + "name": "category", + "nameLocation": "4229:8:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4221:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4221:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11525, + "mutability": "mutable", + "name": "trust", + "nameLocation": "4255:5:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4247:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4247:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11527, + "mutability": "mutable", + "name": "beneficiary", + "nameLocation": "4278:11:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4270:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11526, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4270:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11529, + "mutability": "mutable", + "name": "callback", + "nameLocation": "4307:8:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4299:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4299:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11531, + "mutability": "mutable", + "name": "params", + "nameLocation": "4332:6:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4325:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 11530, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4325:6:43", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11533, + "mutability": "mutable", + "name": "salt", + "nameLocation": "4356:4:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4348:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 11532, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4348:7:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11535, + "mutability": "mutable", + "name": "sign", + "nameLocation": "4376:4:43", + "nodeType": "VariableDeclaration", + "scope": 11536, + "src": "4370:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11534, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4370:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "RequestOrder", + "nameLocation": "3954:12:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "3947:440:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.AppOrderOperation", + "id": 11545, + "members": [ + { + "constant": false, + "id": 11539, + "mutability": "mutable", + "name": "order", + "nameLocation": "4437:5:43", + "nodeType": "VariableDeclaration", + "scope": 11545, + "src": "4428:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + }, + "typeName": { + "id": 11538, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11537, + "name": "AppOrder", + "nameLocations": [ + "4428:8:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11461, + "src": "4428:8:43" + }, + "referencedDeclaration": 11461, + "src": "4428:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AppOrder_$11461_storage_ptr", + "typeString": "struct IexecLibOrders_v5.AppOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11542, + "mutability": "mutable", + "name": "operation", + "nameLocation": "4471:9:43", + "nodeType": "VariableDeclaration", + "scope": 11545, + "src": "4452:28:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + "typeName": { + "id": 11541, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11540, + "name": "OrderOperationEnum", + "nameLocations": [ + "4452:18:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11442, + "src": "4452:18:43" + }, + "referencedDeclaration": 11442, + "src": "4452:18:43", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11544, + "mutability": "mutable", + "name": "sign", + "nameLocation": "4496:4:43", + "nodeType": "VariableDeclaration", + "scope": 11545, + "src": "4490:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11543, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4490:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "AppOrderOperation", + "nameLocation": "4400:17:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "4393:114:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.DatasetOrderOperation", + "id": 11554, + "members": [ + { + "constant": false, + "id": 11548, + "mutability": "mutable", + "name": "order", + "nameLocation": "4565:5:43", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "4552:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + }, + "typeName": { + "id": 11547, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11546, + "name": "DatasetOrder", + "nameLocations": [ + "4552:12:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11480, + "src": "4552:12:43" + }, + "referencedDeclaration": 11480, + "src": "4552:12:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DatasetOrder_$11480_storage_ptr", + "typeString": "struct IexecLibOrders_v5.DatasetOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11551, + "mutability": "mutable", + "name": "operation", + "nameLocation": "4599:9:43", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "4580:28:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + "typeName": { + "id": 11550, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11549, + "name": "OrderOperationEnum", + "nameLocations": [ + "4580:18:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11442, + "src": "4580:18:43" + }, + "referencedDeclaration": 11442, + "src": "4580:18:43", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11553, + "mutability": "mutable", + "name": "sign", + "nameLocation": "4624:4:43", + "nodeType": "VariableDeclaration", + "scope": 11554, + "src": "4618:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11552, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4618:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "DatasetOrderOperation", + "nameLocation": "4520:21:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "4513:122:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.WorkerpoolOrderOperation", + "id": 11563, + "members": [ + { + "constant": false, + "id": 11557, + "mutability": "mutable", + "name": "order", + "nameLocation": "4699:5:43", + "nodeType": "VariableDeclaration", + "scope": 11563, + "src": "4683:21:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + }, + "typeName": { + "id": 11556, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11555, + "name": "WorkerpoolOrder", + "nameLocations": [ + "4683:15:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11503, + "src": "4683:15:43" + }, + "referencedDeclaration": 11503, + "src": "4683:15:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_WorkerpoolOrder_$11503_storage_ptr", + "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11560, + "mutability": "mutable", + "name": "operation", + "nameLocation": "4733:9:43", + "nodeType": "VariableDeclaration", + "scope": 11563, + "src": "4714:28:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + "typeName": { + "id": 11559, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11558, + "name": "OrderOperationEnum", + "nameLocations": [ + "4714:18:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11442, + "src": "4714:18:43" + }, + "referencedDeclaration": 11442, + "src": "4714:18:43", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11562, + "mutability": "mutable", + "name": "sign", + "nameLocation": "4758:4:43", + "nodeType": "VariableDeclaration", + "scope": 11563, + "src": "4752:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11561, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4752:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "WorkerpoolOrderOperation", + "nameLocation": "4648:24:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "4641:128:43", + "visibility": "public" + }, + { + "canonicalName": "IexecLibOrders_v5.RequestOrderOperation", + "id": 11572, + "members": [ + { + "constant": false, + "id": 11566, + "mutability": "mutable", + "name": "order", + "nameLocation": "4827:5:43", + "nodeType": "VariableDeclaration", + "scope": 11572, + "src": "4814:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + }, + "typeName": { + "id": 11565, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11564, + "name": "RequestOrder", + "nameLocations": [ + "4814:12:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11536, + "src": "4814:12:43" + }, + "referencedDeclaration": 11536, + "src": "4814:12:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestOrder_$11536_storage_ptr", + "typeString": "struct IexecLibOrders_v5.RequestOrder" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11569, + "mutability": "mutable", + "name": "operation", + "nameLocation": "4861:9:43", + "nodeType": "VariableDeclaration", + "scope": 11572, + "src": "4842:28:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + }, + "typeName": { + "id": 11568, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11567, + "name": "OrderOperationEnum", + "nameLocations": [ + "4842:18:43" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11442, + "src": "4842:18:43" + }, + "referencedDeclaration": 11442, + "src": "4842:18:43", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OrderOperationEnum_$11442", + "typeString": "enum IexecLibOrders_v5.OrderOperationEnum" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11571, + "mutability": "mutable", + "name": "sign", + "nameLocation": "4886:4:43", + "nodeType": "VariableDeclaration", + "scope": 11572, + "src": "4880:10:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11570, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4880:5:43", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "RequestOrderOperation", + "nameLocation": "4782:21:43", + "nodeType": "StructDefinition", + "scope": 11573, + "src": "4775:122:43", + "visibility": "public" + } + ], + "scope": 11574, + "src": "2978:1921:43", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:3658:43" + }, + "id": 43 + }, + "contracts/interfaces/IRegistry.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IRegistry.sol", + "exportedSymbols": { + "IRegistry": [ + 11628 + ] + }, + "id": 11629, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11575, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:44" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IRegistry", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11628, + "linearizedBaseContracts": [ + 11628 + ], + "name": "IRegistry", + "nameLocation": "1277:9:44", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11576, + "nodeType": "StructuredDocumentation", + "src": "1293:189:44", + "text": " Return the owner of the specified token ID.\n @param tokenId The ID of the token to query the owner for.\n @return The address of the owner of the token." + }, + "functionSelector": "6352211e", + "id": 11583, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nameLocation": "1496:7:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11578, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1512:7:44", + "nodeType": "VariableDeclaration", + "scope": 11583, + "src": "1504:15:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1504:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1503:17:44" + }, + "returnParameters": { + "id": 11582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11581, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11583, + "src": "1544:7:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1544:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1543:9:44" + }, + "scope": 11628, + "src": "1487:66:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11584, + "nodeType": "StructuredDocumentation", + "src": "1559:227:44", + "text": " Safely transfers the ownership of a given token ID to another address.\n @param from The current owner of the token.\n @param to The new owner.\n @param tokenId The token ID to transfer." + }, + "functionSelector": "42842e0e", + "id": 11593, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "1800:16:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11586, + "mutability": "mutable", + "name": "from", + "nameLocation": "1825:4:44", + "nodeType": "VariableDeclaration", + "scope": 11593, + "src": "1817:12:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1817:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11588, + "mutability": "mutable", + "name": "to", + "nameLocation": "1839:2:44", + "nodeType": "VariableDeclaration", + "scope": 11593, + "src": "1831:10:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1831:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11590, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1851:7:44", + "nodeType": "VariableDeclaration", + "scope": 11593, + "src": "1843:15:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1843:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1816:43:44" + }, + "returnParameters": { + "id": 11592, + "nodeType": "ParameterList", + "parameters": [], + "src": "1868:0:44" + }, + "scope": 11628, + "src": "1791:78:44", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11594, + "nodeType": "StructuredDocumentation", + "src": "1875:216:44", + "text": " Check if an ERC-721 protectedData is registered.\n @param _entry The protected data address to check for registration.\n @return True if the address is registered, false otherwise." + }, + "functionSelector": "c3c5a547", + "id": 11601, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isRegistered", + "nameLocation": "2105:12:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11596, + "mutability": "mutable", + "name": "_entry", + "nameLocation": "2126:6:44", + "nodeType": "VariableDeclaration", + "scope": 11601, + "src": "2118:14:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2117:16:44" + }, + "returnParameters": { + "id": 11600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11599, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11601, + "src": "2157:4:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11598, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2157:4:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2156:6:44" + }, + "scope": 11628, + "src": "2096:67:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11602, + "nodeType": "StructuredDocumentation", + "src": "2169:196:44", + "text": " Approve another address to transfer the given token ID.\n @param to The address to grant approval to.\n @param tokenId The token ID to be approved for transfer." + }, + "functionSelector": "095ea7b3", + "id": 11609, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "2379:7:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11604, + "mutability": "mutable", + "name": "to", + "nameLocation": "2395:2:44", + "nodeType": "VariableDeclaration", + "scope": 11609, + "src": "2387:10:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2387:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11606, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2407:7:44", + "nodeType": "VariableDeclaration", + "scope": 11609, + "src": "2399:15:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2386:29:44" + }, + "returnParameters": { + "id": 11608, + "nodeType": "ParameterList", + "parameters": [], + "src": "2424:0:44" + }, + "scope": 11628, + "src": "2370:55:44", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11610, + "nodeType": "StructuredDocumentation", + "src": "2431:240:44", + "text": " Gets the approved address for a token ID, or zero if no address is set.\n @param tokenId The ID of the token to query.\n @return The approved address for the given token ID, or zero if no approval is set." + }, + "functionSelector": "081812fc", + "id": 11617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nameLocation": "2685:11:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11612, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "2705:7:44", + "nodeType": "VariableDeclaration", + "scope": 11617, + "src": "2697:15:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2697:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2696:17:44" + }, + "returnParameters": { + "id": 11616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11615, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11617, + "src": "2737:7:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2737:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2736:9:44" + }, + "scope": 11628, + "src": "2676:70:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11618, + "nodeType": "StructuredDocumentation", + "src": "2752:205:44", + "text": "Returns the account approved for tokenId token. TokenId must exist.\n @param owner - Owner of the tokenId\n @param operator - Operator to check if it's authorized or not." + }, + "functionSelector": "e985e9c5", + "id": 11627, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nameLocation": "2971:16:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11620, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2996:5:44", + "nodeType": "VariableDeclaration", + "scope": 11627, + "src": "2988:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2988:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11622, + "mutability": "mutable", + "name": "operator", + "nameLocation": "3011:8:44", + "nodeType": "VariableDeclaration", + "scope": 11627, + "src": "3003:16:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3003:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2987:33:44" + }, + "returnParameters": { + "id": 11626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11625, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11627, + "src": "3044:4:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11624, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3044:4:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3043:6:44" + }, + "scope": 11628, + "src": "2962:88:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11629, + "src": "1267:1785:44", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1241:1812:44" + }, + "id": 44 + }, + "contracts/interfaces/IRental.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IRental.sol", + "exportedSymbols": { + "IRental": [ + 11721 + ] + }, + "id": 11722, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11630, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:45" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IRental", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11721, + "linearizedBaseContracts": [ + 11721 + ], + "name": "IRental", + "nameLocation": "1277:7:45", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11631, + "nodeType": "StructuredDocumentation", + "src": "1291:195:45", + "text": " Custom revert error indicating that the protected data is currently being rented.\n @param protectedData - The address of the protected data currently being rented." + }, + "errorSelector": "fc891e36", + "id": 11635, + "name": "ProtectedDataCurrentlyBeingRented", + "nameLocation": "1497:33:45", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11633, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "1539:13:45", + "nodeType": "VariableDeclaration", + "scope": 11635, + "src": "1531:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1531:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1530:23:45" + }, + "src": "1491:63:45" + }, + { + "documentation": { + "id": 11636, + "nodeType": "StructuredDocumentation", + "src": "1560:283:45", + "text": " Custom revert error indicating that the protected data is available for renting.\n @param collectionTokenId - The ID of the collection containing the protected data.\n @param protectedData - The address of the protected data available for renting." + }, + "errorSelector": "79a647c4", + "id": 11642, + "name": "ProtectedDataAvailableForRenting", + "nameLocation": "1854:32:45", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11638, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "1895:17:45", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1887:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11637, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1887:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11640, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "1922:13:45", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "1914:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11639, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1914:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1886:50:45" + }, + "src": "1848:89:45" + }, + { + "documentation": { + "id": 11643, + "nodeType": "StructuredDocumentation", + "src": "1943:201:45", + "text": " Custom revert error indicating that the protected data is not available for renting.\n @param protectedData - The address of the protected data not available for renting." + }, + "errorSelector": "288c030a", + "id": 11647, + "name": "ProtectedDataNotAvailableForRenting", + "nameLocation": "2155:35:45", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11645, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "2199:13:45", + "nodeType": "VariableDeclaration", + "scope": 11647, + "src": "2191:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2191:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2190:23:45" + }, + "src": "2149:65:45" + }, + { + "documentation": { + "id": 11648, + "nodeType": "StructuredDocumentation", + "src": "2220:134:45", + "text": " Custom revert error indicating that the duration is invalid.\n @param _duration - The invalid duration." + }, + "errorSelector": "2a94078b", + "id": 11652, + "name": "DurationInvalid", + "nameLocation": "2365:15:45", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11650, + "mutability": "mutable", + "name": "_duration", + "nameLocation": "2388:9:45", + "nodeType": "VariableDeclaration", + "scope": 11652, + "src": "2381:16:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11649, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "2381:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "2380:18:45" + }, + "src": "2359:40:45" + }, + { + "documentation": { + "id": 11653, + "nodeType": "StructuredDocumentation", + "src": "2405:219:45", + "text": " Custom revert error indicating that the renting params set are not valide.\n @param protectedData - The address of the protected data.\n @param rentingParams - Current renting params." + }, + "errorSelector": "46aa9515", + "id": 11660, + "name": "InvalidRentingParams", + "nameLocation": "2635:20:45", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11655, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "2664:13:45", + "nodeType": "VariableDeclaration", + "scope": 11660, + "src": "2656:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2656:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11658, + "mutability": "mutable", + "name": "rentingParams", + "nameLocation": "2693:13:45", + "nodeType": "VariableDeclaration", + "scope": 11660, + "src": "2679:27:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 11657, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11656, + "name": "RentingParams", + "nameLocations": [ + "2679:13:45" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "2679:13:45" + }, + "referencedDeclaration": 11666, + "src": "2679:13:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "2655:52:45" + }, + "src": "2629:79:45" + }, + { + "canonicalName": "IRental.RentingParams", + "documentation": { + "id": 11661, + "nodeType": "StructuredDocumentation", + "src": "2714:235:45", + "text": " Renting parameters for a protected data item.\n @param price - The price in wei for renting the protected data.\n @param duration - The duration in seconds for which the protected data can be rented." + }, + "id": 11666, + "members": [ + { + "constant": false, + "id": 11663, + "mutability": "mutable", + "name": "price", + "nameLocation": "2992:5:45", + "nodeType": "VariableDeclaration", + "scope": 11666, + "src": "2985:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11662, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "2985:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11665, + "mutability": "mutable", + "name": "duration", + "nameLocation": "3089:8:45", + "nodeType": "VariableDeclaration", + "scope": 11666, + "src": "3082:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 11664, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "3082:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + } + ], + "name": "RentingParams", + "nameLocation": "2961:13:45", + "nodeType": "StructDefinition", + "scope": 11721, + "src": "2954:189:45", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 11667, + "nodeType": "StructuredDocumentation", + "src": "3149:295:45", + "text": " Event emitted when protected data is added for renting in a collection.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data.\n @param rentingParams - The renting params for the protected data." + }, + "eventSelector": "796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac", + "id": 11676, + "name": "ProtectedDataAddedForRenting", + "nameLocation": "3455:28:45", + "nodeType": "EventDefinition", + "parameters": { + "id": 11675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11669, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "3501:17:45", + "nodeType": "VariableDeclaration", + "scope": 11676, + "src": "3493:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3493:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11671, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "3536:13:45", + "nodeType": "VariableDeclaration", + "scope": 11676, + "src": "3528:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3528:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11674, + "indexed": false, + "mutability": "mutable", + "name": "rentingParams", + "nameLocation": "3573:13:45", + "nodeType": "VariableDeclaration", + "scope": 11676, + "src": "3559:27:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 11673, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11672, + "name": "RentingParams", + "nameLocations": [ + "3559:13:45" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "3559:13:45" + }, + "referencedDeclaration": 11666, + "src": "3559:13:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "3483:109:45" + }, + "src": "3449:144:45" + }, + { + "anonymous": false, + "documentation": { + "id": 11677, + "nodeType": "StructuredDocumentation", + "src": "3599:225:45", + "text": " Event emitted when protected data is removed from renting in a collection.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data." + }, + "eventSelector": "b76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb", + "id": 11683, + "name": "ProtectedDataRemovedFromRenting", + "nameLocation": "3835:31:45", + "nodeType": "EventDefinition", + "parameters": { + "id": 11682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11679, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "3875:17:45", + "nodeType": "VariableDeclaration", + "scope": 11683, + "src": "3867:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3867:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11681, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "3902:13:45", + "nodeType": "VariableDeclaration", + "scope": 11683, + "src": "3894:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3894:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3866:50:45" + }, + "src": "3829:88:45" + }, + { + "anonymous": false, + "documentation": { + "id": 11684, + "nodeType": "StructuredDocumentation", + "src": "3923:331:45", + "text": " Event emitted when a new rental is created for protected data in a collection.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data.\n @param renter - The address of the renter.\n @param endDate - The end date of the rental." + }, + "eventSelector": "e2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc88", + "id": 11694, + "name": "NewRental", + "nameLocation": "4265:9:45", + "nodeType": "EventDefinition", + "parameters": { + "id": 11693, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11686, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "4292:17:45", + "nodeType": "VariableDeclaration", + "scope": 11694, + "src": "4284:25:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4284:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11688, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "4327:13:45", + "nodeType": "VariableDeclaration", + "scope": 11694, + "src": "4319:21:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4319:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11690, + "indexed": false, + "mutability": "mutable", + "name": "renter", + "nameLocation": "4358:6:45", + "nodeType": "VariableDeclaration", + "scope": 11694, + "src": "4350:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4350:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11692, + "indexed": false, + "mutability": "mutable", + "name": "endDate", + "nameLocation": "4381:7:45", + "nodeType": "VariableDeclaration", + "scope": 11694, + "src": "4374:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11691, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "4374:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "4274:120:45" + }, + "src": "4259:136:45" + }, + { + "documentation": { + "id": 11695, + "nodeType": "StructuredDocumentation", + "src": "4401:462:45", + "text": " Enables renting of protected data using funds from the caller's iExec account.\n Sufficient Stacked RLC must be available, and the contract must be authorized to\n spend the required amount on the caller's behalf.\n @param _protectedData Address of the data to be rented.\n @param _rentingParams In order to avoid the collection owner to front run renters.\n @return uint48 Timestamp of the rental's expiration." + }, + "functionSelector": "9a82c2bd", + "id": 11705, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "rentProtectedData", + "nameLocation": "4877:17:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11697, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "4912:14:45", + "nodeType": "VariableDeclaration", + "scope": 11705, + "src": "4904:22:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4904:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11700, + "mutability": "mutable", + "name": "_rentingParams", + "nameLocation": "4957:14:45", + "nodeType": "VariableDeclaration", + "scope": 11705, + "src": "4936:35:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_memory_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 11699, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11698, + "name": "RentingParams", + "nameLocations": [ + "4936:13:45" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "4936:13:45" + }, + "referencedDeclaration": 11666, + "src": "4936:13:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "4894:83:45" + }, + "returnParameters": { + "id": 11704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11703, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11705, + "src": "4996:6:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11702, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "4996:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "4995:8:45" + }, + "scope": 11721, + "src": "4868:136:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11706, + "nodeType": "StructuredDocumentation", + "src": "5010:326:45", + "text": " Set protected data from a collection available for renting with the\n specified price and duration.\n @param _protectedData The address of the protected data to be added for renting.\n @param _rentingParams The renting params for which the protected data will be available for renting." + }, + "functionSelector": "ff811f60", + "id": 11714, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setProtectedDataToRenting", + "nameLocation": "5350:25:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11708, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5393:14:45", + "nodeType": "VariableDeclaration", + "scope": 11714, + "src": "5385:22:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5385:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11711, + "mutability": "mutable", + "name": "_rentingParams", + "nameLocation": "5440:14:45", + "nodeType": "VariableDeclaration", + "scope": 11714, + "src": "5417:37:45", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_calldata_ptr", + "typeString": "struct IRental.RentingParams" + }, + "typeName": { + "id": 11710, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11709, + "name": "RentingParams", + "nameLocations": [ + "5417:13:45" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11666, + "src": "5417:13:45" + }, + "referencedDeclaration": 11666, + "src": "5417:13:45", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RentingParams_$11666_storage_ptr", + "typeString": "struct IRental.RentingParams" + } + }, + "visibility": "internal" + } + ], + "src": "5375:85:45" + }, + "returnParameters": { + "id": 11713, + "nodeType": "ParameterList", + "parameters": [], + "src": "5469:0:45" + }, + "scope": 11721, + "src": "5341:129:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11715, + "nodeType": "StructuredDocumentation", + "src": "5476:238:45", + "text": " Remove protected data from the available list of renting.\n Cannot be rented anymore, ongoing rental are still valid\n @param _protectedData The address of the protected data to be removed from renting." + }, + "functionSelector": "185e4e8d", + "id": 11720, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataFromRenting", + "nameLocation": "5728:30:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11717, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5767:14:45", + "nodeType": "VariableDeclaration", + "scope": 11720, + "src": "5759:22:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11716, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5759:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5758:24:45" + }, + "returnParameters": { + "id": 11719, + "nodeType": "ParameterList", + "parameters": [], + "src": "5791:0:45" + }, + "scope": 11721, + "src": "5719:73:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11722, + "src": "1267:4527:45", + "usedErrors": [ + 11635, + 11642, + 11647, + 11652, + 11660 + ], + "usedEvents": [ + 11676, + 11683, + 11694 + ] + } + ], + "src": "1241:4554:45" + }, + "id": 45 + }, + "contracts/interfaces/ISale.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ISale.sol", + "exportedSymbols": { + "ISale": [ + 11796 + ] + }, + "id": 11797, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11723, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:46" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ISale", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11796, + "linearizedBaseContracts": [ + 11796 + ], + "name": "ISale", + "nameLocation": "1277:5:46", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11724, + "nodeType": "StructuredDocumentation", + "src": "1289:167:46", + "text": " Custom revert error indicating that the protected data is for sale.\n @param protectedData - The address of the protected data for sale." + }, + "errorSelector": "978f8174", + "id": 11728, + "name": "ProtectedDataForSale", + "nameLocation": "1467:20:46", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11726, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "1496:13:46", + "nodeType": "VariableDeclaration", + "scope": 11728, + "src": "1488:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1488:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1487:23:46" + }, + "src": "1461:50:46" + }, + { + "documentation": { + "id": 11729, + "nodeType": "StructuredDocumentation", + "src": "1517:175:46", + "text": " Custom revert error indicating that the protected data is not for sale.\n @param protectedData - The address of the protected data not for sale." + }, + "errorSelector": "46bb405d", + "id": 11733, + "name": "ProtectedDataNotForSale", + "nameLocation": "1703:23:46", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11731, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "1735:13:46", + "nodeType": "VariableDeclaration", + "scope": 11733, + "src": "1727:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1727:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1726:23:46" + }, + "src": "1697:53:46" + }, + { + "documentation": { + "id": 11734, + "nodeType": "StructuredDocumentation", + "src": "1756:234:46", + "text": " Custom revert error indicating that the protected data is not for sale.\n @param protectedData - The address of the protected data not for sale.\n @param price - The price of the protected data set." + }, + "errorSelector": "0154d424", + "id": 11740, + "name": "InvalidPriceForPurchase", + "nameLocation": "2001:23:46", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11736, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "2033:13:46", + "nodeType": "VariableDeclaration", + "scope": 11740, + "src": "2025:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2025:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11738, + "mutability": "mutable", + "name": "price", + "nameLocation": "2055:5:46", + "nodeType": "VariableDeclaration", + "scope": 11740, + "src": "2048:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11737, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "2048:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "2024:37:46" + }, + "src": "1995:67:46" + }, + { + "canonicalName": "ISale.SellingParams", + "documentation": { + "id": 11741, + "nodeType": "StructuredDocumentation", + "src": "2068:234:46", + "text": " Selling parameters for a protected data item.\n @param isForSale - Indicates whether the protected data is available for sale.\n @param price - The price (in Gwei) for purchasing the protected data." + }, + "id": 11746, + "members": [ + { + "constant": false, + "id": 11743, + "mutability": "mutable", + "name": "isForSale", + "nameLocation": "2343:9:46", + "nodeType": "VariableDeclaration", + "scope": 11746, + "src": "2338:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11742, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2338:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11745, + "mutability": "mutable", + "name": "price", + "nameLocation": "2369:5:46", + "nodeType": "VariableDeclaration", + "scope": 11746, + "src": "2362:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11744, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "2362:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "name": "SellingParams", + "nameLocation": "2314:13:46", + "nodeType": "StructDefinition", + "scope": 11796, + "src": "2307:106:46", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 11747, + "nodeType": "StructuredDocumentation", + "src": "2419:296:46", + "text": " Event emitted when protected data is added for sale in a collection.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data.\n @param price - The price (in Gwei) for purchasing the protected data." + }, + "eventSelector": "ec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd92", + "id": 11755, + "name": "ProtectedDataAddedForSale", + "nameLocation": "2726:25:46", + "nodeType": "EventDefinition", + "parameters": { + "id": 11754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11749, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "2760:17:46", + "nodeType": "VariableDeclaration", + "scope": 11755, + "src": "2752:25:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2752:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11751, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "2787:13:46", + "nodeType": "VariableDeclaration", + "scope": 11755, + "src": "2779:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11750, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2779:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11753, + "indexed": false, + "mutability": "mutable", + "name": "price", + "nameLocation": "2809:5:46", + "nodeType": "VariableDeclaration", + "scope": 11755, + "src": "2802:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11752, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "2802:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "2751:64:46" + }, + "src": "2720:96:46" + }, + { + "anonymous": false, + "documentation": { + "id": 11756, + "nodeType": "StructuredDocumentation", + "src": "2822:222:46", + "text": " Event emitted when protected data is removed from sale in a collection.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data." + }, + "eventSelector": "3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d972", + "id": 11762, + "name": "ProtectedDataRemovedFromSale", + "nameLocation": "3055:28:46", + "nodeType": "EventDefinition", + "parameters": { + "id": 11761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11758, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "3092:17:46", + "nodeType": "VariableDeclaration", + "scope": 11762, + "src": "3084:25:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3084:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11760, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "3119:13:46", + "nodeType": "VariableDeclaration", + "scope": 11762, + "src": "3111:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11759, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3111:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3083:50:46" + }, + "src": "3049:85:46" + }, + { + "anonymous": false, + "documentation": { + "id": 11763, + "nodeType": "StructuredDocumentation", + "src": "3140:476:46", + "text": " Event emitted when protected data is sold from one collection.\n @param collectionTokenIdFrom - The ID of the collection from which the protected data is sold.\n @param protectedData - The address of the protected data.\n @param to - The address to which the protected data is transferred. It could be the\n smart contract itselft, it means that the protected data has moved to another ollection\n or it can be the msg.sender" + }, + "eventSelector": "39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa21", + "id": 11771, + "name": "ProtectedDataSold", + "nameLocation": "3627:17:46", + "nodeType": "EventDefinition", + "parameters": { + "id": 11770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11765, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenIdFrom", + "nameLocation": "3653:21:46", + "nodeType": "VariableDeclaration", + "scope": 11771, + "src": "3645:29:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11764, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3645:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11767, + "indexed": false, + "mutability": "mutable", + "name": "to", + "nameLocation": "3684:2:46", + "nodeType": "VariableDeclaration", + "scope": 11771, + "src": "3676:10:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11766, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3676:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11769, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "3696:13:46", + "nodeType": "VariableDeclaration", + "scope": 11771, + "src": "3688:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11768, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3688:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3644:66:46" + }, + "src": "3621:90:46" + }, + { + "documentation": { + "id": 11772, + "nodeType": "StructuredDocumentation", + "src": "3717:234:46", + "text": " Set protected data available for sale with the specified price.\n @param _protectedData The address of the protected data to be set for sale.\n @param _price The price in wei for the protected data." + }, + "functionSelector": "dc30b8fc", + "id": 11779, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setProtectedDataForSale", + "nameLocation": "3965:23:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11774, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "3997:14:46", + "nodeType": "VariableDeclaration", + "scope": 11779, + "src": "3989:22:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3989:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11776, + "mutability": "mutable", + "name": "_price", + "nameLocation": "4020:6:46", + "nodeType": "VariableDeclaration", + "scope": 11779, + "src": "4013:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11775, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "4013:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "3988:39:46" + }, + "returnParameters": { + "id": 11778, + "nodeType": "ParameterList", + "parameters": [], + "src": "4036:0:46" + }, + "scope": 11796, + "src": "3956:81:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11780, + "nodeType": "StructuredDocumentation", + "src": "4043:169:46", + "text": " Remove protected data from the list available for sale.\n @param _protectedData The address of the protected data to be removed from sale." + }, + "functionSelector": "01d0b634", + "id": 11785, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataForSale", + "nameLocation": "4226:26:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11782, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "4261:14:46", + "nodeType": "VariableDeclaration", + "scope": 11785, + "src": "4253:22:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11781, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4253:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4252:24:46" + }, + "returnParameters": { + "id": 11784, + "nodeType": "ParameterList", + "parameters": [], + "src": "4285:0:46" + }, + "scope": 11796, + "src": "4217:69:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11786, + "nodeType": "StructuredDocumentation", + "src": "4292:648:46", + "text": " Purchases protected data using the buyer's account balance within the platform and transfers ownership\n to a specified address. This method requires the smart contract to be pre-authorized to use the necessary\n funds from the buyer's account (sufficient Stacked RLC must be available). Upon completion, the smart contract will no longer manage the protected data.\n @param _protectedData The address of the protected data being purchased.\n @param _to The recipient address to which the protected data will be transferred.\n @param _price The price that the buyer filled out not to be front run." + }, + "functionSelector": "53574f9e", + "id": 11795, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "buyProtectedData", + "nameLocation": "4954:16:46", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11788, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "4979:14:46", + "nodeType": "VariableDeclaration", + "scope": 11795, + "src": "4971:22:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11787, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4971:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11790, + "mutability": "mutable", + "name": "_to", + "nameLocation": "5003:3:46", + "nodeType": "VariableDeclaration", + "scope": 11795, + "src": "4995:11:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11789, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4995:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11792, + "mutability": "mutable", + "name": "_price", + "nameLocation": "5015:6:46", + "nodeType": "VariableDeclaration", + "scope": 11795, + "src": "5008:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11791, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "5008:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "4970:52:46" + }, + "returnParameters": { + "id": 11794, + "nodeType": "ParameterList", + "parameters": [], + "src": "5031:0:46" + }, + "scope": 11796, + "src": "4945:87:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11797, + "src": "1267:3767:46", + "usedErrors": [ + 11728, + 11733, + 11740 + ], + "usedEvents": [ + 11755, + 11762, + 11771 + ] + } + ], + "src": "1241:3794:46" + }, + "id": 46 + }, + "contracts/interfaces/ISubscription.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ISubscription.sol", + "exportedSymbols": { + "ISubscription": [ + 11895 + ] + }, + "id": 11896, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11798, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:47" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ISubscription", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 11895, + "linearizedBaseContracts": [ + 11895 + ], + "name": "ISubscription", + "nameLocation": "1277:13:47", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 11799, + "nodeType": "StructuredDocumentation", + "src": "1297:269:47", + "text": " Custom revert error indicating that the protected data is currently in a subscription.\n @param _collectionTokenId - The ID of the collection containing the protected data.\n @param _protectedData - The address of the protected data." + }, + "errorSelector": "67fb156a", + "id": 11805, + "name": "ProctedDataInSubscription", + "nameLocation": "1577:25:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11801, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "1611:18:47", + "nodeType": "VariableDeclaration", + "scope": 11805, + "src": "1603:26:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11800, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1603:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11803, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "1639:14:47", + "nodeType": "VariableDeclaration", + "scope": 11805, + "src": "1631:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1631:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1602:52:47" + }, + "src": "1571:84:47" + }, + { + "documentation": { + "id": 11806, + "nodeType": "StructuredDocumentation", + "src": "1661:200:47", + "text": " Custom revert error indicating that there are ongoing subscriptions for the collection.\n @param collectionTokenId - The ID of the collection with ongoing subscriptions." + }, + "errorSelector": "95dc4dee", + "id": 11810, + "name": "OnGoingCollectionSubscriptions", + "nameLocation": "1872:30:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11808, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "1911:17:47", + "nodeType": "VariableDeclaration", + "scope": 11810, + "src": "1903:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1903:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1902:27:47" + }, + "src": "1866:64:47" + }, + { + "documentation": { + "id": 11811, + "nodeType": "StructuredDocumentation", + "src": "1936:293:47", + "text": " Custom revert error indicating that the protected data is available for subscription.\n @param collectionTokenId - The ID of the collection containing the protected data.\n @param protectedData - The address of the protected data available for subscription." + }, + "errorSelector": "2478d876", + "id": 11817, + "name": "ProtectedDataAvailableInSubscription", + "nameLocation": "2240:36:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11813, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "2285:17:47", + "nodeType": "VariableDeclaration", + "scope": 11817, + "src": "2277:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11812, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2277:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11815, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "2312:13:47", + "nodeType": "VariableDeclaration", + "scope": 11817, + "src": "2304:21:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2304:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2276:50:47" + }, + "src": "2234:93:47" + }, + { + "documentation": { + "id": 11818, + "nodeType": "StructuredDocumentation", + "src": "2333:228:47", + "text": " Custom revert error indicating that the subscription params set are not valide.\n @param collectionTokenId - The ID of the collection.\n @param subscriptionParams - Current subscription params" + }, + "errorSelector": "4883c9c6", + "id": 11825, + "name": "InvalidSubscriptionParams", + "nameLocation": "2572:25:47", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 11824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11820, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "2615:17:47", + "nodeType": "VariableDeclaration", + "scope": 11825, + "src": "2607:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11819, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11823, + "mutability": "mutable", + "name": "subscriptionParams", + "nameLocation": "2661:18:47", + "nodeType": "VariableDeclaration", + "scope": 11825, + "src": "2642:37:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 11822, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11821, + "name": "SubscriptionParams", + "nameLocations": [ + "2642:18:47" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "2642:18:47" + }, + "referencedDeclaration": 11831, + "src": "2642:18:47", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "2597:88:47" + }, + "src": "2566:120:47" + }, + { + "canonicalName": "ISubscription.SubscriptionParams", + "documentation": { + "id": 11826, + "nodeType": "StructuredDocumentation", + "src": "2692:202:47", + "text": " Subscription parameters for a collection.\n @param price - The price (in Gwei) for the subscription.\n @param duration - The duration in seconds for the subscription." + }, + "id": 11831, + "members": [ + { + "constant": false, + "id": 11828, + "mutability": "mutable", + "name": "price", + "nameLocation": "2942:5:47", + "nodeType": "VariableDeclaration", + "scope": 11831, + "src": "2935:12:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11827, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "2935:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11830, + "mutability": "mutable", + "name": "duration", + "nameLocation": "2996:8:47", + "nodeType": "VariableDeclaration", + "scope": 11831, + "src": "2989:15:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 11829, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "2989:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + } + ], + "name": "SubscriptionParams", + "nameLocation": "2906:18:47", + "nodeType": "StructDefinition", + "scope": 11895, + "src": "2899:151:47", + "visibility": "public" + }, + { + "anonymous": false, + "documentation": { + "id": 11832, + "nodeType": "StructuredDocumentation", + "src": "3056:245:47", + "text": " Event emitted when new subscription parameters are set for a collection.\n @param collectionTokenId - The ID of the collection.\n @param subscriptionParams - The subscription parameters set for the collection." + }, + "eventSelector": "d33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f78", + "id": 11839, + "name": "NewSubscriptionParams", + "nameLocation": "3312:21:47", + "nodeType": "EventDefinition", + "parameters": { + "id": 11838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11834, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "3342:17:47", + "nodeType": "VariableDeclaration", + "scope": 11839, + "src": "3334:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3334:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11837, + "indexed": false, + "mutability": "mutable", + "name": "subscriptionParams", + "nameLocation": "3380:18:47", + "nodeType": "VariableDeclaration", + "scope": 11839, + "src": "3361:37:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 11836, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11835, + "name": "SubscriptionParams", + "nameLocations": [ + "3361:18:47" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "3361:18:47" + }, + "referencedDeclaration": 11831, + "src": "3361:18:47", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "3333:66:47" + }, + "src": "3306:94:47" + }, + { + "anonymous": false, + "documentation": { + "id": 11840, + "nodeType": "StructuredDocumentation", + "src": "3406:268:47", + "text": " Event emitted when a new subscription is created for a collection.\n @param collectionTokenId - The ID of the collection.\n @param subscriber - The address of the subscriber.\n @param endDate - The end date of the subscription." + }, + "eventSelector": "2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9", + "id": 11848, + "name": "NewSubscription", + "nameLocation": "3685:15:47", + "nodeType": "EventDefinition", + "parameters": { + "id": 11847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11842, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "3709:17:47", + "nodeType": "VariableDeclaration", + "scope": 11848, + "src": "3701:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3701:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11844, + "indexed": true, + "mutability": "mutable", + "name": "subscriber", + "nameLocation": "3744:10:47", + "nodeType": "VariableDeclaration", + "scope": 11848, + "src": "3728:26:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11843, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3728:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11846, + "indexed": false, + "mutability": "mutable", + "name": "endDate", + "nameLocation": "3763:7:47", + "nodeType": "VariableDeclaration", + "scope": 11848, + "src": "3756:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11845, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "3756:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "3700:71:47" + }, + "src": "3679:93:47" + }, + { + "anonymous": false, + "documentation": { + "id": 11849, + "nodeType": "StructuredDocumentation", + "src": "3778:279:47", + "text": " Event emitted when protected data is added to pool of protected data\n among the collection available for the subscription.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data." + }, + "eventSelector": "806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b", + "id": 11855, + "name": "ProtectedDataAddedForSubscription", + "nameLocation": "4068:33:47", + "nodeType": "EventDefinition", + "parameters": { + "id": 11854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11851, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "4110:17:47", + "nodeType": "VariableDeclaration", + "scope": 11855, + "src": "4102:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4102:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11853, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "4137:13:47", + "nodeType": "VariableDeclaration", + "scope": 11855, + "src": "4129:21:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4129:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4101:50:47" + }, + "src": "4062:90:47" + }, + { + "anonymous": false, + "documentation": { + "id": 11856, + "nodeType": "StructuredDocumentation", + "src": "4158:216:47", + "text": " Event emitted when protected data is removed from a subscription.\n @param collectionTokenId - The ID of the collection.\n @param protectedData - The address of the protected data." + }, + "eventSelector": "619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc1757", + "id": 11862, + "name": "ProtectedDataRemovedFromSubscription", + "nameLocation": "4385:36:47", + "nodeType": "EventDefinition", + "parameters": { + "id": 11861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11858, + "indexed": false, + "mutability": "mutable", + "name": "collectionTokenId", + "nameLocation": "4430:17:47", + "nodeType": "VariableDeclaration", + "scope": 11862, + "src": "4422:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4422:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11860, + "indexed": false, + "mutability": "mutable", + "name": "protectedData", + "nameLocation": "4457:13:47", + "nodeType": "VariableDeclaration", + "scope": 11862, + "src": "4449:21:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4449:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4421:50:47" + }, + "src": "4379:93:47" + }, + { + "documentation": { + "id": 11863, + "nodeType": "StructuredDocumentation", + "src": "4478:566:47", + "text": " Subscribes to a collection using funds from the caller's account balance within the platform\n (Stacked RLC). Requires prior approval for this contract to spend the subscription amount on\n behalf of the caller.\n @param _collectionTokenId The unique identifier of the collection to subscribe to.\n @param _subscriptionParams Additional parameter to prevent front-running attacks, ensuring fair subscription execution.\n @return endDate The timestamp when the subscription will expire, indicating the end of access." + }, + "functionSelector": "d3c52389", + "id": 11873, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "subscribeToCollection", + "nameLocation": "5058:21:47", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11865, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "5097:18:47", + "nodeType": "VariableDeclaration", + "scope": 11873, + "src": "5089:26:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5089:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11868, + "mutability": "mutable", + "name": "_subscriptionParams", + "nameLocation": "5151:19:47", + "nodeType": "VariableDeclaration", + "scope": 11873, + "src": "5125:45:47", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_memory_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 11867, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11866, + "name": "SubscriptionParams", + "nameLocations": [ + "5125:18:47" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "5125:18:47" + }, + "referencedDeclaration": 11831, + "src": "5125:18:47", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "5079:97:47" + }, + "returnParameters": { + "id": 11872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11871, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11873, + "src": "5195:6:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11870, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "5195:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "5194:8:47" + }, + "scope": 11895, + "src": "5049:154:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11874, + "nodeType": "StructuredDocumentation", + "src": "5209:200:47", + "text": " Set protected data available in the subscription for the specified collection.\n @param _protectedData The address of the protected data to be added to the subscription." + }, + "functionSelector": "fe4c31a4", + "id": 11879, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setProtectedDataToSubscription", + "nameLocation": "5423:30:47", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11877, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11876, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5462:14:47", + "nodeType": "VariableDeclaration", + "scope": 11879, + "src": "5454:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5454:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5453:24:47" + }, + "returnParameters": { + "id": 11878, + "nodeType": "ParameterList", + "parameters": [], + "src": "5486:0:47" + }, + "scope": 11895, + "src": "5414:73:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11880, + "nodeType": "StructuredDocumentation", + "src": "5493:259:47", + "text": " Remove protected data from the subscription for the specified collection.\n Subcribers cannot consume the protected data anymore\n @param _protectedData The address of the protected data to be removed from the subscription." + }, + "functionSelector": "72d570ce", + "id": 11885, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeProtectedDataFromSubscription", + "nameLocation": "5766:35:47", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11882, + "mutability": "mutable", + "name": "_protectedData", + "nameLocation": "5810:14:47", + "nodeType": "VariableDeclaration", + "scope": 11885, + "src": "5802:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11881, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5802:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5801:24:47" + }, + "returnParameters": { + "id": 11884, + "nodeType": "ParameterList", + "parameters": [], + "src": "5834:0:47" + }, + "scope": 11895, + "src": "5757:78:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 11886, + "nodeType": "StructuredDocumentation", + "src": "5841:207:47", + "text": " Set the subscription parameters for a collection.\n @param _collectionTokenId The ID of the collection.\n @param _subscriptionParams The subscription parameters to be set." + }, + "functionSelector": "ff19d9df", + "id": 11894, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setSubscriptionParams", + "nameLocation": "6062:21:47", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11888, + "mutability": "mutable", + "name": "_collectionTokenId", + "nameLocation": "6101:18:47", + "nodeType": "VariableDeclaration", + "scope": 11894, + "src": "6093:26:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6093:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11891, + "mutability": "mutable", + "name": "_subscriptionParams", + "nameLocation": "6157:19:47", + "nodeType": "VariableDeclaration", + "scope": 11894, + "src": "6129:47:47", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_calldata_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + }, + "typeName": { + "id": 11890, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11889, + "name": "SubscriptionParams", + "nameLocations": [ + "6129:18:47" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11831, + "src": "6129:18:47" + }, + "referencedDeclaration": 11831, + "src": "6129:18:47", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SubscriptionParams_$11831_storage_ptr", + "typeString": "struct ISubscription.SubscriptionParams" + } + }, + "visibility": "internal" + } + ], + "src": "6083:99:47" + }, + "returnParameters": { + "id": 11893, + "nodeType": "ParameterList", + "parameters": [], + "src": "6191:0:47" + }, + "scope": 11895, + "src": "6053:139:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11896, + "src": "1267:4927:47", + "usedErrors": [ + 11805, + 11810, + 11817, + 11825 + ], + "usedEvents": [ + 11839, + 11848, + 11855, + 11862 + ] + } + ], + "src": "1241:4954:47" + }, + "id": 47 + }, + "contracts/registry/AddOnlyAppWhitelist.sol": { + "ast": { + "absolutePath": "contracts/registry/AddOnlyAppWhitelist.sol", + "exportedSymbols": { + "AddOnlyAppWhitelist": [ + 12038 + ], + "AddOnlyAppWhitelistRegistry": [ + 12170 + ], + "ERC734": [ + 12219 + ], + "IAddOnlyAppWhitelist": [ + 11098 + ] + }, + "id": 12039, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11897, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:48" + }, + { + "absolutePath": "contracts/registry/AddOnlyAppWhitelistRegistry.sol", + "file": "./AddOnlyAppWhitelistRegistry.sol", + "id": 11899, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12039, + "sourceUnit": 12171, + "src": "1267:78:48", + "symbolAliases": [ + { + "foreign": { + "id": 11898, + "name": "AddOnlyAppWhitelistRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12170, + "src": "1275:27:48", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelist.sol", + "file": "../interfaces/IAddOnlyAppWhitelist.sol", + "id": 11901, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12039, + "sourceUnit": 11099, + "src": "1346:76:48", + "symbolAliases": [ + { + "foreign": { + "id": 11900, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1354:20:48", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/registry/ERC734.sol", + "file": "./ERC734.sol", + "id": 11903, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12039, + "sourceUnit": 12220, + "src": "1423:36:48", + "symbolAliases": [ + { + "foreign": { + "id": 11902, + "name": "ERC734", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12219, + "src": "1431:6:48", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 11904, + "name": "IAddOnlyAppWhitelist", + "nameLocations": [ + "1493:20:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11098, + "src": "1493:20:48" + }, + "id": 11905, + "nodeType": "InheritanceSpecifier", + "src": "1493:20:48" + }, + { + "baseName": { + "id": 11906, + "name": "ERC734", + "nameLocations": [ + "1515:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12219, + "src": "1515:6:48" + }, + "id": 11907, + "nodeType": "InheritanceSpecifier", + "src": "1515:6:48" + } + ], + "canonicalName": "AddOnlyAppWhitelist", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 12038, + "linearizedBaseContracts": [ + 12038, + 12219, + 11098 + ], + "name": "AddOnlyAppWhitelist", + "nameLocation": "1470:19:48", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7c236c63", + "id": 11914, + "mutability": "immutable", + "name": "APP_WHITELIST_REGISTRY", + "nameLocation": "1573:22:48", + "nodeType": "VariableDeclaration", + "scope": 12038, + "src": "1528:117:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + }, + "typeName": { + "id": 11909, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 11908, + "name": "AddOnlyAppWhitelistRegistry", + "nameLocations": [ + "1528:27:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12170, + "src": "1528:27:48" + }, + "referencedDeclaration": 12170, + "src": "1528:27:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "value": { + "arguments": [ + { + "expression": { + "id": 11911, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1634:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1638:6:48", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1634:10:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11910, + "name": "AddOnlyAppWhitelistRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12170, + "src": "1606:27:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_AddOnlyAppWhitelistRegistry_$12170_$", + "typeString": "type(contract AddOnlyAppWhitelistRegistry)" + } + }, + "id": 11913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1606:39:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 11917, + "mutability": "constant", + "name": "GROUP_MEMBER_PURPOSE", + "nameLocation": "1768:20:48", + "nodeType": "VariableDeclaration", + "scope": 12038, + "src": "1742:50:48", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11915, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1742:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34", + "id": 11916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1791:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "internal" + }, + { + "body": { + "id": 11941, + "nodeType": "Block", + "src": "1823:178:48", + "statements": [ + { + "condition": { + "id": 11934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1837:81:48", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 11921, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1874:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1878:6:48", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1874:10:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 11929, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1910:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + ], + "id": 11928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1902:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1902:7:48", + "typeDescriptions": {} + } + }, + "id": 11930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1902:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1894:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 11925, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "1894:7:48", + "typeDescriptions": {} + } + }, + "id": 11931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1894:22:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 11924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1886:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1886:7:48", + "typeDescriptions": {} + } + }, + "id": 11932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1886:31:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 11919, + "name": "APP_WHITELIST_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11914, + "src": "1838:22:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "id": 11920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1861:12:48", + "memberName": "isAuthorized", + "nodeType": "MemberAccess", + "referencedDeclaration": 12169, + "src": "1838:35:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view external returns (bool)" + } + }, + "id": 11933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1838:80:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11939, + "nodeType": "IfStatement", + "src": "1833:151:48", + "trueBody": { + "id": 11938, + "nodeType": "Block", + "src": "1920:64:48", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11935, + "name": "NotAddOnlyAppWhitelistOperator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11071, + "src": "1941:30:48", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1941:32:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11937, + "nodeType": "RevertStatement", + "src": "1934:39:48" + } + ] + } + }, + { + "id": 11940, + "nodeType": "PlaceholderStatement", + "src": "1993:1:48" + } + ] + }, + "id": 11942, + "name": "onlyOperator", + "nameLocation": "1808:12:48", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 11918, + "nodeType": "ParameterList", + "parameters": [], + "src": "1820:2:48" + }, + "src": "1799:202:48", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 11077 + ], + "body": { + "id": 11968, + "nodeType": "Block", + "src": "2300:148:48", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 11956, + "name": "_app", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11944, + "src": "2352:4:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2344:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 11954, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2344:7:48", + "typeDescriptions": {} + } + }, + "id": 11957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2344:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 11953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2336:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2336:7:48", + "typeDescriptions": {} + } + }, + "id": 11958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2336:22:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2328:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 11950, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2328:7:48", + "typeDescriptions": {} + } + }, + "id": 11959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2328:31:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 11960, + "name": "GROUP_MEMBER_PURPOSE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11917, + "src": "2361:20:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 11961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2383:4:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11949, + "name": "_setKeyHasPurpose", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12218, + "src": "2310:17:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (bytes32,uint256,bool)" + } + }, + "id": 11962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2310:78:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11963, + "nodeType": "ExpressionStatement", + "src": "2310:78:48" + }, + { + "eventCall": { + "arguments": [ + { + "id": 11965, + "name": "_app", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11944, + "src": "2436:4:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11964, + "name": "NewAppAddedToAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11068, + "src": "2403:32:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 11966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2403:38:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11967, + "nodeType": "EmitStatement", + "src": "2398:43:48" + } + ] + }, + "functionSelector": "93ac9b16", + "id": 11969, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 11947, + "kind": "modifierInvocation", + "modifierName": { + "id": 11946, + "name": "onlyOperator", + "nameLocations": [ + "2287:12:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11942, + "src": "2287:12:48" + }, + "nodeType": "ModifierInvocation", + "src": "2287:12:48" + } + ], + "name": "addApp", + "nameLocation": "2259:6:48", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11944, + "mutability": "mutable", + "name": "_app", + "nameLocation": "2274:4:48", + "nodeType": "VariableDeclaration", + "scope": 11969, + "src": "2266:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2266:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2265:14:48" + }, + "returnParameters": { + "id": 11948, + "nodeType": "ParameterList", + "parameters": [], + "src": "2300:0:48" + }, + "scope": 12038, + "src": "2250:198:48", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11085 + ], + "body": { + "id": 11990, + "nodeType": "Block", + "src": "2517:92:48", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 11983, + "name": "_app", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11971, + "src": "2572:4:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2564:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 11981, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2564:7:48", + "typeDescriptions": {} + } + }, + "id": 11984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2564:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 11980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2556:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2556:7:48", + "typeDescriptions": {} + } + }, + "id": 11985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2556:22:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2548:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 11977, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2548:7:48", + "typeDescriptions": {} + } + }, + "id": 11986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2548:31:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 11987, + "name": "GROUP_MEMBER_PURPOSE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11917, + "src": "2581:20:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11976, + "name": "keyHasPurpose", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12200, + "src": "2534:13:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (bytes32,uint256) view returns (bool)" + } + }, + "id": 11988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2534:68:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 11975, + "id": 11989, + "nodeType": "Return", + "src": "2527:75:48" + } + ] + }, + "functionSelector": "c3c5a547", + "id": 11991, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isRegistered", + "nameLocation": "2463:12:48", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11971, + "mutability": "mutable", + "name": "_app", + "nameLocation": "2484:4:48", + "nodeType": "VariableDeclaration", + "scope": 11991, + "src": "2476:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2476:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2475:14:48" + }, + "returnParameters": { + "id": 11975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11974, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11991, + "src": "2511:4:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11973, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2511:4:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2510:6:48" + }, + "scope": 12038, + "src": "2454:155:48", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11091 + ], + "body": { + "id": 12010, + "nodeType": "Block", + "src": "2662:87:48", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 12004, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2734:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + ], + "id": 12003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2726:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2726:7:48", + "typeDescriptions": {} + } + }, + "id": 12005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2726:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12001, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2718:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12000, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2718:7:48", + "typeDescriptions": {} + } + }, + "id": 12006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2718:22:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 11999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2710:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2710:7:48", + "typeDescriptions": {} + } + }, + "id": 12007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2710:31:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 11996, + "name": "APP_WHITELIST_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11914, + "src": "2679:22:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "id": 11997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2702:7:48", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 824, + "src": "2679:30:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 12008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2679:63:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 11995, + "id": 12009, + "nodeType": "Return", + "src": "2672:70:48" + } + ] + }, + "functionSelector": "8da5cb5b", + "id": 12011, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "2624:5:48", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11992, + "nodeType": "ParameterList", + "parameters": [], + "src": "2629:2:48" + }, + "returnParameters": { + "id": 11995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11994, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12011, + "src": "2653:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2653:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2652:9:48" + }, + "scope": 12038, + "src": "2615:134:48", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11097 + ], + "body": { + "id": 12036, + "nodeType": "Block", + "src": "2820:104:48", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12021, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12011, + "src": "2866:5:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 12022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2866:7:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12023, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12013, + "src": "2875:8:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 12030, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2909:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + ], + "id": 12029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2901:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2901:7:48", + "typeDescriptions": {} + } + }, + "id": 12031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2901:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2893:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12026, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2893:7:48", + "typeDescriptions": {} + } + }, + "id": 12032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2893:22:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2885:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2885:7:48", + "typeDescriptions": {} + } + }, + "id": 12033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2885:31:48", + "tryCall": false, + "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": 12018, + "name": "APP_WHITELIST_REGISTRY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11914, + "src": "2830:22:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelistRegistry_$12170", + "typeString": "contract AddOnlyAppWhitelistRegistry" + } + }, + "id": 12020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2853:12:48", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1020, + "src": "2830:35:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 12034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2830:87:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12035, + "nodeType": "ExpressionStatement", + "src": "2830:87:48" + } + ] + }, + "functionSelector": "f2fde38b", + "id": 12037, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12016, + "kind": "modifierInvocation", + "modifierName": { + "id": 12015, + "name": "onlyOperator", + "nameLocations": [ + "2807:12:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11942, + "src": "2807:12:48" + }, + "nodeType": "ModifierInvocation", + "src": "2807:12:48" + } + ], + "name": "transferOwnership", + "nameLocation": "2764:17:48", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12013, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2790:8:48", + "nodeType": "VariableDeclaration", + "scope": 12037, + "src": "2782:16:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2782:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2781:18:48" + }, + "returnParameters": { + "id": 12017, + "nodeType": "ParameterList", + "parameters": [], + "src": "2820:0:48" + }, + "scope": 12038, + "src": "2755:169:48", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 12039, + "src": "1461:1465:48", + "usedErrors": [ + 11071 + ], + "usedEvents": [ + 11068 + ] + } + ], + "src": "1241:1686:48" + }, + "id": 48 + }, + "contracts/registry/AddOnlyAppWhitelistRegistry.sol": { + "ast": { + "absolutePath": "contracts/registry/AddOnlyAppWhitelistRegistry.sol", + "exportedSymbols": { + "AddOnlyAppWhitelist": [ + 12038 + ], + "AddOnlyAppWhitelistRegistry": [ + 12170 + ], + "Clones": [ + 2732 + ], + "ERC721Upgradeable": [ + 1710 + ], + "IAddOnlyAppWhitelist": [ + 11098 + ], + "IAddOnlyAppWhitelistRegistry": [ + 11122 + ], + "Initializable": [ + 630 + ] + }, + "id": 12171, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12040, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:49" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol", + "id": 12042, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12171, + "sourceUnit": 1711, + "src": "1267:105:49", + "symbolAliases": [ + { + "foreign": { + "id": 12041, + "name": "ERC721Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "1275:17:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "id": 12044, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12171, + "sourceUnit": 631, + "src": "1373:96:49", + "symbolAliases": [ + { + "foreign": { + "id": 12043, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "1381:13:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/proxy/Clones.sol", + "file": "@openzeppelin/contracts/proxy/Clones.sol", + "id": 12046, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12171, + "sourceUnit": 2733, + "src": "1470:64:49", + "symbolAliases": [ + { + "foreign": { + "id": 12045, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2732, + "src": "1478:6:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol", + "file": "../interfaces/IAddOnlyAppWhitelistRegistry.sol", + "id": 12048, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12171, + "sourceUnit": 11123, + "src": "1535:92:49", + "symbolAliases": [ + { + "foreign": { + "id": 12047, + "name": "IAddOnlyAppWhitelistRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11122, + "src": "1543:28:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/registry/AddOnlyAppWhitelist.sol", + "file": "./AddOnlyAppWhitelist.sol", + "id": 12051, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12171, + "sourceUnit": 12039, + "src": "1628:84:49", + "symbolAliases": [ + { + "foreign": { + "id": 12049, + "name": "AddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12038, + "src": "1636:19:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 12050, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1657:20:49", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 12053, + "name": "IAddOnlyAppWhitelistRegistry", + "nameLocations": [ + "1820:28:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11122, + "src": "1820:28:49" + }, + "id": 12054, + "nodeType": "InheritanceSpecifier", + "src": "1820:28:49" + }, + { + "baseName": { + "id": 12055, + "name": "Initializable", + "nameLocations": [ + "1854:13:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 630, + "src": "1854:13:49" + }, + "id": 12056, + "nodeType": "InheritanceSpecifier", + "src": "1854:13:49" + }, + { + "baseName": { + "id": 12057, + "name": "ERC721Upgradeable", + "nameLocations": [ + "1873:17:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1710, + "src": "1873:17:49" + }, + "id": 12058, + "nodeType": "InheritanceSpecifier", + "src": "1873:17:49" + } + ], + "canonicalName": "AddOnlyAppWhitelistRegistry", + "contractDependencies": [ + 12038 + ], + "contractKind": "contract", + "documentation": { + "id": 12052, + "nodeType": "StructuredDocumentation", + "src": "1714:62:49", + "text": "@custom:oz-upgrades-unsafe-allow state-variable-immutable" + }, + "fullyImplemented": true, + "id": 12170, + "linearizedBaseContracts": [ + 12170, + 1710, + 2286, + 3457, + 3411, + 1944, + 5562, + 1801, + 630, + 11122 + ], + "name": "AddOnlyAppWhitelistRegistry", + "nameLocation": "1785:27:49", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9a0d319e", + "id": 12061, + "mutability": "mutable", + "name": "_implementationAddress", + "nameLocation": "2022:22:49", + "nodeType": "VariableDeclaration", + "scope": 12170, + "src": "1995:49:49", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + }, + "typeName": { + "id": 12060, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12059, + "name": "AddOnlyAppWhitelist", + "nameLocations": [ + "1995:19:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12038, + "src": "1995:19:49" + }, + "referencedDeclaration": 12038, + "src": "1995:19:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 12068, + "nodeType": "Block", + "src": "2361:39:49", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12065, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "2371:20:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 12066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2371:22:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12067, + "nodeType": "ExpressionStatement", + "src": "2371:22:49" + } + ] + }, + "documentation": { + "id": 12062, + "nodeType": "StructuredDocumentation", + "src": "2294:48:49", + "text": "@custom:oz-upgrades-unsafe-allow constructor" + }, + "id": 12069, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12063, + "nodeType": "ParameterList", + "parameters": [], + "src": "2358:2:49" + }, + "returnParameters": { + "id": 12064, + "nodeType": "ParameterList", + "parameters": [], + "src": "2361:0:49" + }, + "scope": 12170, + "src": "2347:53:49", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12086, + "nodeType": "Block", + "src": "2447:233:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "6945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c697374205265676973747279", + "id": 12075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2484:59:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24c5d5b578a336cc3dac62693d4e361170b6a016eddc03cc6e78dda7ec6615fa", + "typeString": "literal_string \"iExec DataProtectorSharing Application Whitelist Registry\"" + }, + "value": "iExec DataProtectorSharing Application Whitelist Registry" + }, + { + "hexValue": "69457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374", + "id": 12076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2557:46:49", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ea0351c9b9427fbb976f98d3ea7acfb3b5ccaa3e36e31d34cc6c7a5f7e4c5dc6", + "typeString": "literal_string \"iExecDataProtectorSharingAddOnlyAppWhitelist\"" + }, + "value": "iExecDataProtectorSharingAddOnlyAppWhitelist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_24c5d5b578a336cc3dac62693d4e361170b6a016eddc03cc6e78dda7ec6615fa", + "typeString": "literal_string \"iExec DataProtectorSharing Application Whitelist Registry\"" + }, + { + "typeIdentifier": "t_stringliteral_ea0351c9b9427fbb976f98d3ea7acfb3b5ccaa3e36e31d34cc6c7a5f7e4c5dc6", + "typeString": "literal_string \"iExecDataProtectorSharingAddOnlyAppWhitelist\"" + } + ], + "id": 12074, + "name": "__ERC721_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2457:13:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 12077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2457:156:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12078, + "nodeType": "ExpressionStatement", + "src": "2457:156:49" + }, + { + "expression": { + "id": 12084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 12079, + "name": "_implementationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12061, + "src": "2623:22:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 12082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2648:23:49", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_AddOnlyAppWhitelist_$12038_$", + "typeString": "function () returns (contract AddOnlyAppWhitelist)" + }, + "typeName": { + "id": 12081, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12080, + "name": "AddOnlyAppWhitelist", + "nameLocations": [ + "2652:19:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12038, + "src": "2652:19:49" + }, + "referencedDeclaration": 12038, + "src": "2652:19:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + } + }, + "id": 12083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2648:25:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + }, + "src": "2623:50:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + }, + "id": 12085, + "nodeType": "ExpressionStatement", + "src": "2623:50:49" + } + ] + }, + "functionSelector": "8129fc1c", + "id": 12087, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 12072, + "kind": "modifierInvocation", + "modifierName": { + "id": 12071, + "name": "initializer", + "nameLocations": [ + "2435:11:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 470, + "src": "2435:11:49" + }, + "nodeType": "ModifierInvocation", + "src": "2435:11:49" + } + ], + "name": "initialize", + "nameLocation": "2415:10:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12070, + "nodeType": "ParameterList", + "parameters": [], + "src": "2425:2:49" + }, + "returnParameters": { + "id": 12073, + "nodeType": "ParameterList", + "parameters": [], + "src": "2447:0:49" + }, + "scope": 12170, + "src": "2406:274:49", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 11111 + ], + "body": { + "id": 12120, + "nodeType": "Block", + "src": "3019:173:49", + "statements": [ + { + "assignments": [ + 12096 + ], + "declarations": [ + { + "constant": false, + "id": 12096, + "mutability": "mutable", + "name": "clone", + "nameLocation": "3037:5:49", + "nodeType": "VariableDeclaration", + "scope": 12120, + "src": "3029:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3029:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 12104, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 12101, + "name": "_implementationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12061, + "src": "3066:22:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AddOnlyAppWhitelist_$12038", + "typeString": "contract AddOnlyAppWhitelist" + } + ], + "id": 12100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3058:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3058:7:49", + "typeDescriptions": {} + } + }, + "id": 12102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3058:31:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 12097, + "name": "Clones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2732, + "src": "3045:6:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Clones_$2732_$", + "typeString": "type(library Clones)" + } + }, + "id": 12098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3052:5:49", + "memberName": "clone", + "nodeType": "MemberAccess", + "referencedDeclaration": 2356, + "src": "3045:12:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_address_$", + "typeString": "function (address) returns (address)" + } + }, + "id": 12103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3045:45:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3029:61:49" + }, + { + "expression": { + "arguments": [ + { + "id": 12106, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12089, + "src": "3110:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 12111, + "name": "clone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12096, + "src": "3133:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3125:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12109, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "3125:7:49", + "typeDescriptions": {} + } + }, + "id": 12112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3125:14:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3117:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3117:7:49", + "typeDescriptions": {} + } + }, + "id": 12113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3117:23:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12105, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1372, + 1402 + ], + "referencedDeclaration": 1372, + "src": "3100:9:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3100:41:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12115, + "nodeType": "ExpressionStatement", + "src": "3100:41:49" + }, + { + "expression": { + "arguments": [ + { + "id": 12117, + "name": "clone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12096, + "src": "3179:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12116, + "name": "IAddOnlyAppWhitelist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "3158:20:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAddOnlyAppWhitelist_$11098_$", + "typeString": "type(contract IAddOnlyAppWhitelist)" + } + }, + "id": 12118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3158:27:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "functionReturnParameters": 12094, + "id": 12119, + "nodeType": "Return", + "src": "3151:34:49" + } + ] + }, + "functionSelector": "9680579d", + "id": 12121, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createAddOnlyAppWhitelist", + "nameLocation": "2938:25:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12090, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12089, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2972:5:49", + "nodeType": "VariableDeclaration", + "scope": 12121, + "src": "2964:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2964:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2963:15:49" + }, + "returnParameters": { + "id": 12094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12093, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12121, + "src": "2997:20:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + }, + "typeName": { + "id": 12092, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12091, + "name": "IAddOnlyAppWhitelist", + "nameLocations": [ + "2997:20:49" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 11098, + "src": "2997:20:49" + }, + "referencedDeclaration": 11098, + "src": "2997:20:49", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAddOnlyAppWhitelist_$11098", + "typeString": "contract IAddOnlyAppWhitelist" + } + }, + "visibility": "internal" + } + ], + "src": "2996:22:49" + }, + "scope": 12170, + "src": "2929:263:49", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 1144 + ], + "body": { + "id": 12150, + "nodeType": "Block", + "src": "3346:168:49", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 12135, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12123, + "src": "3443:5:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12136, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "3450:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "3459:7:49", + "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": 12133, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3423:5:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AddOnlyAppWhitelistRegistry_$12170_$", + "typeString": "type(contract super AddOnlyAppWhitelistRegistry)" + } + }, + "id": 12134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3429:13:49", + "memberName": "_isAuthorized", + "nodeType": "MemberAccess", + "referencedDeclaration": 1144, + "src": "3423:19:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 12138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3423:44:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 12143, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "3487:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3479:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12141, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "3479:7:49", + "typeDescriptions": {} + } + }, + "id": 12144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3479:16:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3471:7:49", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3471:7:49", + "typeDescriptions": {} + } + }, + "id": 12145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3471:25:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 12146, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12127, + "src": "3500:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3471:36:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3423:84:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12132, + "id": 12149, + "nodeType": "Return", + "src": "3416:91:49" + } + ] + }, + "id": 12151, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isAuthorized", + "nameLocation": "3207:13:49", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 12129, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3322:8:49" + }, + "parameters": { + "id": 12128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12123, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3238:5:49", + "nodeType": "VariableDeclaration", + "scope": 12151, + "src": "3230:13:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3230:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12125, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3261:7:49", + "nodeType": "VariableDeclaration", + "scope": 12151, + "src": "3253:15:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3253:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12127, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3286:7:49", + "nodeType": "VariableDeclaration", + "scope": 12151, + "src": "3278:15:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3278:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3220:79:49" + }, + "returnParameters": { + "id": 12132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12131, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12151, + "src": "3340:4:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12130, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3340:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3339:6:49" + }, + "scope": 12170, + "src": "3198:316:49", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 11121 + ], + "body": { + "id": 12168, + "nodeType": "Block", + "src": "3603:73:49", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 12162, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12155, + "src": "3642:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12161, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 824, + "src": "3634:7:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 12163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3634:16:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12164, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12153, + "src": "3652:7:49", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 12165, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12155, + "src": "3661:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12160, + "name": "_isAuthorized", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 12151 + ], + "referencedDeclaration": 12151, + "src": "3620:13:49", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) view returns (bool)" + } + }, + "id": 12166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3620:49:49", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12159, + "id": 12167, + "nodeType": "Return", + "src": "3613:56:49" + } + ] + }, + "functionSelector": "2972b0f0", + "id": 12169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAuthorized", + "nameLocation": "3529:12:49", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12153, + "mutability": "mutable", + "name": "spender", + "nameLocation": "3550:7:49", + "nodeType": "VariableDeclaration", + "scope": 12169, + "src": "3542:15:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12152, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3542:7:49", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12155, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "3567:7:49", + "nodeType": "VariableDeclaration", + "scope": 12169, + "src": "3559:15:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3559:7:49", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3541:34:49" + }, + "returnParameters": { + "id": 12159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12158, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12169, + "src": "3597:4:49", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12157, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3597:4:49", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3596:6:49" + }, + "scope": 12170, + "src": "3520:156:49", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 12171, + "src": "1776:1902:49", + "usedErrors": [ + 379, + 382, + 2244, + 2249, + 2258, + 2263, + 2268, + 2275, + 2280, + 2285, + 3960, + 3966 + ], + "usedEvents": [ + 387, + 3310, + 3319, + 3328 + ] + } + ], + "src": "1241:2438:49" + }, + "id": 49 + }, + "contracts/registry/ERC734.sol": { + "ast": { + "absolutePath": "contracts/registry/ERC734.sol", + "exportedSymbols": { + "BitMaps": [ + 9230 + ], + "ERC734": [ + 12219 + ] + }, + "id": 12220, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12172, + "literals": [ + "solidity", + "^", + "0.8", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "1241:24:50" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/structs/BitMaps.sol", + "file": "@openzeppelin/contracts/utils/structs/BitMaps.sol", + "id": 12174, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12220, + "sourceUnit": 9231, + "src": "1267:74:50", + "symbolAliases": [ + { + "foreign": { + "id": 12173, + "name": "BitMaps", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9230, + "src": "1275:7:50", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ERC734", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 12219, + "linearizedBaseContracts": [ + 12219 + ], + "name": "ERC734", + "nameLocation": "1352:6:50", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 12178, + "libraryName": { + "id": 12175, + "name": "BitMaps", + "nameLocations": [ + "1371:7:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9230, + "src": "1371:7:50" + }, + "nodeType": "UsingForDirective", + "src": "1365:33:50", + "typeName": { + "id": 12177, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12176, + "name": "BitMaps.BitMap", + "nameLocations": [ + "1383:7:50", + "1391:6:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9100, + "src": "1383:14:50" + }, + "referencedDeclaration": 9100, + "src": "1383:14:50", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + } + } + }, + { + "constant": false, + "id": 12183, + "mutability": "mutable", + "name": "_store", + "nameLocation": "1447:6:50", + "nodeType": "VariableDeclaration", + "scope": 12219, + "src": "1403:50:50", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BitMap_$9100_storage_$", + "typeString": "mapping(bytes32 => struct BitMaps.BitMap)" + }, + "typeName": { + "id": 12182, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 12179, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1411:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1403:34:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BitMap_$9100_storage_$", + "typeString": "mapping(bytes32 => struct BitMaps.BitMap)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 12181, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12180, + "name": "BitMaps.BitMap", + "nameLocations": [ + "1422:7:50", + "1430:6:50" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 9100, + "src": "1422:14:50" + }, + "referencedDeclaration": 9100, + "src": "1422:14:50", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage_ptr", + "typeString": "struct BitMaps.BitMap" + } + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 12199, + "nodeType": "Block", + "src": "1593:48:50", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12196, + "name": "purpose", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12187, + "src": "1626:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 12192, + "name": "_store", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12183, + "src": "1610:6:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BitMap_$9100_storage_$", + "typeString": "mapping(bytes32 => struct BitMaps.BitMap storage ref)" + } + }, + "id": 12194, + "indexExpression": { + "id": 12193, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12185, + "src": "1617:3:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1610:11:50", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage", + "typeString": "struct BitMaps.BitMap storage ref" + } + }, + "id": 12195, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1622:3:50", + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 9136, + "src": "1610:15:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_BitMap_$9100_storage_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_BitMap_$9100_storage_ptr_$", + "typeString": "function (struct BitMaps.BitMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 12197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1610:24:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12191, + "id": 12198, + "nodeType": "Return", + "src": "1603:31:50" + } + ] + }, + "functionSelector": "d202158d", + "id": 12200, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "keyHasPurpose", + "nameLocation": "1522:13:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12185, + "mutability": "mutable", + "name": "key", + "nameLocation": "1544:3:50", + "nodeType": "VariableDeclaration", + "scope": 12200, + "src": "1536:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12184, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1536:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12187, + "mutability": "mutable", + "name": "purpose", + "nameLocation": "1557:7:50", + "nodeType": "VariableDeclaration", + "scope": 12200, + "src": "1549:15:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1549:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1535:30:50" + }, + "returnParameters": { + "id": 12191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12190, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12200, + "src": "1587:4:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12189, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1587:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1586:6:50" + }, + "scope": 12219, + "src": "1513:128:50", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12217, + "nodeType": "Block", + "src": "1726:51:50", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12213, + "name": "purpose", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12204, + "src": "1754:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 12214, + "name": "enable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12206, + "src": "1763:6:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "baseExpression": { + "id": 12209, + "name": "_store", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12183, + "src": "1736:6:50", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BitMap_$9100_storage_$", + "typeString": "mapping(bytes32 => struct BitMaps.BitMap storage ref)" + } + }, + "id": 12211, + "indexExpression": { + "id": 12210, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12202, + "src": "1743:3:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1736:11:50", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BitMap_$9100_storage", + "typeString": "struct BitMaps.BitMap storage ref" + } + }, + "id": 12212, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1748:5:50", + "memberName": "setTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 9162, + "src": "1736:17:50", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_BitMap_$9100_storage_ptr_$_t_uint256_$_t_bool_$returns$__$attached_to$_t_struct$_BitMap_$9100_storage_ptr_$", + "typeString": "function (struct BitMaps.BitMap storage pointer,uint256,bool)" + } + }, + "id": 12215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1736:34:50", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12216, + "nodeType": "ExpressionStatement", + "src": "1736:34:50" + } + ] + }, + "id": 12218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setKeyHasPurpose", + "nameLocation": "1656:17:50", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12202, + "mutability": "mutable", + "name": "key", + "nameLocation": "1682:3:50", + "nodeType": "VariableDeclaration", + "scope": 12218, + "src": "1674:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12201, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1674:7:50", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12204, + "mutability": "mutable", + "name": "purpose", + "nameLocation": "1695:7:50", + "nodeType": "VariableDeclaration", + "scope": 12218, + "src": "1687:15:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1687:7:50", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12206, + "mutability": "mutable", + "name": "enable", + "nameLocation": "1709:6:50", + "nodeType": "VariableDeclaration", + "scope": 12218, + "src": "1704:11:50", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12205, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1704:4:50", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1673:43:50" + }, + "returnParameters": { + "id": 12208, + "nodeType": "ParameterList", + "parameters": [], + "src": "1726:0:50" + }, + "scope": 12219, + "src": "1647:130:50", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 12220, + "src": "1343:436:50", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1241:539:50" + }, + "id": 50 + } + }, + "contracts": { + "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol": { + "AccessControlUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "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": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "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": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"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\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"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.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":\"AccessControlUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"@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/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "Initializable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol": { + "ERC721Upgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":\"ERC721Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"@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/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol": { + "ERC721BurnableUpgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "burn(uint256)": "42966c68", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC-721 Token that can be burned (destroyed).\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC-721 Burnable Token\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":\"ERC721BurnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xcb4674bedf497dd92f4cbc4c59d6a7591acf90c98593da7bddd69aa0a234c419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90a10523b8eb2fd0c3774d453aa1783fd550eb6bd3b92315427abc83b81ec121\",\"dweb:/ipfs/QmTSB3Q2sR5KfPhyuLVqkHoEoYscFnQkGMDDshvnpG7ggN\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"@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/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ContextUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { + "MulticallUpgradeable": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [], + "name": "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.24+commit.e11b9ed9\"},\"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\":200},\"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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol": { + "ERC165Upgradeable": { + "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" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "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": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"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\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":\"ERC165Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "IAccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/access/Ownable.sol": { + "Ownable": { + "abi": [ + { + "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": "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.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"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\":{\"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.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"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/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 2036, + "contract": "@openzeppelin/contracts/access/Ownable.sol:Ownable", + "label": "_owner", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + } + } + }, + "@openzeppelin/contracts/interfaces/IERC1967.sol": { + "IERC1967": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":\"IERC1967\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "IERC1155Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "IERC20Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "IERC721Errors": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/Clones.sol": { + "Clones": { + "abi": [ + { + "inputs": [], + "name": "CloneArgumentsTooLong", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c586453a94b31bb49999a6a0e05d5a64431e21af50128a6a7ca09bbd63750fa64736f6c63430008180033", + "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 0xC PC PUSH5 0x53A94B31BB BLOBHASH SWAP10 SWAP11 PUSH11 0xE05D5A64431E21AF50128 0xA6 0xA7 0xCA MULMOD 0xBB 0xD6 CALLDATACOPY POP STATICCALL PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "817:11023:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;817:11023:11;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c586453a94b31bb49999a6a0e05d5a64431e21af50128a6a7ca09bbd63750fa64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC PC PUSH5 0x53A94B31BB BLOBHASH SWAP10 SWAP11 PUSH11 0xE05D5A64431E21AF50128 0xA6 0xA7 0xCA MULMOD 0xBB 0xD6 CALLDATACOPY POP STATICCALL PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "817:11023:11:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneArgumentsTooLong\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-1167[ERC-1167] is a standard for deploying minimal proxy contracts, also known as \\\"clones\\\". > To simply and cheaply clone contract functionality in an immutable way, this standard specifies > a minimal bytecode implementation that delegates all calls to a known, fixed address. The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2` (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the deterministic method.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Clones.sol\":\"Clones\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x7162fa3c6971aa6f0a70160fed018edbb8b1db3af9b034ef3f7c224c3bdb7431\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f212d25e8f357209838ad7ce8ebc89de79906d9fe580566962e889ecb090e6b4\",\"dweb:/ipfs/QmdbLuLwX24VB1Gdrabke584WyaUkuJSWuDzzuRgqAMFge\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "ERC1967Proxy": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "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": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_2757": { + "entryPoint": null, + "id": 2757, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkNonPayable_3063": { + "entryPoint": 389, + "id": 3063, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_revert_3820": { + "entryPoint": 517, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setImplementation_2843": { + "entryPoint": 146, + "id": 2843, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@functionDelegateCall_3738": { + "entryPoint": 270, + "id": 3738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAddressSlot_4059": { + "entryPoint": null, + "id": 4059, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@upgradeToAndCall_2879": { + "entryPoint": 51, + "id": 2879, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3778": { + "entryPoint": 422, + "id": 3778, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory": { + "entryPoint": 616, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 822, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 580, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 558, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1966:51", + "nodeType": "YulBlock", + "src": "0:1966:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "46:95:51", + "nodeType": "YulBlock", + "src": "46:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "63:1:51", + "nodeType": "YulLiteral", + "src": "63:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "70:3:51", + "nodeType": "YulLiteral", + "src": "70:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "75:10:51", + "nodeType": "YulLiteral", + "src": "75:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "66:3:51", + "nodeType": "YulIdentifier", + "src": "66:3:51" + }, + "nativeSrc": "66:20:51", + "nodeType": "YulFunctionCall", + "src": "66:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "56:6:51", + "nodeType": "YulIdentifier", + "src": "56:6:51" + }, + "nativeSrc": "56:31:51", + "nodeType": "YulFunctionCall", + "src": "56:31:51" + }, + "nativeSrc": "56:31:51", + "nodeType": "YulExpressionStatement", + "src": "56:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "103:1:51", + "nodeType": "YulLiteral", + "src": "103:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "106:4:51", + "nodeType": "YulLiteral", + "src": "106:4:51", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "96:6:51", + "nodeType": "YulIdentifier", + "src": "96:6:51" + }, + "nativeSrc": "96:15:51", + "nodeType": "YulFunctionCall", + "src": "96:15:51" + }, + "nativeSrc": "96:15:51", + "nodeType": "YulExpressionStatement", + "src": "96:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "127:1:51", + "nodeType": "YulLiteral", + "src": "127:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "130:4:51", + "nodeType": "YulLiteral", + "src": "130:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "120:6:51", + "nodeType": "YulIdentifier", + "src": "120:6:51" + }, + "nativeSrc": "120:15:51", + "nodeType": "YulFunctionCall", + "src": "120:15:51" + }, + "nativeSrc": "120:15:51", + "nodeType": "YulExpressionStatement", + "src": "120:15:51" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "14:127:51", + "nodeType": "YulFunctionDefinition", + "src": "14:127:51" + }, + { + "body": { + "nativeSrc": "212:184:51", + "nodeType": "YulBlock", + "src": "212:184:51", + "statements": [ + { + "nativeSrc": "222:10:51", + "nodeType": "YulVariableDeclaration", + "src": "222:10:51", + "value": { + "kind": "number", + "nativeSrc": "231:1:51", + "nodeType": "YulLiteral", + "src": "231:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "226:1:51", + "nodeType": "YulTypedName", + "src": "226:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "291:63:51", + "nodeType": "YulBlock", + "src": "291:63:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "316:3:51", + "nodeType": "YulIdentifier", + "src": "316:3:51" + }, + { + "name": "i", + "nativeSrc": "321:1:51", + "nodeType": "YulIdentifier", + "src": "321:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "312:3:51", + "nodeType": "YulIdentifier", + "src": "312:3:51" + }, + "nativeSrc": "312:11:51", + "nodeType": "YulFunctionCall", + "src": "312:11:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "335:3:51", + "nodeType": "YulIdentifier", + "src": "335:3:51" + }, + { + "name": "i", + "nativeSrc": "340:1:51", + "nodeType": "YulIdentifier", + "src": "340:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "331:3:51", + "nodeType": "YulIdentifier", + "src": "331:3:51" + }, + "nativeSrc": "331:11:51", + "nodeType": "YulFunctionCall", + "src": "331:11:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "325:5:51", + "nodeType": "YulIdentifier", + "src": "325:5:51" + }, + "nativeSrc": "325:18:51", + "nodeType": "YulFunctionCall", + "src": "325:18:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "305:6:51", + "nodeType": "YulIdentifier", + "src": "305:6:51" + }, + "nativeSrc": "305:39:51", + "nodeType": "YulFunctionCall", + "src": "305:39:51" + }, + "nativeSrc": "305:39:51", + "nodeType": "YulExpressionStatement", + "src": "305:39:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "252:1:51", + "nodeType": "YulIdentifier", + "src": "252:1:51" + }, + { + "name": "length", + "nativeSrc": "255:6:51", + "nodeType": "YulIdentifier", + "src": "255:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "249:2:51", + "nodeType": "YulIdentifier", + "src": "249:2:51" + }, + "nativeSrc": "249:13:51", + "nodeType": "YulFunctionCall", + "src": "249:13:51" + }, + "nativeSrc": "241:113:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "263:19:51", + "nodeType": "YulBlock", + "src": "263:19:51", + "statements": [ + { + "nativeSrc": "265:15:51", + "nodeType": "YulAssignment", + "src": "265:15:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "274:1:51", + "nodeType": "YulIdentifier", + "src": "274:1:51" + }, + { + "kind": "number", + "nativeSrc": "277:2:51", + "nodeType": "YulLiteral", + "src": "277:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "270:3:51", + "nodeType": "YulIdentifier", + "src": "270:3:51" + }, + "nativeSrc": "270:10:51", + "nodeType": "YulFunctionCall", + "src": "270:10:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "265:1:51", + "nodeType": "YulIdentifier", + "src": "265:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "245:3:51", + "nodeType": "YulBlock", + "src": "245:3:51", + "statements": [] + }, + "src": "241:113:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "374:3:51", + "nodeType": "YulIdentifier", + "src": "374:3:51" + }, + { + "name": "length", + "nativeSrc": "379:6:51", + "nodeType": "YulIdentifier", + "src": "379:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "370:3:51", + "nodeType": "YulIdentifier", + "src": "370:3:51" + }, + "nativeSrc": "370:16:51", + "nodeType": "YulFunctionCall", + "src": "370:16:51" + }, + { + "kind": "number", + "nativeSrc": "388:1:51", + "nodeType": "YulLiteral", + "src": "388:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "363:6:51", + "nodeType": "YulIdentifier", + "src": "363:6:51" + }, + "nativeSrc": "363:27:51", + "nodeType": "YulFunctionCall", + "src": "363:27:51" + }, + "nativeSrc": "363:27:51", + "nodeType": "YulExpressionStatement", + "src": "363:27:51" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "146:250:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "190:3:51", + "nodeType": "YulTypedName", + "src": "190:3:51", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "195:3:51", + "nodeType": "YulTypedName", + "src": "195:3:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "200:6:51", + "nodeType": "YulTypedName", + "src": "200:6:51", + "type": "" + } + ], + "src": "146:250:51" + }, + { + "body": { + "nativeSrc": "508:956:51", + "nodeType": "YulBlock", + "src": "508:956:51", + "statements": [ + { + "body": { + "nativeSrc": "554:16:51", + "nodeType": "YulBlock", + "src": "554:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:51", + "nodeType": "YulLiteral", + "src": "563:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:51", + "nodeType": "YulLiteral", + "src": "566:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:51", + "nodeType": "YulIdentifier", + "src": "556:6:51" + }, + "nativeSrc": "556:12:51", + "nodeType": "YulFunctionCall", + "src": "556:12:51" + }, + "nativeSrc": "556:12:51", + "nodeType": "YulExpressionStatement", + "src": "556:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "529:7:51", + "nodeType": "YulIdentifier", + "src": "529:7:51" + }, + { + "name": "headStart", + "nativeSrc": "538:9:51", + "nodeType": "YulIdentifier", + "src": "538:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "525:3:51", + "nodeType": "YulIdentifier", + "src": "525:3:51" + }, + "nativeSrc": "525:23:51", + "nodeType": "YulFunctionCall", + "src": "525:23:51" + }, + { + "kind": "number", + "nativeSrc": "550:2:51", + "nodeType": "YulLiteral", + "src": "550:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "521:3:51", + "nodeType": "YulIdentifier", + "src": "521:3:51" + }, + "nativeSrc": "521:32:51", + "nodeType": "YulFunctionCall", + "src": "521:32:51" + }, + "nativeSrc": "518:52:51", + "nodeType": "YulIf", + "src": "518:52:51" + }, + { + "nativeSrc": "579:29:51", + "nodeType": "YulVariableDeclaration", + "src": "579:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "598:9:51", + "nodeType": "YulIdentifier", + "src": "598:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "592:5:51", + "nodeType": "YulIdentifier", + "src": "592:5:51" + }, + "nativeSrc": "592:16:51", + "nodeType": "YulFunctionCall", + "src": "592:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "583:5:51", + "nodeType": "YulTypedName", + "src": "583:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "671:16:51", + "nodeType": "YulBlock", + "src": "671:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "680:1:51", + "nodeType": "YulLiteral", + "src": "680:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "683:1:51", + "nodeType": "YulLiteral", + "src": "683:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "673:6:51", + "nodeType": "YulIdentifier", + "src": "673:6:51" + }, + "nativeSrc": "673:12:51", + "nodeType": "YulFunctionCall", + "src": "673:12:51" + }, + "nativeSrc": "673:12:51", + "nodeType": "YulExpressionStatement", + "src": "673:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "630:5:51", + "nodeType": "YulIdentifier", + "src": "630:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "641:5:51", + "nodeType": "YulIdentifier", + "src": "641:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "656:3:51", + "nodeType": "YulLiteral", + "src": "656:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "661:1:51", + "nodeType": "YulLiteral", + "src": "661:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "652:3:51", + "nodeType": "YulIdentifier", + "src": "652:3:51" + }, + "nativeSrc": "652:11:51", + "nodeType": "YulFunctionCall", + "src": "652:11:51" + }, + { + "kind": "number", + "nativeSrc": "665:1:51", + "nodeType": "YulLiteral", + "src": "665:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "648:3:51", + "nodeType": "YulIdentifier", + "src": "648:3:51" + }, + "nativeSrc": "648:19:51", + "nodeType": "YulFunctionCall", + "src": "648:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "637:3:51", + "nodeType": "YulIdentifier", + "src": "637:3:51" + }, + "nativeSrc": "637:31:51", + "nodeType": "YulFunctionCall", + "src": "637:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "627:2:51", + "nodeType": "YulIdentifier", + "src": "627:2:51" + }, + "nativeSrc": "627:42:51", + "nodeType": "YulFunctionCall", + "src": "627:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "620:6:51", + "nodeType": "YulIdentifier", + "src": "620:6:51" + }, + "nativeSrc": "620:50:51", + "nodeType": "YulFunctionCall", + "src": "620:50:51" + }, + "nativeSrc": "617:70:51", + "nodeType": "YulIf", + "src": "617:70:51" + }, + { + "nativeSrc": "696:15:51", + "nodeType": "YulAssignment", + "src": "696:15:51", + "value": { + "name": "value", + "nativeSrc": "706:5:51", + "nodeType": "YulIdentifier", + "src": "706:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "696:6:51", + "nodeType": "YulIdentifier", + "src": "696:6:51" + } + ] + }, + { + "nativeSrc": "720:39:51", + "nodeType": "YulVariableDeclaration", + "src": "720:39:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "744:9:51", + "nodeType": "YulIdentifier", + "src": "744:9:51" + }, + { + "kind": "number", + "nativeSrc": "755:2:51", + "nodeType": "YulLiteral", + "src": "755:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "740:3:51", + "nodeType": "YulIdentifier", + "src": "740:3:51" + }, + "nativeSrc": "740:18:51", + "nodeType": "YulFunctionCall", + "src": "740:18:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "734:5:51", + "nodeType": "YulIdentifier", + "src": "734:5:51" + }, + "nativeSrc": "734:25:51", + "nodeType": "YulFunctionCall", + "src": "734:25:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "724:6:51", + "nodeType": "YulTypedName", + "src": "724:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "768:28:51", + "nodeType": "YulVariableDeclaration", + "src": "768:28:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "786:2:51", + "nodeType": "YulLiteral", + "src": "786:2:51", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "790:1:51", + "nodeType": "YulLiteral", + "src": "790:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "782:3:51", + "nodeType": "YulIdentifier", + "src": "782:3:51" + }, + "nativeSrc": "782:10:51", + "nodeType": "YulFunctionCall", + "src": "782:10:51" + }, + { + "kind": "number", + "nativeSrc": "794:1:51", + "nodeType": "YulLiteral", + "src": "794:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "778:3:51", + "nodeType": "YulIdentifier", + "src": "778:3:51" + }, + "nativeSrc": "778:18:51", + "nodeType": "YulFunctionCall", + "src": "778:18:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "772:2:51", + "nodeType": "YulTypedName", + "src": "772:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "823:16:51", + "nodeType": "YulBlock", + "src": "823:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "832:1:51", + "nodeType": "YulLiteral", + "src": "832:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "835:1:51", + "nodeType": "YulLiteral", + "src": "835:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "825:6:51", + "nodeType": "YulIdentifier", + "src": "825:6:51" + }, + "nativeSrc": "825:12:51", + "nodeType": "YulFunctionCall", + "src": "825:12:51" + }, + "nativeSrc": "825:12:51", + "nodeType": "YulExpressionStatement", + "src": "825:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "811:6:51", + "nodeType": "YulIdentifier", + "src": "811:6:51" + }, + { + "name": "_1", + "nativeSrc": "819:2:51", + "nodeType": "YulIdentifier", + "src": "819:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "808:2:51", + "nodeType": "YulIdentifier", + "src": "808:2:51" + }, + "nativeSrc": "808:14:51", + "nodeType": "YulFunctionCall", + "src": "808:14:51" + }, + "nativeSrc": "805:34:51", + "nodeType": "YulIf", + "src": "805:34:51" + }, + { + "nativeSrc": "848:32:51", + "nodeType": "YulVariableDeclaration", + "src": "848:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "862:9:51", + "nodeType": "YulIdentifier", + "src": "862:9:51" + }, + { + "name": "offset", + "nativeSrc": "873:6:51", + "nodeType": "YulIdentifier", + "src": "873:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "858:3:51", + "nodeType": "YulIdentifier", + "src": "858:3:51" + }, + "nativeSrc": "858:22:51", + "nodeType": "YulFunctionCall", + "src": "858:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "852:2:51", + "nodeType": "YulTypedName", + "src": "852:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "928:16:51", + "nodeType": "YulBlock", + "src": "928:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "937:1:51", + "nodeType": "YulLiteral", + "src": "937:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "940:1:51", + "nodeType": "YulLiteral", + "src": "940:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "930:6:51", + "nodeType": "YulIdentifier", + "src": "930:6:51" + }, + "nativeSrc": "930:12:51", + "nodeType": "YulFunctionCall", + "src": "930:12:51" + }, + "nativeSrc": "930:12:51", + "nodeType": "YulExpressionStatement", + "src": "930:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "907:2:51", + "nodeType": "YulIdentifier", + "src": "907:2:51" + }, + { + "kind": "number", + "nativeSrc": "911:4:51", + "nodeType": "YulLiteral", + "src": "911:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "903:3:51", + "nodeType": "YulIdentifier", + "src": "903:3:51" + }, + "nativeSrc": "903:13:51", + "nodeType": "YulFunctionCall", + "src": "903:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "918:7:51", + "nodeType": "YulIdentifier", + "src": "918:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "899:3:51", + "nodeType": "YulIdentifier", + "src": "899:3:51" + }, + "nativeSrc": "899:27:51", + "nodeType": "YulFunctionCall", + "src": "899:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "892:6:51", + "nodeType": "YulIdentifier", + "src": "892:6:51" + }, + "nativeSrc": "892:35:51", + "nodeType": "YulFunctionCall", + "src": "892:35:51" + }, + "nativeSrc": "889:55:51", + "nodeType": "YulIf", + "src": "889:55:51" + }, + { + "nativeSrc": "953:19:51", + "nodeType": "YulVariableDeclaration", + "src": "953:19:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "969:2:51", + "nodeType": "YulIdentifier", + "src": "969:2:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "963:5:51", + "nodeType": "YulIdentifier", + "src": "963:5:51" + }, + "nativeSrc": "963:9:51", + "nodeType": "YulFunctionCall", + "src": "963:9:51" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "957:2:51", + "nodeType": "YulTypedName", + "src": "957:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "995:22:51", + "nodeType": "YulBlock", + "src": "995:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "997:16:51", + "nodeType": "YulIdentifier", + "src": "997:16:51" + }, + "nativeSrc": "997:18:51", + "nodeType": "YulFunctionCall", + "src": "997:18:51" + }, + "nativeSrc": "997:18:51", + "nodeType": "YulExpressionStatement", + "src": "997:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_3", + "nativeSrc": "987:2:51", + "nodeType": "YulIdentifier", + "src": "987:2:51" + }, + { + "name": "_1", + "nativeSrc": "991:2:51", + "nodeType": "YulIdentifier", + "src": "991:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "984:2:51", + "nodeType": "YulIdentifier", + "src": "984:2:51" + }, + "nativeSrc": "984:10:51", + "nodeType": "YulFunctionCall", + "src": "984:10:51" + }, + "nativeSrc": "981:36:51", + "nodeType": "YulIf", + "src": "981:36:51" + }, + { + "nativeSrc": "1026:17:51", + "nodeType": "YulVariableDeclaration", + "src": "1026:17:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1040:2:51", + "nodeType": "YulLiteral", + "src": "1040:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1036:3:51", + "nodeType": "YulIdentifier", + "src": "1036:3:51" + }, + "nativeSrc": "1036:7:51", + "nodeType": "YulFunctionCall", + "src": "1036:7:51" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "1030:2:51", + "nodeType": "YulTypedName", + "src": "1030:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1052:23:51", + "nodeType": "YulVariableDeclaration", + "src": "1052:23:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1072:2:51", + "nodeType": "YulLiteral", + "src": "1072:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1066:5:51", + "nodeType": "YulIdentifier", + "src": "1066:5:51" + }, + "nativeSrc": "1066:9:51", + "nodeType": "YulFunctionCall", + "src": "1066:9:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "1056:6:51", + "nodeType": "YulTypedName", + "src": "1056:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1084:71:51", + "nodeType": "YulVariableDeclaration", + "src": "1084:71:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1106:6:51", + "nodeType": "YulIdentifier", + "src": "1106:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1130:2:51", + "nodeType": "YulIdentifier", + "src": "1130:2:51" + }, + { + "kind": "number", + "nativeSrc": "1134:4:51", + "nodeType": "YulLiteral", + "src": "1134:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1126:3:51", + "nodeType": "YulIdentifier", + "src": "1126:3:51" + }, + "nativeSrc": "1126:13:51", + "nodeType": "YulFunctionCall", + "src": "1126:13:51" + }, + { + "name": "_4", + "nativeSrc": "1141:2:51", + "nodeType": "YulIdentifier", + "src": "1141:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1122:3:51", + "nodeType": "YulIdentifier", + "src": "1122:3:51" + }, + "nativeSrc": "1122:22:51", + "nodeType": "YulFunctionCall", + "src": "1122:22:51" + }, + { + "kind": "number", + "nativeSrc": "1146:2:51", + "nodeType": "YulLiteral", + "src": "1146:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1118:3:51", + "nodeType": "YulIdentifier", + "src": "1118:3:51" + }, + "nativeSrc": "1118:31:51", + "nodeType": "YulFunctionCall", + "src": "1118:31:51" + }, + { + "name": "_4", + "nativeSrc": "1151:2:51", + "nodeType": "YulIdentifier", + "src": "1151:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1114:3:51", + "nodeType": "YulIdentifier", + "src": "1114:3:51" + }, + "nativeSrc": "1114:40:51", + "nodeType": "YulFunctionCall", + "src": "1114:40:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1102:3:51", + "nodeType": "YulIdentifier", + "src": "1102:3:51" + }, + "nativeSrc": "1102:53:51", + "nodeType": "YulFunctionCall", + "src": "1102:53:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1088:10:51", + "nodeType": "YulTypedName", + "src": "1088:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1214:22:51", + "nodeType": "YulBlock", + "src": "1214:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1216:16:51", + "nodeType": "YulIdentifier", + "src": "1216:16:51" + }, + "nativeSrc": "1216:18:51", + "nodeType": "YulFunctionCall", + "src": "1216:18:51" + }, + "nativeSrc": "1216:18:51", + "nodeType": "YulExpressionStatement", + "src": "1216:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1173:10:51", + "nodeType": "YulIdentifier", + "src": "1173:10:51" + }, + { + "name": "_1", + "nativeSrc": "1185:2:51", + "nodeType": "YulIdentifier", + "src": "1185:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1170:2:51", + "nodeType": "YulIdentifier", + "src": "1170:2:51" + }, + "nativeSrc": "1170:18:51", + "nodeType": "YulFunctionCall", + "src": "1170:18:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1193:10:51", + "nodeType": "YulIdentifier", + "src": "1193:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "1205:6:51", + "nodeType": "YulIdentifier", + "src": "1205:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1190:2:51", + "nodeType": "YulIdentifier", + "src": "1190:2:51" + }, + "nativeSrc": "1190:22:51", + "nodeType": "YulFunctionCall", + "src": "1190:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1167:2:51", + "nodeType": "YulIdentifier", + "src": "1167:2:51" + }, + "nativeSrc": "1167:46:51", + "nodeType": "YulFunctionCall", + "src": "1167:46:51" + }, + "nativeSrc": "1164:72:51", + "nodeType": "YulIf", + "src": "1164:72:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1252:2:51", + "nodeType": "YulLiteral", + "src": "1252:2:51", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1256:10:51", + "nodeType": "YulIdentifier", + "src": "1256:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1245:6:51", + "nodeType": "YulIdentifier", + "src": "1245:6:51" + }, + "nativeSrc": "1245:22:51", + "nodeType": "YulFunctionCall", + "src": "1245:22:51" + }, + "nativeSrc": "1245:22:51", + "nodeType": "YulExpressionStatement", + "src": "1245:22:51" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1283:6:51", + "nodeType": "YulIdentifier", + "src": "1283:6:51" + }, + { + "name": "_3", + "nativeSrc": "1291:2:51", + "nodeType": "YulIdentifier", + "src": "1291:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1276:6:51", + "nodeType": "YulIdentifier", + "src": "1276:6:51" + }, + "nativeSrc": "1276:18:51", + "nodeType": "YulFunctionCall", + "src": "1276:18:51" + }, + "nativeSrc": "1276:18:51", + "nodeType": "YulExpressionStatement", + "src": "1276:18:51" + }, + { + "body": { + "nativeSrc": "1340:16:51", + "nodeType": "YulBlock", + "src": "1340:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1349:1:51", + "nodeType": "YulLiteral", + "src": "1349:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1352:1:51", + "nodeType": "YulLiteral", + "src": "1352:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1342:6:51", + "nodeType": "YulIdentifier", + "src": "1342:6:51" + }, + "nativeSrc": "1342:12:51", + "nodeType": "YulFunctionCall", + "src": "1342:12:51" + }, + "nativeSrc": "1342:12:51", + "nodeType": "YulExpressionStatement", + "src": "1342:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1317:2:51", + "nodeType": "YulIdentifier", + "src": "1317:2:51" + }, + { + "name": "_3", + "nativeSrc": "1321:2:51", + "nodeType": "YulIdentifier", + "src": "1321:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1313:3:51", + "nodeType": "YulIdentifier", + "src": "1313:3:51" + }, + "nativeSrc": "1313:11:51", + "nodeType": "YulFunctionCall", + "src": "1313:11:51" + }, + { + "kind": "number", + "nativeSrc": "1326:2:51", + "nodeType": "YulLiteral", + "src": "1326:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1309:3:51", + "nodeType": "YulIdentifier", + "src": "1309:3:51" + }, + "nativeSrc": "1309:20:51", + "nodeType": "YulFunctionCall", + "src": "1309:20:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1331:7:51", + "nodeType": "YulIdentifier", + "src": "1331:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1306:2:51", + "nodeType": "YulIdentifier", + "src": "1306:2:51" + }, + "nativeSrc": "1306:33:51", + "nodeType": "YulFunctionCall", + "src": "1306:33:51" + }, + "nativeSrc": "1303:53:51", + "nodeType": "YulIf", + "src": "1303:53:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1404:2:51", + "nodeType": "YulIdentifier", + "src": "1404:2:51" + }, + { + "kind": "number", + "nativeSrc": "1408:2:51", + "nodeType": "YulLiteral", + "src": "1408:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1400:3:51", + "nodeType": "YulIdentifier", + "src": "1400:3:51" + }, + "nativeSrc": "1400:11:51", + "nodeType": "YulFunctionCall", + "src": "1400:11:51" + }, + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1417:6:51", + "nodeType": "YulIdentifier", + "src": "1417:6:51" + }, + { + "kind": "number", + "nativeSrc": "1425:2:51", + "nodeType": "YulLiteral", + "src": "1425:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1413:3:51", + "nodeType": "YulIdentifier", + "src": "1413:3:51" + }, + "nativeSrc": "1413:15:51", + "nodeType": "YulFunctionCall", + "src": "1413:15:51" + }, + { + "name": "_3", + "nativeSrc": "1430:2:51", + "nodeType": "YulIdentifier", + "src": "1430:2:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1365:34:51", + "nodeType": "YulIdentifier", + "src": "1365:34:51" + }, + "nativeSrc": "1365:68:51", + "nodeType": "YulFunctionCall", + "src": "1365:68:51" + }, + "nativeSrc": "1365:68:51", + "nodeType": "YulExpressionStatement", + "src": "1365:68:51" + }, + { + "nativeSrc": "1442:16:51", + "nodeType": "YulAssignment", + "src": "1442:16:51", + "value": { + "name": "memPtr", + "nativeSrc": "1452:6:51", + "nodeType": "YulIdentifier", + "src": "1452:6:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1442:6:51", + "nodeType": "YulIdentifier", + "src": "1442:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory", + "nativeSrc": "401:1063:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "466:9:51", + "nodeType": "YulTypedName", + "src": "466:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "477:7:51", + "nodeType": "YulTypedName", + "src": "477:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "489:6:51", + "nodeType": "YulTypedName", + "src": "489:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "497:6:51", + "nodeType": "YulTypedName", + "src": "497:6:51", + "type": "" + } + ], + "src": "401:1063:51" + }, + { + "body": { + "nativeSrc": "1570:102:51", + "nodeType": "YulBlock", + "src": "1570:102:51", + "statements": [ + { + "nativeSrc": "1580:26:51", + "nodeType": "YulAssignment", + "src": "1580:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1592:9:51", + "nodeType": "YulIdentifier", + "src": "1592:9:51" + }, + { + "kind": "number", + "nativeSrc": "1603:2:51", + "nodeType": "YulLiteral", + "src": "1603:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1588:3:51", + "nodeType": "YulIdentifier", + "src": "1588:3:51" + }, + "nativeSrc": "1588:18:51", + "nodeType": "YulFunctionCall", + "src": "1588:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1580:4:51", + "nodeType": "YulIdentifier", + "src": "1580:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1622:9:51", + "nodeType": "YulIdentifier", + "src": "1622:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1637:6:51", + "nodeType": "YulIdentifier", + "src": "1637:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1653:3:51", + "nodeType": "YulLiteral", + "src": "1653:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1658:1:51", + "nodeType": "YulLiteral", + "src": "1658:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1649:3:51", + "nodeType": "YulIdentifier", + "src": "1649:3:51" + }, + "nativeSrc": "1649:11:51", + "nodeType": "YulFunctionCall", + "src": "1649:11:51" + }, + { + "kind": "number", + "nativeSrc": "1662:1:51", + "nodeType": "YulLiteral", + "src": "1662:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1645:3:51", + "nodeType": "YulIdentifier", + "src": "1645:3:51" + }, + "nativeSrc": "1645:19:51", + "nodeType": "YulFunctionCall", + "src": "1645:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1633:3:51", + "nodeType": "YulIdentifier", + "src": "1633:3:51" + }, + "nativeSrc": "1633:32:51", + "nodeType": "YulFunctionCall", + "src": "1633:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1615:6:51", + "nodeType": "YulIdentifier", + "src": "1615:6:51" + }, + "nativeSrc": "1615:51:51", + "nodeType": "YulFunctionCall", + "src": "1615:51:51" + }, + "nativeSrc": "1615:51:51", + "nodeType": "YulExpressionStatement", + "src": "1615:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1469:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1539:9:51", + "nodeType": "YulTypedName", + "src": "1539:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1550:6:51", + "nodeType": "YulTypedName", + "src": "1550:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1561:4:51", + "nodeType": "YulTypedName", + "src": "1561:4:51", + "type": "" + } + ], + "src": "1469:203:51" + }, + { + "body": { + "nativeSrc": "1814:150:51", + "nodeType": "YulBlock", + "src": "1814:150:51", + "statements": [ + { + "nativeSrc": "1824:27:51", + "nodeType": "YulVariableDeclaration", + "src": "1824:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1844:6:51", + "nodeType": "YulIdentifier", + "src": "1844:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1838:5:51", + "nodeType": "YulIdentifier", + "src": "1838:5:51" + }, + "nativeSrc": "1838:13:51", + "nodeType": "YulFunctionCall", + "src": "1838:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1828:6:51", + "nodeType": "YulTypedName", + "src": "1828:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1899:6:51", + "nodeType": "YulIdentifier", + "src": "1899:6:51" + }, + { + "kind": "number", + "nativeSrc": "1907:4:51", + "nodeType": "YulLiteral", + "src": "1907:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1895:3:51", + "nodeType": "YulIdentifier", + "src": "1895:3:51" + }, + "nativeSrc": "1895:17:51", + "nodeType": "YulFunctionCall", + "src": "1895:17:51" + }, + { + "name": "pos", + "nativeSrc": "1914:3:51", + "nodeType": "YulIdentifier", + "src": "1914:3:51" + }, + { + "name": "length", + "nativeSrc": "1919:6:51", + "nodeType": "YulIdentifier", + "src": "1919:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1860:34:51", + "nodeType": "YulIdentifier", + "src": "1860:34:51" + }, + "nativeSrc": "1860:66:51", + "nodeType": "YulFunctionCall", + "src": "1860:66:51" + }, + "nativeSrc": "1860:66:51", + "nodeType": "YulExpressionStatement", + "src": "1860:66:51" + }, + { + "nativeSrc": "1935:23:51", + "nodeType": "YulAssignment", + "src": "1935:23:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1946:3:51", + "nodeType": "YulIdentifier", + "src": "1946:3:51" + }, + { + "name": "length", + "nativeSrc": "1951:6:51", + "nodeType": "YulIdentifier", + "src": "1951:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1942:3:51", + "nodeType": "YulIdentifier", + "src": "1942:3:51" + }, + "nativeSrc": "1942:16:51", + "nodeType": "YulFunctionCall", + "src": "1942:16:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "1935:3:51", + "nodeType": "YulIdentifier", + "src": "1935:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "1677:287:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1790:3:51", + "nodeType": "YulTypedName", + "src": "1790:3:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1795:6:51", + "nodeType": "YulTypedName", + "src": "1795:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "1806:3:51", + "nodeType": "YulTypedName", + "src": "1806:3:51", + "type": "" + } + ], + "src": "1677:287:51" + } + ] + }, + "contents": "{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\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_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := mload(add(headStart, 32))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n value1 := memPtr\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_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}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405260405161040a38038061040a83398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b60aa806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea264697066735822122003fc005fad666ca90e9eb7570406b590e97e6cf6f4f2b2cfbc296828d755d88864736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x40A CODESIZE SUB DUP1 PUSH2 0x40A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x268 JUMP JUMPDEST PUSH2 0x2C DUP3 DUP3 PUSH2 0x33 JUMP JUMPDEST POP POP PUSH2 0x352 JUMP JUMPDEST PUSH2 0x3C DUP3 PUSH2 0x92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x86 JUMPI PUSH2 0x81 DUP3 DUP3 PUSH2 0x10E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x8E PUSH2 0x185 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0xCD JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x12B SWAP2 SWAP1 PUSH2 0x336 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x166 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 0x16B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x17C DUP6 DUP4 DUP4 PUSH2 0x1A6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x1A4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x1BB JUMPI PUSH2 0x1B6 DUP3 PUSH2 0x205 JUMP JUMPDEST PUSH2 0x1FE JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x1D2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x1FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xC4 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x215 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x247 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x2AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x2D5 JUMPI PUSH2 0x2D5 PUSH2 0x22E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2FD JUMPI PUSH2 0x2FD PUSH2 0x22E JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x316 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x327 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x244 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x348 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x244 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xAA DUP1 PUSH2 0x360 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x51 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4C PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x6F JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB 0xFC STOP PUSH0 0xAD PUSH7 0x6CA90E9EB75704 MOD 0xB5 SWAP1 0xE9 PUSH31 0x6CF6F4F2B2CFBC296828D755D88864736F6C63430008180033000000000000 ", + "sourceMap": "600:1117:12:-:0;;;1081:133;;;;;;;;;;;;;;;;;;:::i;:::-;1155:52;1185:14;1201:5;1155:29;:52::i;:::-;1081:133;;600:1117;;2264:344:13;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:13;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;:::-;;2264:344;;:::o;2454:148::-;2573:18;:16;:18::i;:::-;2264:344;;:::o;1671:281::-;1748:17;-1:-1:-1;;;;;1748:29:13;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:13;;-1:-1:-1;;;;;1633:32:51;;1805:47:13;;;1615:51:51;1588:18;;1805:47:13;;;;;;;;1744:119;811:66;1872:73;;-1:-1:-1;;;;;;1872:73:13;-1:-1:-1;;;;;1872:73:13;;;;;;;;;;1671:281::o;3916:253:23:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:23;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4023:67:23;;-1:-1:-1;4023:67:23;-1:-1:-1;4107:55:23;4134:6;4023:67;;4107:26;:55::i;:::-;4100:62;3916:253;-1:-1:-1;;;;;3916:253:23:o;6113:122:13:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:13;;;;;;;;;;;6159:70;6113:122::o;4437:582:23:-;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:23;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:23;;-1:-1:-1;;;;;1633:32:51;;4933:24:23;;;1615:51:51;1588:18;;4933:24:23;1469:203:51;4853:119:23;-1:-1:-1;4992:10:23;4605:408;4437:582;;;;;:::o;5559:487::-;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:23;;;;;;;;;;;14:127:51;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:51;370:16;;363:27;146:250::o;401:1063::-;489:6;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;592:16;;-1:-1:-1;;;;;637:31:51;;627:42;;617:70;;683:1;680;673:12;617:70;755:2;740:18;;734:25;706:5;;-1:-1:-1;;;;;;808:14:51;;;805:34;;;835:1;832;825:12;805:34;873:6;862:9;858:22;848:32;;918:7;911:4;907:2;903:13;899:27;889:55;;940:1;937;930:12;889:55;969:2;963:9;991:2;987;984:10;981:36;;;997:18;;:::i;:::-;1072:2;1066:9;1040:2;1126:13;;-1:-1:-1;;1122:22:51;;;1146:2;1118:31;1114:40;1102:53;;;1170:18;;;1190:22;;;1167:46;1164:72;;;1216:18;;:::i;:::-;1256:10;1252:2;1245:22;1291:2;1283:6;1276:18;1331:7;1326:2;1321;1317;1313:11;1309:20;1306:33;1303:53;;;1352:1;1349;1342:12;1303:53;1365:68;1430:2;1425;1417:6;1413:15;1408:2;1404;1400:11;1365:68;:::i;:::-;1452:6;1442:16;;;;;;;401:1063;;;;;:::o;1677:287::-;1806:3;1844:6;1838:13;1860:66;1919:6;1914:3;1907:4;1899:6;1895:17;1860:66;:::i;:::-;1942:16;;;;;1677:287;-1:-1:-1;;1677:287:51:o;:::-;600:1117:12;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_3099": { + "entryPoint": null, + "id": 3099, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_delegate_3075": { + "entryPoint": 81, + "id": 3075, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_fallback_3091": { + "entryPoint": 12, + "id": 3091, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_implementation_2769": { + "entryPoint": 26, + "id": 2769, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getAddressSlot_4059": { + "entryPoint": null, + "id": 4059, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getImplementation_2816": { + "entryPoint": null, + "id": 2816, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea264697066735822122003fc005fad666ca90e9eb7570406b590e97e6cf6f4f2b2cfbc296828d755d88864736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x51 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4C PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH1 0x6F JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB 0xFC STOP PUSH0 0xAD PUSH7 0x6CA90E9EB75704 MOD 0xB5 SWAP1 0xE9 PUSH31 0x6CF6F4F2B2CFBC296828D755D88864736F6C63430008180033000000000000 ", + "sourceMap": "600:1117:12:-:0;;;2649:11:14;:9;:11::i;:::-;600:1117:12;2323:83:14;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1583:132:12:-;1650:7;1676:32;811:66:13;1519:53;-1:-1:-1;;;;;1519:53:13;;1441:138;1676:32:12;1669:39;;1583:132;:::o;949:895:14:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@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/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "ERC1967Utils": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "admin", + "type": "address" + } + ], + "name": "ERC1967InvalidAdmin", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "ERC1967InvalidBeacon", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc2a45bcc06ff1279baa5c823f5216475c97aacdc19aadbda8ffb91ffd8b611164736f6c63430008180033", + "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 0xDC 0x2A GASLIMIT 0xBC 0xC0 PUSH16 0xF1279BAA5C823F5216475C97AACDC19A 0xAD 0xBD 0xA8 SELFDESTRUCT 0xB9 0x1F REVERT DUP12 PUSH2 0x1164 PUSH20 0x6F6C634300081800330000000000000000000000 ", + "sourceMap": "496:5741:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;496:5741:13;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc2a45bcc06ff1279baa5c823f5216475c97aacdc19aadbda8ffb91ffd8b611164736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0x2A GASLIMIT 0xBC 0xC0 PUSH16 0xF1279BAA5C823F5216475C97AACDC19A 0xAD 0xBD 0xA8 SELFDESTRUCT 0xB9 0x1F REVERT DUP12 PUSH2 0x1164 PUSH20 0x6F6C634300081800330000000000000000000000 ", + "sourceMap": "496:5741:13:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"This library provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@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/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/Proxy.sol": { + "Proxy": { + "abi": [ + { + "stateMutability": "payable", + "type": "fallback" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "IBeacon": { + "abi": [ + { + "inputs": [], + "name": "implementation", + "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": { + "implementation()": "5c60da1b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {UpgradeableBeacon} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol": { + "ProxyAdmin": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_2078": { + "entryPoint": null, + "id": 2078, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_3133": { + "entryPoint": null, + "id": 3133, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_2174": { + "entryPoint": 110, + "id": 2174, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 190, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:514:51", + "nodeType": "YulBlock", + "src": "0:514:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "95:209:51", + "nodeType": "YulBlock", + "src": "95:209:51", + "statements": [ + { + "body": { + "nativeSrc": "141:16:51", + "nodeType": "YulBlock", + "src": "141:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "150:1:51", + "nodeType": "YulLiteral", + "src": "150:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "153:1:51", + "nodeType": "YulLiteral", + "src": "153:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "143:6:51", + "nodeType": "YulIdentifier", + "src": "143:6:51" + }, + "nativeSrc": "143:12:51", + "nodeType": "YulFunctionCall", + "src": "143:12:51" + }, + "nativeSrc": "143:12:51", + "nodeType": "YulExpressionStatement", + "src": "143:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "116:7:51", + "nodeType": "YulIdentifier", + "src": "116:7:51" + }, + { + "name": "headStart", + "nativeSrc": "125:9:51", + "nodeType": "YulIdentifier", + "src": "125:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "112:3:51", + "nodeType": "YulIdentifier", + "src": "112:3:51" + }, + "nativeSrc": "112:23:51", + "nodeType": "YulFunctionCall", + "src": "112:23:51" + }, + { + "kind": "number", + "nativeSrc": "137:2:51", + "nodeType": "YulLiteral", + "src": "137:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "108:3:51", + "nodeType": "YulIdentifier", + "src": "108:3:51" + }, + "nativeSrc": "108:32:51", + "nodeType": "YulFunctionCall", + "src": "108:32:51" + }, + "nativeSrc": "105:52:51", + "nodeType": "YulIf", + "src": "105:52:51" + }, + { + "nativeSrc": "166:29:51", + "nodeType": "YulVariableDeclaration", + "src": "166:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "185:9:51", + "nodeType": "YulIdentifier", + "src": "185:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "179:5:51", + "nodeType": "YulIdentifier", + "src": "179:5:51" + }, + "nativeSrc": "179:16:51", + "nodeType": "YulFunctionCall", + "src": "179:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "170:5:51", + "nodeType": "YulTypedName", + "src": "170:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "258:16:51", + "nodeType": "YulBlock", + "src": "258:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "267:1:51", + "nodeType": "YulLiteral", + "src": "267:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "270:1:51", + "nodeType": "YulLiteral", + "src": "270:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "260:6:51", + "nodeType": "YulIdentifier", + "src": "260:6:51" + }, + "nativeSrc": "260:12:51", + "nodeType": "YulFunctionCall", + "src": "260:12:51" + }, + "nativeSrc": "260:12:51", + "nodeType": "YulExpressionStatement", + "src": "260:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "217:5:51", + "nodeType": "YulIdentifier", + "src": "217:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "228:5:51", + "nodeType": "YulIdentifier", + "src": "228:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "243:3:51", + "nodeType": "YulLiteral", + "src": "243:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "248:1:51", + "nodeType": "YulLiteral", + "src": "248:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "239:3:51", + "nodeType": "YulIdentifier", + "src": "239:3:51" + }, + "nativeSrc": "239:11:51", + "nodeType": "YulFunctionCall", + "src": "239:11:51" + }, + { + "kind": "number", + "nativeSrc": "252:1:51", + "nodeType": "YulLiteral", + "src": "252:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "235:3:51", + "nodeType": "YulIdentifier", + "src": "235:3:51" + }, + "nativeSrc": "235:19:51", + "nodeType": "YulFunctionCall", + "src": "235:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "224:3:51", + "nodeType": "YulIdentifier", + "src": "224:3:51" + }, + "nativeSrc": "224:31:51", + "nodeType": "YulFunctionCall", + "src": "224:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "214:2:51", + "nodeType": "YulIdentifier", + "src": "214:2:51" + }, + "nativeSrc": "214:42:51", + "nodeType": "YulFunctionCall", + "src": "214:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "207:6:51", + "nodeType": "YulIdentifier", + "src": "207:6:51" + }, + "nativeSrc": "207:50:51", + "nodeType": "YulFunctionCall", + "src": "207:50:51" + }, + "nativeSrc": "204:70:51", + "nodeType": "YulIf", + "src": "204:70:51" + }, + { + "nativeSrc": "283:15:51", + "nodeType": "YulAssignment", + "src": "283:15:51", + "value": { + "name": "value", + "nativeSrc": "293:5:51", + "nodeType": "YulIdentifier", + "src": "293:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "283:6:51", + "nodeType": "YulIdentifier", + "src": "283:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "14:290:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "61:9:51", + "nodeType": "YulTypedName", + "src": "61:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "72:7:51", + "nodeType": "YulTypedName", + "src": "72:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "84:6:51", + "nodeType": "YulTypedName", + "src": "84:6:51", + "type": "" + } + ], + "src": "14:290:51" + }, + { + "body": { + "nativeSrc": "410:102:51", + "nodeType": "YulBlock", + "src": "410:102:51", + "statements": [ + { + "nativeSrc": "420:26:51", + "nodeType": "YulAssignment", + "src": "420:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "432:9:51", + "nodeType": "YulIdentifier", + "src": "432:9:51" + }, + { + "kind": "number", + "nativeSrc": "443:2:51", + "nodeType": "YulLiteral", + "src": "443:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "428:3:51", + "nodeType": "YulIdentifier", + "src": "428:3:51" + }, + "nativeSrc": "428:18:51", + "nodeType": "YulFunctionCall", + "src": "428:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "420:4:51", + "nodeType": "YulIdentifier", + "src": "420:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "462:9:51", + "nodeType": "YulIdentifier", + "src": "462:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "477:6:51", + "nodeType": "YulIdentifier", + "src": "477:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "493:3:51", + "nodeType": "YulLiteral", + "src": "493:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "498:1:51", + "nodeType": "YulLiteral", + "src": "498:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "489:3:51", + "nodeType": "YulIdentifier", + "src": "489:3:51" + }, + "nativeSrc": "489:11:51", + "nodeType": "YulFunctionCall", + "src": "489:11:51" + }, + { + "kind": "number", + "nativeSrc": "502:1:51", + "nodeType": "YulLiteral", + "src": "502:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "485:3:51", + "nodeType": "YulIdentifier", + "src": "485:3:51" + }, + "nativeSrc": "485:19:51", + "nodeType": "YulFunctionCall", + "src": "485:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "473:3:51", + "nodeType": "YulIdentifier", + "src": "473:3:51" + }, + "nativeSrc": "473:32:51", + "nodeType": "YulFunctionCall", + "src": "473:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "455:6:51", + "nodeType": "YulIdentifier", + "src": "455:6:51" + }, + "nativeSrc": "455:51:51", + "nodeType": "YulFunctionCall", + "src": "455:51:51" + }, + "nativeSrc": "455:51:51", + "nodeType": "YulExpressionStatement", + "src": "455:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "309:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "379:9:51", + "nodeType": "YulTypedName", + "src": "379:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "390:6:51", + "nodeType": "YulTypedName", + "src": "390:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "401:4:51", + "nodeType": "YulTypedName", + "src": "401:4:51", + "type": "" + } + ], + "src": "309:203:51" + } + ] + }, + "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_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}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x524 CODESIZE SUB DUP1 PUSH2 0x524 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67 DUP2 PUSH2 0x6E JUMP JUMPDEST POP POP PUSH2 0xEE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x427 DUP1 PUSH2 0xFD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xA6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x104 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0xA1 CALLDATASIZE PUSH1 0x4 PUSH2 0x272 JUMP JUMPDEST PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8A SWAP2 SWAP1 PUSH2 0x38E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0xFF CALLDATASIZE PUSH1 0x4 PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x116 PUSH1 0x0 PUSH2 0x1F7 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x150 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18F PUSH2 0x1CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C7 DUP2 PUSH2 0x1F7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x116 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x292 DUP2 PUSH2 0x247 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2A2 DUP2 PUSH2 0x247 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2E5 JUMPI PUSH2 0x2E5 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH2 0x25C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x36E JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x352 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 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3A1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x348 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3A1 DUP2 PUSH2 0x247 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 0x3E9 SWAP1 DUP4 ADD DUP5 PUSH2 0x348 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL DUP3 0xB8 0xF9 PUSH0 RETURNDATACOPY 0xB9 MSTORE8 BLOBBASEFEE TSTORE PREVRANDAO 0xB3 INVALID PUSH27 0x934376995EFA5E3D86FA4073FEFDB114E5C164736F6C6343000818 STOP CALLER ", + "sourceMap": "502:1462:16:-:0;;;1329:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1371:12;-1:-1:-1;;;;;1273:26:8;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:8;;1350:1;1322:31;;;455:51:51;428:18;;1322:31:8;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;1225:187;1329:58:16;502:1462;;2912:187:8;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:8;;;-1:-1:-1;;;;;;3020:17:8;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:290:51:-;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:51;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:51:o;309:203::-;502:1462:16;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@UPGRADE_INTERFACE_VERSION_3123": { + "entryPoint": null, + "id": 3123, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_2112": { + "entryPoint": 458, + "id": 2112, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_msgSender_3833": { + "entryPoint": null, + "id": 3833, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_transferOwnership_2174": { + "entryPoint": 503, + "id": 2174, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@owner_2095": { + "entryPoint": null, + "id": 2095, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@renounceOwnership_2126": { + "entryPoint": 260, + "id": 2126, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@transferOwnership_2154": { + "entryPoint": 391, + "id": 2154, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@upgradeAndCall_3157": { + "entryPoint": 280, + "id": 3157, + "parameterSlots": 3, + "returnSlots": 0 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 936, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3180t_addresst_bytes_memory_ptr": { + "entryPoint": 626, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_string": { + "entryPoint": 840, + "id": null, + "parameterSlots": 2, + "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_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 965, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 910, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x41": { + "entryPoint": 604, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_contract_ITransparentUpgradeableProxy": { + "entryPoint": 583, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:3071:51", + "nodeType": "YulBlock", + "src": "0:3071:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "115:102:51", + "nodeType": "YulBlock", + "src": "115:102:51", + "statements": [ + { + "nativeSrc": "125:26:51", + "nodeType": "YulAssignment", + "src": "125:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "137:9:51", + "nodeType": "YulIdentifier", + "src": "137:9:51" + }, + { + "kind": "number", + "nativeSrc": "148:2:51", + "nodeType": "YulLiteral", + "src": "148:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "133:3:51", + "nodeType": "YulIdentifier", + "src": "133:3:51" + }, + "nativeSrc": "133:18:51", + "nodeType": "YulFunctionCall", + "src": "133:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "125:4:51", + "nodeType": "YulIdentifier", + "src": "125:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "167:9:51", + "nodeType": "YulIdentifier", + "src": "167:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "182:6:51", + "nodeType": "YulIdentifier", + "src": "182:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "198:3:51", + "nodeType": "YulLiteral", + "src": "198:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "203:1:51", + "nodeType": "YulLiteral", + "src": "203:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "194:3:51", + "nodeType": "YulIdentifier", + "src": "194:3:51" + }, + "nativeSrc": "194:11:51", + "nodeType": "YulFunctionCall", + "src": "194:11:51" + }, + { + "kind": "number", + "nativeSrc": "207:1:51", + "nodeType": "YulLiteral", + "src": "207:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "190:3:51", + "nodeType": "YulIdentifier", + "src": "190:3:51" + }, + "nativeSrc": "190:19:51", + "nodeType": "YulFunctionCall", + "src": "190:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "178:3:51", + "nodeType": "YulIdentifier", + "src": "178:3:51" + }, + "nativeSrc": "178:32:51", + "nodeType": "YulFunctionCall", + "src": "178:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "160:6:51", + "nodeType": "YulIdentifier", + "src": "160:6:51" + }, + "nativeSrc": "160:51:51", + "nodeType": "YulFunctionCall", + "src": "160:51:51" + }, + "nativeSrc": "160:51:51", + "nodeType": "YulExpressionStatement", + "src": "160:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "14:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "84:9:51", + "nodeType": "YulTypedName", + "src": "84:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "95:6:51", + "nodeType": "YulTypedName", + "src": "95:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "106:4:51", + "nodeType": "YulTypedName", + "src": "106:4:51", + "type": "" + } + ], + "src": "14:203:51" + }, + { + "body": { + "nativeSrc": "297:86:51", + "nodeType": "YulBlock", + "src": "297:86:51", + "statements": [ + { + "body": { + "nativeSrc": "361:16:51", + "nodeType": "YulBlock", + "src": "361:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "370:1:51", + "nodeType": "YulLiteral", + "src": "370:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "373:1:51", + "nodeType": "YulLiteral", + "src": "373:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "363:6:51", + "nodeType": "YulIdentifier", + "src": "363:6:51" + }, + "nativeSrc": "363:12:51", + "nodeType": "YulFunctionCall", + "src": "363:12:51" + }, + "nativeSrc": "363:12:51", + "nodeType": "YulExpressionStatement", + "src": "363:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "320:5:51", + "nodeType": "YulIdentifier", + "src": "320:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "331:5:51", + "nodeType": "YulIdentifier", + "src": "331:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "346:3:51", + "nodeType": "YulLiteral", + "src": "346:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "351:1:51", + "nodeType": "YulLiteral", + "src": "351:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "342:3:51", + "nodeType": "YulIdentifier", + "src": "342:3:51" + }, + "nativeSrc": "342:11:51", + "nodeType": "YulFunctionCall", + "src": "342:11:51" + }, + { + "kind": "number", + "nativeSrc": "355:1:51", + "nodeType": "YulLiteral", + "src": "355:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "338:3:51", + "nodeType": "YulIdentifier", + "src": "338:3:51" + }, + "nativeSrc": "338:19:51", + "nodeType": "YulFunctionCall", + "src": "338:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "327:3:51", + "nodeType": "YulIdentifier", + "src": "327:3:51" + }, + "nativeSrc": "327:31:51", + "nodeType": "YulFunctionCall", + "src": "327:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "317:2:51", + "nodeType": "YulIdentifier", + "src": "317:2:51" + }, + "nativeSrc": "317:42:51", + "nodeType": "YulFunctionCall", + "src": "317:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "310:6:51", + "nodeType": "YulIdentifier", + "src": "310:6:51" + }, + "nativeSrc": "310:50:51", + "nodeType": "YulFunctionCall", + "src": "310:50:51" + }, + "nativeSrc": "307:70:51", + "nodeType": "YulIf", + "src": "307:70:51" + } + ] + }, + "name": "validator_revert_contract_ITransparentUpgradeableProxy", + "nativeSrc": "222:161:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "286:5:51", + "nodeType": "YulTypedName", + "src": "286:5:51", + "type": "" + } + ], + "src": "222:161:51" + }, + { + "body": { + "nativeSrc": "420:95:51", + "nodeType": "YulBlock", + "src": "420:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "437:1:51", + "nodeType": "YulLiteral", + "src": "437:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "444:3:51", + "nodeType": "YulLiteral", + "src": "444:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "449:10:51", + "nodeType": "YulLiteral", + "src": "449:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "440:3:51", + "nodeType": "YulIdentifier", + "src": "440:3:51" + }, + "nativeSrc": "440:20:51", + "nodeType": "YulFunctionCall", + "src": "440:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "430:6:51", + "nodeType": "YulIdentifier", + "src": "430:6:51" + }, + "nativeSrc": "430:31:51", + "nodeType": "YulFunctionCall", + "src": "430:31:51" + }, + "nativeSrc": "430:31:51", + "nodeType": "YulExpressionStatement", + "src": "430:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "477:1:51", + "nodeType": "YulLiteral", + "src": "477:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "480:4:51", + "nodeType": "YulLiteral", + "src": "480:4:51", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "470:6:51", + "nodeType": "YulIdentifier", + "src": "470:6:51" + }, + "nativeSrc": "470:15:51", + "nodeType": "YulFunctionCall", + "src": "470:15:51" + }, + "nativeSrc": "470:15:51", + "nodeType": "YulExpressionStatement", + "src": "470:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "501:1:51", + "nodeType": "YulLiteral", + "src": "501:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "504:4:51", + "nodeType": "YulLiteral", + "src": "504:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "494:6:51", + "nodeType": "YulIdentifier", + "src": "494:6:51" + }, + "nativeSrc": "494:15:51", + "nodeType": "YulFunctionCall", + "src": "494:15:51" + }, + "nativeSrc": "494:15:51", + "nodeType": "YulExpressionStatement", + "src": "494:15:51" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "388:127:51", + "nodeType": "YulFunctionDefinition", + "src": "388:127:51" + }, + { + "body": { + "nativeSrc": "670:1144:51", + "nodeType": "YulBlock", + "src": "670:1144:51", + "statements": [ + { + "body": { + "nativeSrc": "716:16:51", + "nodeType": "YulBlock", + "src": "716:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "725:1:51", + "nodeType": "YulLiteral", + "src": "725:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "728:1:51", + "nodeType": "YulLiteral", + "src": "728:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "718:6:51", + "nodeType": "YulIdentifier", + "src": "718:6:51" + }, + "nativeSrc": "718:12:51", + "nodeType": "YulFunctionCall", + "src": "718:12:51" + }, + "nativeSrc": "718:12:51", + "nodeType": "YulExpressionStatement", + "src": "718:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "691:7:51", + "nodeType": "YulIdentifier", + "src": "691:7:51" + }, + { + "name": "headStart", + "nativeSrc": "700:9:51", + "nodeType": "YulIdentifier", + "src": "700:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "687:3:51", + "nodeType": "YulIdentifier", + "src": "687:3:51" + }, + "nativeSrc": "687:23:51", + "nodeType": "YulFunctionCall", + "src": "687:23:51" + }, + { + "kind": "number", + "nativeSrc": "712:2:51", + "nodeType": "YulLiteral", + "src": "712:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "683:3:51", + "nodeType": "YulIdentifier", + "src": "683:3:51" + }, + "nativeSrc": "683:32:51", + "nodeType": "YulFunctionCall", + "src": "683:32:51" + }, + "nativeSrc": "680:52:51", + "nodeType": "YulIf", + "src": "680:52:51" + }, + { + "nativeSrc": "741:36:51", + "nodeType": "YulVariableDeclaration", + "src": "741:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "767:9:51", + "nodeType": "YulIdentifier", + "src": "767:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "754:12:51", + "nodeType": "YulIdentifier", + "src": "754:12:51" + }, + "nativeSrc": "754:23:51", + "nodeType": "YulFunctionCall", + "src": "754:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "745:5:51", + "nodeType": "YulTypedName", + "src": "745:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "841:5:51", + "nodeType": "YulIdentifier", + "src": "841:5:51" + } + ], + "functionName": { + "name": "validator_revert_contract_ITransparentUpgradeableProxy", + "nativeSrc": "786:54:51", + "nodeType": "YulIdentifier", + "src": "786:54:51" + }, + "nativeSrc": "786:61:51", + "nodeType": "YulFunctionCall", + "src": "786:61:51" + }, + "nativeSrc": "786:61:51", + "nodeType": "YulExpressionStatement", + "src": "786:61:51" + }, + { + "nativeSrc": "856:15:51", + "nodeType": "YulAssignment", + "src": "856:15:51", + "value": { + "name": "value", + "nativeSrc": "866:5:51", + "nodeType": "YulIdentifier", + "src": "866:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "856:6:51", + "nodeType": "YulIdentifier", + "src": "856:6:51" + } + ] + }, + { + "nativeSrc": "880:47:51", + "nodeType": "YulVariableDeclaration", + "src": "880:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "912:9:51", + "nodeType": "YulIdentifier", + "src": "912:9:51" + }, + { + "kind": "number", + "nativeSrc": "923:2:51", + "nodeType": "YulLiteral", + "src": "923:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "908:3:51", + "nodeType": "YulIdentifier", + "src": "908:3:51" + }, + "nativeSrc": "908:18:51", + "nodeType": "YulFunctionCall", + "src": "908:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "895:12:51", + "nodeType": "YulIdentifier", + "src": "895:12:51" + }, + "nativeSrc": "895:32:51", + "nodeType": "YulFunctionCall", + "src": "895:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "884:7:51", + "nodeType": "YulTypedName", + "src": "884:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "991:7:51", + "nodeType": "YulIdentifier", + "src": "991:7:51" + } + ], + "functionName": { + "name": "validator_revert_contract_ITransparentUpgradeableProxy", + "nativeSrc": "936:54:51", + "nodeType": "YulIdentifier", + "src": "936:54:51" + }, + "nativeSrc": "936:63:51", + "nodeType": "YulFunctionCall", + "src": "936:63:51" + }, + "nativeSrc": "936:63:51", + "nodeType": "YulExpressionStatement", + "src": "936:63:51" + }, + { + "nativeSrc": "1008:17:51", + "nodeType": "YulAssignment", + "src": "1008:17:51", + "value": { + "name": "value_1", + "nativeSrc": "1018:7:51", + "nodeType": "YulIdentifier", + "src": "1018:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1008:6:51", + "nodeType": "YulIdentifier", + "src": "1008:6:51" + } + ] + }, + { + "nativeSrc": "1034:46:51", + "nodeType": "YulVariableDeclaration", + "src": "1034:46:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1065:9:51", + "nodeType": "YulIdentifier", + "src": "1065:9:51" + }, + { + "kind": "number", + "nativeSrc": "1076:2:51", + "nodeType": "YulLiteral", + "src": "1076:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1061:3:51", + "nodeType": "YulIdentifier", + "src": "1061:3:51" + }, + "nativeSrc": "1061:18:51", + "nodeType": "YulFunctionCall", + "src": "1061:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1048:12:51", + "nodeType": "YulIdentifier", + "src": "1048:12:51" + }, + "nativeSrc": "1048:32:51", + "nodeType": "YulFunctionCall", + "src": "1048:32:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1038:6:51", + "nodeType": "YulTypedName", + "src": "1038:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1089:28:51", + "nodeType": "YulVariableDeclaration", + "src": "1089:28:51", + "value": { + "kind": "number", + "nativeSrc": "1099:18:51", + "nodeType": "YulLiteral", + "src": "1099:18:51", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "1093:2:51", + "nodeType": "YulTypedName", + "src": "1093:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1144:16:51", + "nodeType": "YulBlock", + "src": "1144:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1153:1:51", + "nodeType": "YulLiteral", + "src": "1153:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1156:1:51", + "nodeType": "YulLiteral", + "src": "1156:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1146:6:51", + "nodeType": "YulIdentifier", + "src": "1146:6:51" + }, + "nativeSrc": "1146:12:51", + "nodeType": "YulFunctionCall", + "src": "1146:12:51" + }, + "nativeSrc": "1146:12:51", + "nodeType": "YulExpressionStatement", + "src": "1146:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1132:6:51", + "nodeType": "YulIdentifier", + "src": "1132:6:51" + }, + { + "name": "_1", + "nativeSrc": "1140:2:51", + "nodeType": "YulIdentifier", + "src": "1140:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1129:2:51", + "nodeType": "YulIdentifier", + "src": "1129:2:51" + }, + "nativeSrc": "1129:14:51", + "nodeType": "YulFunctionCall", + "src": "1129:14:51" + }, + "nativeSrc": "1126:34:51", + "nodeType": "YulIf", + "src": "1126:34:51" + }, + { + "nativeSrc": "1169:32:51", + "nodeType": "YulVariableDeclaration", + "src": "1169:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1183:9:51", + "nodeType": "YulIdentifier", + "src": "1183:9:51" + }, + { + "name": "offset", + "nativeSrc": "1194:6:51", + "nodeType": "YulIdentifier", + "src": "1194:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1179:3:51", + "nodeType": "YulIdentifier", + "src": "1179:3:51" + }, + "nativeSrc": "1179:22:51", + "nodeType": "YulFunctionCall", + "src": "1179:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "1173:2:51", + "nodeType": "YulTypedName", + "src": "1173:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1249:16:51", + "nodeType": "YulBlock", + "src": "1249:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1258:1:51", + "nodeType": "YulLiteral", + "src": "1258:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1261:1:51", + "nodeType": "YulLiteral", + "src": "1261:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1251:6:51", + "nodeType": "YulIdentifier", + "src": "1251:6:51" + }, + "nativeSrc": "1251:12:51", + "nodeType": "YulFunctionCall", + "src": "1251:12:51" + }, + "nativeSrc": "1251:12:51", + "nodeType": "YulExpressionStatement", + "src": "1251:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1228:2:51", + "nodeType": "YulIdentifier", + "src": "1228:2:51" + }, + { + "kind": "number", + "nativeSrc": "1232:4:51", + "nodeType": "YulLiteral", + "src": "1232:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1224:3:51", + "nodeType": "YulIdentifier", + "src": "1224:3:51" + }, + "nativeSrc": "1224:13:51", + "nodeType": "YulFunctionCall", + "src": "1224:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1239:7:51", + "nodeType": "YulIdentifier", + "src": "1239:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1220:3:51", + "nodeType": "YulIdentifier", + "src": "1220:3:51" + }, + "nativeSrc": "1220:27:51", + "nodeType": "YulFunctionCall", + "src": "1220:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1213:6:51", + "nodeType": "YulIdentifier", + "src": "1213:6:51" + }, + "nativeSrc": "1213:35:51", + "nodeType": "YulFunctionCall", + "src": "1213:35:51" + }, + "nativeSrc": "1210:55:51", + "nodeType": "YulIf", + "src": "1210:55:51" + }, + { + "nativeSrc": "1274:26:51", + "nodeType": "YulVariableDeclaration", + "src": "1274:26:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1297:2:51", + "nodeType": "YulIdentifier", + "src": "1297:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1284:12:51", + "nodeType": "YulIdentifier", + "src": "1284:12:51" + }, + "nativeSrc": "1284:16:51", + "nodeType": "YulFunctionCall", + "src": "1284:16:51" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "1278:2:51", + "nodeType": "YulTypedName", + "src": "1278:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1323:22:51", + "nodeType": "YulBlock", + "src": "1323:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1325:16:51", + "nodeType": "YulIdentifier", + "src": "1325:16:51" + }, + "nativeSrc": "1325:18:51", + "nodeType": "YulFunctionCall", + "src": "1325:18:51" + }, + "nativeSrc": "1325:18:51", + "nodeType": "YulExpressionStatement", + "src": "1325:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1315:2:51", + "nodeType": "YulIdentifier", + "src": "1315:2:51" + }, + { + "name": "_1", + "nativeSrc": "1319:2:51", + "nodeType": "YulIdentifier", + "src": "1319:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1312:2:51", + "nodeType": "YulIdentifier", + "src": "1312:2:51" + }, + "nativeSrc": "1312:10:51", + "nodeType": "YulFunctionCall", + "src": "1312:10:51" + }, + "nativeSrc": "1309:36:51", + "nodeType": "YulIf", + "src": "1309:36:51" + }, + { + "nativeSrc": "1354:17:51", + "nodeType": "YulVariableDeclaration", + "src": "1354:17:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1368:2:51", + "nodeType": "YulLiteral", + "src": "1368:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1364:3:51", + "nodeType": "YulIdentifier", + "src": "1364:3:51" + }, + "nativeSrc": "1364:7:51", + "nodeType": "YulFunctionCall", + "src": "1364:7:51" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "1358:2:51", + "nodeType": "YulTypedName", + "src": "1358:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1380:23:51", + "nodeType": "YulVariableDeclaration", + "src": "1380:23:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1400:2:51", + "nodeType": "YulLiteral", + "src": "1400:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1394:5:51", + "nodeType": "YulIdentifier", + "src": "1394:5:51" + }, + "nativeSrc": "1394:9:51", + "nodeType": "YulFunctionCall", + "src": "1394:9:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "1384:6:51", + "nodeType": "YulTypedName", + "src": "1384:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1412:71:51", + "nodeType": "YulVariableDeclaration", + "src": "1412:71:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1434:6:51", + "nodeType": "YulIdentifier", + "src": "1434:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1458:2:51", + "nodeType": "YulIdentifier", + "src": "1458:2:51" + }, + { + "kind": "number", + "nativeSrc": "1462:4:51", + "nodeType": "YulLiteral", + "src": "1462:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1454:3:51", + "nodeType": "YulIdentifier", + "src": "1454:3:51" + }, + "nativeSrc": "1454:13:51", + "nodeType": "YulFunctionCall", + "src": "1454:13:51" + }, + { + "name": "_4", + "nativeSrc": "1469:2:51", + "nodeType": "YulIdentifier", + "src": "1469:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1450:3:51", + "nodeType": "YulIdentifier", + "src": "1450:3:51" + }, + "nativeSrc": "1450:22:51", + "nodeType": "YulFunctionCall", + "src": "1450:22:51" + }, + { + "kind": "number", + "nativeSrc": "1474:2:51", + "nodeType": "YulLiteral", + "src": "1474:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1446:3:51", + "nodeType": "YulIdentifier", + "src": "1446:3:51" + }, + "nativeSrc": "1446:31:51", + "nodeType": "YulFunctionCall", + "src": "1446:31:51" + }, + { + "name": "_4", + "nativeSrc": "1479:2:51", + "nodeType": "YulIdentifier", + "src": "1479:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1442:3:51", + "nodeType": "YulIdentifier", + "src": "1442:3:51" + }, + "nativeSrc": "1442:40:51", + "nodeType": "YulFunctionCall", + "src": "1442:40:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1430:3:51", + "nodeType": "YulIdentifier", + "src": "1430:3:51" + }, + "nativeSrc": "1430:53:51", + "nodeType": "YulFunctionCall", + "src": "1430:53:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1416:10:51", + "nodeType": "YulTypedName", + "src": "1416:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1542:22:51", + "nodeType": "YulBlock", + "src": "1542:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1544:16:51", + "nodeType": "YulIdentifier", + "src": "1544:16:51" + }, + "nativeSrc": "1544:18:51", + "nodeType": "YulFunctionCall", + "src": "1544:18:51" + }, + "nativeSrc": "1544:18:51", + "nodeType": "YulExpressionStatement", + "src": "1544:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1501:10:51", + "nodeType": "YulIdentifier", + "src": "1501:10:51" + }, + { + "name": "_1", + "nativeSrc": "1513:2:51", + "nodeType": "YulIdentifier", + "src": "1513:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1498:2:51", + "nodeType": "YulIdentifier", + "src": "1498:2:51" + }, + "nativeSrc": "1498:18:51", + "nodeType": "YulFunctionCall", + "src": "1498:18:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1521:10:51", + "nodeType": "YulIdentifier", + "src": "1521:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "1533:6:51", + "nodeType": "YulIdentifier", + "src": "1533:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1518:2:51", + "nodeType": "YulIdentifier", + "src": "1518:2:51" + }, + "nativeSrc": "1518:22:51", + "nodeType": "YulFunctionCall", + "src": "1518:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1495:2:51", + "nodeType": "YulIdentifier", + "src": "1495:2:51" + }, + "nativeSrc": "1495:46:51", + "nodeType": "YulFunctionCall", + "src": "1495:46:51" + }, + "nativeSrc": "1492:72:51", + "nodeType": "YulIf", + "src": "1492:72:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1580:2:51", + "nodeType": "YulLiteral", + "src": "1580:2:51", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1584:10:51", + "nodeType": "YulIdentifier", + "src": "1584:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1573:6:51", + "nodeType": "YulIdentifier", + "src": "1573:6:51" + }, + "nativeSrc": "1573:22:51", + "nodeType": "YulFunctionCall", + "src": "1573:22:51" + }, + "nativeSrc": "1573:22:51", + "nodeType": "YulExpressionStatement", + "src": "1573:22:51" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1611:6:51", + "nodeType": "YulIdentifier", + "src": "1611:6:51" + }, + { + "name": "_3", + "nativeSrc": "1619:2:51", + "nodeType": "YulIdentifier", + "src": "1619:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1604:6:51", + "nodeType": "YulIdentifier", + "src": "1604:6:51" + }, + "nativeSrc": "1604:18:51", + "nodeType": "YulFunctionCall", + "src": "1604:18:51" + }, + "nativeSrc": "1604:18:51", + "nodeType": "YulExpressionStatement", + "src": "1604:18:51" + }, + { + "body": { + "nativeSrc": "1668:16:51", + "nodeType": "YulBlock", + "src": "1668:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1677:1:51", + "nodeType": "YulLiteral", + "src": "1677:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1680:1:51", + "nodeType": "YulLiteral", + "src": "1680:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1670:6:51", + "nodeType": "YulIdentifier", + "src": "1670:6:51" + }, + "nativeSrc": "1670:12:51", + "nodeType": "YulFunctionCall", + "src": "1670:12:51" + }, + "nativeSrc": "1670:12:51", + "nodeType": "YulExpressionStatement", + "src": "1670:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1645:2:51", + "nodeType": "YulIdentifier", + "src": "1645:2:51" + }, + { + "name": "_3", + "nativeSrc": "1649:2:51", + "nodeType": "YulIdentifier", + "src": "1649:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1641:3:51", + "nodeType": "YulIdentifier", + "src": "1641:3:51" + }, + "nativeSrc": "1641:11:51", + "nodeType": "YulFunctionCall", + "src": "1641:11:51" + }, + { + "kind": "number", + "nativeSrc": "1654:2:51", + "nodeType": "YulLiteral", + "src": "1654:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1637:3:51", + "nodeType": "YulIdentifier", + "src": "1637:3:51" + }, + "nativeSrc": "1637:20:51", + "nodeType": "YulFunctionCall", + "src": "1637:20:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1659:7:51", + "nodeType": "YulIdentifier", + "src": "1659:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1634:2:51", + "nodeType": "YulIdentifier", + "src": "1634:2:51" + }, + "nativeSrc": "1634:33:51", + "nodeType": "YulFunctionCall", + "src": "1634:33:51" + }, + "nativeSrc": "1631:53:51", + "nodeType": "YulIf", + "src": "1631:53:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1710:6:51", + "nodeType": "YulIdentifier", + "src": "1710:6:51" + }, + { + "kind": "number", + "nativeSrc": "1718:2:51", + "nodeType": "YulLiteral", + "src": "1718:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1706:3:51", + "nodeType": "YulIdentifier", + "src": "1706:3:51" + }, + "nativeSrc": "1706:15:51", + "nodeType": "YulFunctionCall", + "src": "1706:15:51" + }, + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1727:2:51", + "nodeType": "YulIdentifier", + "src": "1727:2:51" + }, + { + "kind": "number", + "nativeSrc": "1731:2:51", + "nodeType": "YulLiteral", + "src": "1731:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1723:3:51", + "nodeType": "YulIdentifier", + "src": "1723:3:51" + }, + "nativeSrc": "1723:11:51", + "nodeType": "YulFunctionCall", + "src": "1723:11:51" + }, + { + "name": "_3", + "nativeSrc": "1736:2:51", + "nodeType": "YulIdentifier", + "src": "1736:2:51" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "1693:12:51", + "nodeType": "YulIdentifier", + "src": "1693:12:51" + }, + "nativeSrc": "1693:46:51", + "nodeType": "YulFunctionCall", + "src": "1693:46:51" + }, + "nativeSrc": "1693:46:51", + "nodeType": "YulExpressionStatement", + "src": "1693:46:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1763:6:51", + "nodeType": "YulIdentifier", + "src": "1763:6:51" + }, + { + "name": "_3", + "nativeSrc": "1771:2:51", + "nodeType": "YulIdentifier", + "src": "1771:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1759:3:51", + "nodeType": "YulIdentifier", + "src": "1759:3:51" + }, + "nativeSrc": "1759:15:51", + "nodeType": "YulFunctionCall", + "src": "1759:15:51" + }, + { + "kind": "number", + "nativeSrc": "1776:2:51", + "nodeType": "YulLiteral", + "src": "1776:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1755:3:51", + "nodeType": "YulIdentifier", + "src": "1755:3:51" + }, + "nativeSrc": "1755:24:51", + "nodeType": "YulFunctionCall", + "src": "1755:24:51" + }, + { + "kind": "number", + "nativeSrc": "1781:1:51", + "nodeType": "YulLiteral", + "src": "1781:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1748:6:51", + "nodeType": "YulIdentifier", + "src": "1748:6:51" + }, + "nativeSrc": "1748:35:51", + "nodeType": "YulFunctionCall", + "src": "1748:35:51" + }, + "nativeSrc": "1748:35:51", + "nodeType": "YulExpressionStatement", + "src": "1748:35:51" + }, + { + "nativeSrc": "1792:16:51", + "nodeType": "YulAssignment", + "src": "1792:16:51", + "value": { + "name": "memPtr", + "nativeSrc": "1802:6:51", + "nodeType": "YulIdentifier", + "src": "1802:6:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1792:6:51", + "nodeType": "YulIdentifier", + "src": "1792:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3180t_addresst_bytes_memory_ptr", + "nativeSrc": "520:1294:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "620:9:51", + "nodeType": "YulTypedName", + "src": "620:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "631:7:51", + "nodeType": "YulTypedName", + "src": "631:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "643:6:51", + "nodeType": "YulTypedName", + "src": "643:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "651:6:51", + "nodeType": "YulTypedName", + "src": "651:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "659:6:51", + "nodeType": "YulTypedName", + "src": "659:6:51", + "type": "" + } + ], + "src": "520:1294:51" + }, + { + "body": { + "nativeSrc": "1869:373:51", + "nodeType": "YulBlock", + "src": "1869:373:51", + "statements": [ + { + "nativeSrc": "1879:26:51", + "nodeType": "YulVariableDeclaration", + "src": "1879:26:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1899:5:51", + "nodeType": "YulIdentifier", + "src": "1899:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1893:5:51", + "nodeType": "YulIdentifier", + "src": "1893:5:51" + }, + "nativeSrc": "1893:12:51", + "nodeType": "YulFunctionCall", + "src": "1893:12:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1883:6:51", + "nodeType": "YulTypedName", + "src": "1883:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1921:3:51", + "nodeType": "YulIdentifier", + "src": "1921:3:51" + }, + { + "name": "length", + "nativeSrc": "1926:6:51", + "nodeType": "YulIdentifier", + "src": "1926:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1914:6:51", + "nodeType": "YulIdentifier", + "src": "1914:6:51" + }, + "nativeSrc": "1914:19:51", + "nodeType": "YulFunctionCall", + "src": "1914:19:51" + }, + "nativeSrc": "1914:19:51", + "nodeType": "YulExpressionStatement", + "src": "1914:19:51" + }, + { + "nativeSrc": "1942:10:51", + "nodeType": "YulVariableDeclaration", + "src": "1942:10:51", + "value": { + "kind": "number", + "nativeSrc": "1951:1:51", + "nodeType": "YulLiteral", + "src": "1951:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1946:1:51", + "nodeType": "YulTypedName", + "src": "1946:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2013:110:51", + "nodeType": "YulBlock", + "src": "2013:110:51", + "statements": [ + { + "nativeSrc": "2027:14:51", + "nodeType": "YulVariableDeclaration", + "src": "2027:14:51", + "value": { + "kind": "number", + "nativeSrc": "2037:4:51", + "nodeType": "YulLiteral", + "src": "2037:4:51", + "type": "", + "value": "0x20" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "2031:2:51", + "nodeType": "YulTypedName", + "src": "2031:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2069:3:51", + "nodeType": "YulIdentifier", + "src": "2069:3:51" + }, + { + "name": "i", + "nativeSrc": "2074:1:51", + "nodeType": "YulIdentifier", + "src": "2074:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2065:3:51", + "nodeType": "YulIdentifier", + "src": "2065:3:51" + }, + "nativeSrc": "2065:11:51", + "nodeType": "YulFunctionCall", + "src": "2065:11:51" + }, + { + "name": "_1", + "nativeSrc": "2078:2:51", + "nodeType": "YulIdentifier", + "src": "2078:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2061:3:51", + "nodeType": "YulIdentifier", + "src": "2061:3:51" + }, + "nativeSrc": "2061:20:51", + "nodeType": "YulFunctionCall", + "src": "2061:20:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2097:5:51", + "nodeType": "YulIdentifier", + "src": "2097:5:51" + }, + { + "name": "i", + "nativeSrc": "2104:1:51", + "nodeType": "YulIdentifier", + "src": "2104:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2093:3:51", + "nodeType": "YulIdentifier", + "src": "2093:3:51" + }, + "nativeSrc": "2093:13:51", + "nodeType": "YulFunctionCall", + "src": "2093:13:51" + }, + { + "name": "_1", + "nativeSrc": "2108:2:51", + "nodeType": "YulIdentifier", + "src": "2108:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2089:3:51", + "nodeType": "YulIdentifier", + "src": "2089:3:51" + }, + "nativeSrc": "2089:22:51", + "nodeType": "YulFunctionCall", + "src": "2089:22:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2083:5:51", + "nodeType": "YulIdentifier", + "src": "2083:5:51" + }, + "nativeSrc": "2083:29:51", + "nodeType": "YulFunctionCall", + "src": "2083:29:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2054:6:51", + "nodeType": "YulIdentifier", + "src": "2054:6:51" + }, + "nativeSrc": "2054:59:51", + "nodeType": "YulFunctionCall", + "src": "2054:59:51" + }, + "nativeSrc": "2054:59:51", + "nodeType": "YulExpressionStatement", + "src": "2054:59:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1972:1:51", + "nodeType": "YulIdentifier", + "src": "1972:1:51" + }, + { + "name": "length", + "nativeSrc": "1975:6:51", + "nodeType": "YulIdentifier", + "src": "1975:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1969:2:51", + "nodeType": "YulIdentifier", + "src": "1969:2:51" + }, + "nativeSrc": "1969:13:51", + "nodeType": "YulFunctionCall", + "src": "1969:13:51" + }, + "nativeSrc": "1961:162:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1983:21:51", + "nodeType": "YulBlock", + "src": "1983:21:51", + "statements": [ + { + "nativeSrc": "1985:17:51", + "nodeType": "YulAssignment", + "src": "1985:17:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1994:1:51", + "nodeType": "YulIdentifier", + "src": "1994:1:51" + }, + { + "kind": "number", + "nativeSrc": "1997:4:51", + "nodeType": "YulLiteral", + "src": "1997:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1990:3:51", + "nodeType": "YulIdentifier", + "src": "1990:3:51" + }, + "nativeSrc": "1990:12:51", + "nodeType": "YulFunctionCall", + "src": "1990:12:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1985:1:51", + "nodeType": "YulIdentifier", + "src": "1985:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1965:3:51", + "nodeType": "YulBlock", + "src": "1965:3:51", + "statements": [] + }, + "src": "1961:162:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2147:3:51", + "nodeType": "YulIdentifier", + "src": "2147:3:51" + }, + { + "name": "length", + "nativeSrc": "2152:6:51", + "nodeType": "YulIdentifier", + "src": "2152:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2143:3:51", + "nodeType": "YulIdentifier", + "src": "2143:3:51" + }, + "nativeSrc": "2143:16:51", + "nodeType": "YulFunctionCall", + "src": "2143:16:51" + }, + { + "kind": "number", + "nativeSrc": "2161:4:51", + "nodeType": "YulLiteral", + "src": "2161:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2139:3:51", + "nodeType": "YulIdentifier", + "src": "2139:3:51" + }, + "nativeSrc": "2139:27:51", + "nodeType": "YulFunctionCall", + "src": "2139:27:51" + }, + { + "kind": "number", + "nativeSrc": "2168:1:51", + "nodeType": "YulLiteral", + "src": "2168:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2132:6:51", + "nodeType": "YulIdentifier", + "src": "2132:6:51" + }, + "nativeSrc": "2132:38:51", + "nodeType": "YulFunctionCall", + "src": "2132:38:51" + }, + "nativeSrc": "2132:38:51", + "nodeType": "YulExpressionStatement", + "src": "2132:38:51" + }, + { + "nativeSrc": "2179:57:51", + "nodeType": "YulAssignment", + "src": "2179:57:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2194:3:51", + "nodeType": "YulIdentifier", + "src": "2194:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2207:6:51", + "nodeType": "YulIdentifier", + "src": "2207:6:51" + }, + { + "kind": "number", + "nativeSrc": "2215:2:51", + "nodeType": "YulLiteral", + "src": "2215:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2203:3:51", + "nodeType": "YulIdentifier", + "src": "2203:3:51" + }, + "nativeSrc": "2203:15:51", + "nodeType": "YulFunctionCall", + "src": "2203:15:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2224:2:51", + "nodeType": "YulLiteral", + "src": "2224:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2220:3:51", + "nodeType": "YulIdentifier", + "src": "2220:3:51" + }, + "nativeSrc": "2220:7:51", + "nodeType": "YulFunctionCall", + "src": "2220:7:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2199:3:51", + "nodeType": "YulIdentifier", + "src": "2199:3:51" + }, + "nativeSrc": "2199:29:51", + "nodeType": "YulFunctionCall", + "src": "2199:29:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2190:3:51", + "nodeType": "YulIdentifier", + "src": "2190:3:51" + }, + "nativeSrc": "2190:39:51", + "nodeType": "YulFunctionCall", + "src": "2190:39:51" + }, + { + "kind": "number", + "nativeSrc": "2231:4:51", + "nodeType": "YulLiteral", + "src": "2231:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2186:3:51", + "nodeType": "YulIdentifier", + "src": "2186:3:51" + }, + "nativeSrc": "2186:50:51", + "nodeType": "YulFunctionCall", + "src": "2186:50:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2179:3:51", + "nodeType": "YulIdentifier", + "src": "2179:3:51" + } + ] + } + ] + }, + "name": "abi_encode_string", + "nativeSrc": "1819:423:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1846:5:51", + "nodeType": "YulTypedName", + "src": "1846:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1853:3:51", + "nodeType": "YulTypedName", + "src": "1853:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "1861:3:51", + "nodeType": "YulTypedName", + "src": "1861:3:51", + "type": "" + } + ], + "src": "1819:423:51" + }, + { + "body": { + "nativeSrc": "2368:99:51", + "nodeType": "YulBlock", + "src": "2368:99:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2385:9:51", + "nodeType": "YulIdentifier", + "src": "2385:9:51" + }, + { + "kind": "number", + "nativeSrc": "2396:2:51", + "nodeType": "YulLiteral", + "src": "2396:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2378:6:51", + "nodeType": "YulIdentifier", + "src": "2378:6:51" + }, + "nativeSrc": "2378:21:51", + "nodeType": "YulFunctionCall", + "src": "2378:21:51" + }, + "nativeSrc": "2378:21:51", + "nodeType": "YulExpressionStatement", + "src": "2378:21:51" + }, + { + "nativeSrc": "2408:53:51", + "nodeType": "YulAssignment", + "src": "2408:53:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2434:6:51", + "nodeType": "YulIdentifier", + "src": "2434:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2446:9:51", + "nodeType": "YulIdentifier", + "src": "2446:9:51" + }, + { + "kind": "number", + "nativeSrc": "2457:2:51", + "nodeType": "YulLiteral", + "src": "2457:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2442:3:51", + "nodeType": "YulIdentifier", + "src": "2442:3:51" + }, + "nativeSrc": "2442:18:51", + "nodeType": "YulFunctionCall", + "src": "2442:18:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "2416:17:51", + "nodeType": "YulIdentifier", + "src": "2416:17:51" + }, + "nativeSrc": "2416:45:51", + "nodeType": "YulFunctionCall", + "src": "2416:45:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2408:4:51", + "nodeType": "YulIdentifier", + "src": "2408:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "2247:220:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2337:9:51", + "nodeType": "YulTypedName", + "src": "2337:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2348:6:51", + "nodeType": "YulTypedName", + "src": "2348:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2359:4:51", + "nodeType": "YulTypedName", + "src": "2359:4:51", + "type": "" + } + ], + "src": "2247:220:51" + }, + { + "body": { + "nativeSrc": "2542:207:51", + "nodeType": "YulBlock", + "src": "2542:207:51", + "statements": [ + { + "body": { + "nativeSrc": "2588:16:51", + "nodeType": "YulBlock", + "src": "2588:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2597:1:51", + "nodeType": "YulLiteral", + "src": "2597:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2600:1:51", + "nodeType": "YulLiteral", + "src": "2600:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2590:6:51", + "nodeType": "YulIdentifier", + "src": "2590:6:51" + }, + "nativeSrc": "2590:12:51", + "nodeType": "YulFunctionCall", + "src": "2590:12:51" + }, + "nativeSrc": "2590:12:51", + "nodeType": "YulExpressionStatement", + "src": "2590:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2563:7:51", + "nodeType": "YulIdentifier", + "src": "2563:7:51" + }, + { + "name": "headStart", + "nativeSrc": "2572:9:51", + "nodeType": "YulIdentifier", + "src": "2572:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2559:3:51", + "nodeType": "YulIdentifier", + "src": "2559:3:51" + }, + "nativeSrc": "2559:23:51", + "nodeType": "YulFunctionCall", + "src": "2559:23:51" + }, + { + "kind": "number", + "nativeSrc": "2584:2:51", + "nodeType": "YulLiteral", + "src": "2584:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2555:3:51", + "nodeType": "YulIdentifier", + "src": "2555:3:51" + }, + "nativeSrc": "2555:32:51", + "nodeType": "YulFunctionCall", + "src": "2555:32:51" + }, + "nativeSrc": "2552:52:51", + "nodeType": "YulIf", + "src": "2552:52:51" + }, + { + "nativeSrc": "2613:36:51", + "nodeType": "YulVariableDeclaration", + "src": "2613:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2639:9:51", + "nodeType": "YulIdentifier", + "src": "2639:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2626:12:51", + "nodeType": "YulIdentifier", + "src": "2626:12:51" + }, + "nativeSrc": "2626:23:51", + "nodeType": "YulFunctionCall", + "src": "2626:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2617:5:51", + "nodeType": "YulTypedName", + "src": "2617:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2713:5:51", + "nodeType": "YulIdentifier", + "src": "2713:5:51" + } + ], + "functionName": { + "name": "validator_revert_contract_ITransparentUpgradeableProxy", + "nativeSrc": "2658:54:51", + "nodeType": "YulIdentifier", + "src": "2658:54:51" + }, + "nativeSrc": "2658:61:51", + "nodeType": "YulFunctionCall", + "src": "2658:61:51" + }, + "nativeSrc": "2658:61:51", + "nodeType": "YulExpressionStatement", + "src": "2658:61:51" + }, + { + "nativeSrc": "2728:15:51", + "nodeType": "YulAssignment", + "src": "2728:15:51", + "value": { + "name": "value", + "nativeSrc": "2738:5:51", + "nodeType": "YulIdentifier", + "src": "2738:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2728:6:51", + "nodeType": "YulIdentifier", + "src": "2728:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "2472:277:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2508:9:51", + "nodeType": "YulTypedName", + "src": "2508:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2519:7:51", + "nodeType": "YulTypedName", + "src": "2519:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2531:6:51", + "nodeType": "YulTypedName", + "src": "2531:6:51", + "type": "" + } + ], + "src": "2472:277:51" + }, + { + "body": { + "nativeSrc": "2901:168:51", + "nodeType": "YulBlock", + "src": "2901:168:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2918:9:51", + "nodeType": "YulIdentifier", + "src": "2918:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2933:6:51", + "nodeType": "YulIdentifier", + "src": "2933:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2949:3:51", + "nodeType": "YulLiteral", + "src": "2949:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2954:1:51", + "nodeType": "YulLiteral", + "src": "2954:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2945:3:51", + "nodeType": "YulIdentifier", + "src": "2945:3:51" + }, + "nativeSrc": "2945:11:51", + "nodeType": "YulFunctionCall", + "src": "2945:11:51" + }, + { + "kind": "number", + "nativeSrc": "2958:1:51", + "nodeType": "YulLiteral", + "src": "2958:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2941:3:51", + "nodeType": "YulIdentifier", + "src": "2941:3:51" + }, + "nativeSrc": "2941:19:51", + "nodeType": "YulFunctionCall", + "src": "2941:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2929:3:51", + "nodeType": "YulIdentifier", + "src": "2929:3:51" + }, + "nativeSrc": "2929:32:51", + "nodeType": "YulFunctionCall", + "src": "2929:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2911:6:51", + "nodeType": "YulIdentifier", + "src": "2911:6:51" + }, + "nativeSrc": "2911:51:51", + "nodeType": "YulFunctionCall", + "src": "2911:51:51" + }, + "nativeSrc": "2911:51:51", + "nodeType": "YulExpressionStatement", + "src": "2911:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2982:9:51", + "nodeType": "YulIdentifier", + "src": "2982:9:51" + }, + { + "kind": "number", + "nativeSrc": "2993:2:51", + "nodeType": "YulLiteral", + "src": "2993:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2978:3:51", + "nodeType": "YulIdentifier", + "src": "2978:3:51" + }, + "nativeSrc": "2978:18:51", + "nodeType": "YulFunctionCall", + "src": "2978:18:51" + }, + { + "kind": "number", + "nativeSrc": "2998:2:51", + "nodeType": "YulLiteral", + "src": "2998:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2971:6:51", + "nodeType": "YulIdentifier", + "src": "2971:6:51" + }, + "nativeSrc": "2971:30:51", + "nodeType": "YulFunctionCall", + "src": "2971:30:51" + }, + "nativeSrc": "2971:30:51", + "nodeType": "YulExpressionStatement", + "src": "2971:30:51" + }, + { + "nativeSrc": "3010:53:51", + "nodeType": "YulAssignment", + "src": "3010:53:51", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "3036:6:51", + "nodeType": "YulIdentifier", + "src": "3036:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3048:9:51", + "nodeType": "YulIdentifier", + "src": "3048:9:51" + }, + { + "kind": "number", + "nativeSrc": "3059:2:51", + "nodeType": "YulLiteral", + "src": "3059:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3044:3:51", + "nodeType": "YulIdentifier", + "src": "3044:3:51" + }, + "nativeSrc": "3044:18:51", + "nodeType": "YulFunctionCall", + "src": "3044:18:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "3018:17:51", + "nodeType": "YulIdentifier", + "src": "3018:17:51" + }, + "nativeSrc": "3018:45:51", + "nodeType": "YulFunctionCall", + "src": "3018:45:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3010:4:51", + "nodeType": "YulIdentifier", + "src": "3010:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "2754:315:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2862:9:51", + "nodeType": "YulTypedName", + "src": "2862:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2873:6:51", + "nodeType": "YulTypedName", + "src": "2873:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2881:6:51", + "nodeType": "YulTypedName", + "src": "2881:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2892:4:51", + "nodeType": "YulTypedName", + "src": "2892:4:51", + "type": "" + } + ], + "src": "2754:315:51" + } + ] + }, + "contents": "{\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 validator_revert_contract_ITransparentUpgradeableProxy(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3180t_addresst_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_contract_ITransparentUpgradeableProxy(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_contract_ITransparentUpgradeableProxy(value_1)\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value2 := memPtr\n }\n function abi_encode_string(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 let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\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_contract_ITransparentUpgradeableProxy(value)\n value0 := value\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_string(value1, add(headStart, 64))\n }\n}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xA6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x104 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0xA1 CALLDATASIZE PUSH1 0x4 PUSH2 0x272 JUMP JUMPDEST PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8A SWAP2 SWAP1 PUSH2 0x38E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0xFF CALLDATASIZE PUSH1 0x4 PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x116 PUSH1 0x0 PUSH2 0x1F7 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x150 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18F PUSH2 0x1CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C7 DUP2 PUSH2 0x1F7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x116 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x292 DUP2 PUSH2 0x247 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2A2 DUP2 PUSH2 0x247 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2E5 JUMPI PUSH2 0x2E5 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH2 0x25C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x36E JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x352 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 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3A1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x348 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3A1 DUP2 PUSH2 0x247 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 0x3E9 SWAP1 DUP4 ADD DUP5 PUSH2 0x348 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL DUP3 0xB8 0xF9 PUSH0 RETURNDATACOPY 0xB9 MSTORE8 BLOBBASEFEE TSTORE PREVRANDAO 0xB3 INVALID PUSH27 0x934376995EFA5E3D86FA4073FEFDB114E5C164736F6C6343000818 STOP CALLER ", + "sourceMap": "502:1462:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:101:8;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;-1:-1:-1;1684:7:8;1710:6;1638:85;;-1:-1:-1;;;;;1710:6:8;;;160:51:51;;148:2;133:18;1638:85:8;;;;;;;;1717:245:16;;;;;;:::i;:::-;;:::i;1187:58::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1187:58:16;;;;;;;;;;;;:::i;2543:215:8:-;;;;;;;;;;-1:-1:-1;2543:215:8;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1717:245:16:-;1531:13:8;:11;:13::i;:::-;1893:62:16::1;::::0;-1:-1:-1;;;1893:62:16;;-1:-1:-1;;;;;1893:22:16;::::1;::::0;::::1;::::0;1923:9:::1;::::0;1893:62:::1;::::0;1934:14;;1950:4;;1893:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;1717:245:::0;;;:::o;2543:215:8:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:8;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:8;;2700:1:::1;2672:31;::::0;::::1;160:51:51::0;133:18;;2672:31:8::1;;;;;;;;2623:91;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:8;735:10:24;1855:23:8;1851:101;;1901:40;;-1:-1:-1;;;1901:40:8;;735:10:24;1901:40:8;;;160:51:51;133:18;;1901:40:8;14:203:51;2912:187:8;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:8;;;-1:-1:-1;;;;;;3020:17:8;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;222:161:51:-;-1:-1:-1;;;;;327:31:51;;317:42;;307:70;;373:1;370;363:12;388:127;449:10;444:3;440:20;437:1;430:31;480:4;477:1;470:15;504:4;501:1;494:15;520:1294;643:6;651;659;712:2;700:9;691:7;687:23;683:32;680:52;;;728:1;725;718:12;680:52;767:9;754:23;786:61;841:5;786:61;:::i;:::-;866:5;-1:-1:-1;923:2:51;908:18;;895:32;936:63;895:32;936:63;:::i;:::-;1018:7;-1:-1:-1;1076:2:51;1061:18;;1048:32;1099:18;1129:14;;;1126:34;;;1156:1;1153;1146:12;1126:34;1194:6;1183:9;1179:22;1169:32;;1239:7;1232:4;1228:2;1224:13;1220:27;1210:55;;1261:1;1258;1251:12;1210:55;1297:2;1284:16;1319:2;1315;1312:10;1309:36;;;1325:18;;:::i;:::-;1400:2;1394:9;1368:2;1454:13;;-1:-1:-1;;1450:22:51;;;1474:2;1446:31;1442:40;1430:53;;;1498:18;;;1518:22;;;1495:46;1492:72;;;1544:18;;:::i;:::-;1584:10;1580:2;1573:22;1619:2;1611:6;1604:18;1659:7;1654:2;1649;1645;1641:11;1637:20;1634:33;1631:53;;;1680:1;1677;1670:12;1631:53;1736:2;1731;1727;1723:11;1718:2;1710:6;1706:15;1693:46;1781:1;1776:2;1771;1763:6;1759:15;1755:24;1748:35;1802:6;1792:16;;;;;;;520:1294;;;;;:::o;1819:423::-;1861:3;1899:5;1893:12;1926:6;1921:3;1914:19;1951:1;1961:162;1975:6;1972:1;1969:13;1961:162;;;2037:4;2093:13;;;2089:22;;2083:29;2065:11;;;2061:20;;2054:59;1990:12;1961:162;;;1965:3;2168:1;2161:4;2152:6;2147:3;2143:16;2139:27;2132:38;2231:4;2224:2;2220:7;2215:2;2207:6;2203:15;2199:29;2194:3;2190:39;2186:50;2179:57;;;1819:423;;;;:::o;2247:220::-;2396:2;2385:9;2378:21;2359:4;2416:45;2457:2;2446:9;2442:18;2434:6;2416:45;:::i;:::-;2408:53;2247:220;-1:-1:-1;;;2247:220:51:o;2472:277::-;2531:6;2584:2;2572:9;2563:7;2559:23;2555:32;2552:52;;;2600:1;2597;2590:12;2552:52;2639:9;2626:23;2658:61;2713:5;2658:61;:::i;2754:315::-;-1:-1:-1;;;;;2929:32:51;;2911:51;;2998:2;2993;2978:18;;2971:30;;;-1:-1:-1;;3018:45:51;;3044:18;;3036:6;3018:45;:::i;:::-;3010:53;2754:315;-1:-1:-1;;;;2754:315:51:o" + }, + "methodIdentifiers": { + "UPGRADE_INTERFACE_VERSION()": "ad3cb1cc", + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b", + "upgradeAndCall(address,address,bytes)": "9623609d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"errors\":{\"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.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Sets the initial owner who can perform upgrades.\"},\"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.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`. - If `data` is empty, `msg.value` must be zero.\"}},\"stateVariables\":{\"UPGRADE_INTERFACE_VERSION\":{\"details\":\"The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)` and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called, while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third argument must be the empty byte string if no function should be called, making it impossible to invoke the `receive` function during an upgrade.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x46f86003755f50eff00a7c5aaf493ae62e024142b8aec4493a313851d3c14872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462c770cb667cc75ab22df5a29c50873b24b267274edf87ac5cfe0112bf4c3f7\",\"dweb:/ipfs/QmTfKk32AkQ2yyYZCYJ44V69EM5t9ryBFC6bRF7FVMHXvj\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x92579f452fe663595a898cbac85d80bb3868a6c9f034f19ba7fbebdfa3b65a4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d07a888cd4a26c7077a30dd99e9ac30fbe2752bfb37e58c65f06a3b192079ef3\",\"dweb:/ipfs/QmZCQY4FC4ynBv9dha4BBWM1vYxTUJPBdFBS4HEFe6XzVB\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 2036, + "contract": "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol:ProxyAdmin", + "label": "_owner", + "offset": 0, + "slot": "0", + "type": "t_address" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + } + } + } + } + }, + "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "ITransparentUpgradeableProxy": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "upgradeToAndCall(address,bytes)": "4f1ef286" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not include them in the ABI so this interface must be used to interact with it.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"upgradeToAndCall(address,bytes)\":{\"details\":\"See {UUPSUpgradeable-upgradeToAndCall}\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"ITransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x46f86003755f50eff00a7c5aaf493ae62e024142b8aec4493a313851d3c14872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462c770cb667cc75ab22df5a29c50873b24b267274edf87ac5cfe0112bf4c3f7\",\"dweb:/ipfs/QmTfKk32AkQ2yyYZCYJ44V69EM5t9ryBFC6bRF7FVMHXvj\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x92579f452fe663595a898cbac85d80bb3868a6c9f034f19ba7fbebdfa3b65a4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d07a888cd4a26c7077a30dd99e9ac30fbe2752bfb37e58c65f06a3b192079ef3\",\"dweb:/ipfs/QmZCQY4FC4ynBv9dha4BBWM1vYxTUJPBdFBS4HEFe6XzVB\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "TransparentUpgradeableProxy": { + "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" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_2757": { + "entryPoint": null, + "id": 2757, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_3221": { + "entryPoint": null, + "id": 3221, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkNonPayable_3063": { + "entryPoint": 625, + "id": 3063, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_proxyAdmin_3230": { + "entryPoint": null, + "id": 3230, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revert_3820": { + "entryPoint": 828, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setAdmin_2927": { + "entryPoint": 659, + "id": 2927, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setImplementation_2843": { + "entryPoint": 372, + "id": 2843, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@changeAdmin_2946": { + "entryPoint": 258, + "id": 2946, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@functionDelegateCall_3738": { + "entryPoint": 500, + "id": 3738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAddressSlot_4059": { + "entryPoint": null, + "id": 4059, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getAdmin_2896": { + "entryPoint": null, + "id": 2896, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@upgradeToAndCall_2879": { + "entryPoint": 156, + "id": 2879, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3778": { + "entryPoint": 726, + "id": 3778, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_address_fromMemory": { + "entryPoint": 884, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory": { + "entryPoint": 973, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 1197, + "id": null, + "parameterSlots": 2, + "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": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 935, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 913, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:2460:51", + "nodeType": "YulBlock", + "src": "0:2460:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "74:117:51", + "nodeType": "YulBlock", + "src": "74:117:51", + "statements": [ + { + "nativeSrc": "84:22:51", + "nodeType": "YulAssignment", + "src": "84:22:51", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "99:6:51", + "nodeType": "YulIdentifier", + "src": "99:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "93:5:51", + "nodeType": "YulIdentifier", + "src": "93:5:51" + }, + "nativeSrc": "93:13:51", + "nodeType": "YulFunctionCall", + "src": "93:13:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "84:5:51", + "nodeType": "YulIdentifier", + "src": "84:5:51" + } + ] + }, + { + "body": { + "nativeSrc": "169:16:51", + "nodeType": "YulBlock", + "src": "169:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "178:1:51", + "nodeType": "YulLiteral", + "src": "178:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "181:1:51", + "nodeType": "YulLiteral", + "src": "181:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "171:6:51", + "nodeType": "YulIdentifier", + "src": "171:6:51" + }, + "nativeSrc": "171:12:51", + "nodeType": "YulFunctionCall", + "src": "171:12:51" + }, + "nativeSrc": "171:12:51", + "nodeType": "YulExpressionStatement", + "src": "171:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "128:5:51", + "nodeType": "YulIdentifier", + "src": "128:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "139:5:51", + "nodeType": "YulIdentifier", + "src": "139:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "154:3:51", + "nodeType": "YulLiteral", + "src": "154:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "159:1:51", + "nodeType": "YulLiteral", + "src": "159:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "150:3:51", + "nodeType": "YulIdentifier", + "src": "150:3:51" + }, + "nativeSrc": "150:11:51", + "nodeType": "YulFunctionCall", + "src": "150:11:51" + }, + { + "kind": "number", + "nativeSrc": "163:1:51", + "nodeType": "YulLiteral", + "src": "163:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "146:3:51", + "nodeType": "YulIdentifier", + "src": "146:3:51" + }, + "nativeSrc": "146:19:51", + "nodeType": "YulFunctionCall", + "src": "146:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "135:3:51", + "nodeType": "YulIdentifier", + "src": "135:3:51" + }, + "nativeSrc": "135:31:51", + "nodeType": "YulFunctionCall", + "src": "135:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "125:2:51", + "nodeType": "YulIdentifier", + "src": "125:2:51" + }, + "nativeSrc": "125:42:51", + "nodeType": "YulFunctionCall", + "src": "125:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "118:6:51", + "nodeType": "YulIdentifier", + "src": "118:6:51" + }, + "nativeSrc": "118:50:51", + "nodeType": "YulFunctionCall", + "src": "118:50:51" + }, + "nativeSrc": "115:70:51", + "nodeType": "YulIf", + "src": "115:70:51" + } + ] + }, + "name": "abi_decode_address_fromMemory", + "nativeSrc": "14:177:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "53:6:51", + "nodeType": "YulTypedName", + "src": "53:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "64:5:51", + "nodeType": "YulTypedName", + "src": "64:5:51", + "type": "" + } + ], + "src": "14:177:51" + }, + { + "body": { + "nativeSrc": "228:95:51", + "nodeType": "YulBlock", + "src": "228:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "245:1:51", + "nodeType": "YulLiteral", + "src": "245:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "252:3:51", + "nodeType": "YulLiteral", + "src": "252:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "257:10:51", + "nodeType": "YulLiteral", + "src": "257:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "248:3:51", + "nodeType": "YulIdentifier", + "src": "248:3:51" + }, + "nativeSrc": "248:20:51", + "nodeType": "YulFunctionCall", + "src": "248:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "238:6:51", + "nodeType": "YulIdentifier", + "src": "238:6:51" + }, + "nativeSrc": "238:31:51", + "nodeType": "YulFunctionCall", + "src": "238:31:51" + }, + "nativeSrc": "238:31:51", + "nodeType": "YulExpressionStatement", + "src": "238:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "285:1:51", + "nodeType": "YulLiteral", + "src": "285:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "288:4:51", + "nodeType": "YulLiteral", + "src": "288:4:51", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "278:6:51", + "nodeType": "YulIdentifier", + "src": "278:6:51" + }, + "nativeSrc": "278:15:51", + "nodeType": "YulFunctionCall", + "src": "278:15:51" + }, + "nativeSrc": "278:15:51", + "nodeType": "YulExpressionStatement", + "src": "278:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "309:1:51", + "nodeType": "YulLiteral", + "src": "309:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "312:4:51", + "nodeType": "YulLiteral", + "src": "312:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "302:6:51", + "nodeType": "YulIdentifier", + "src": "302:6:51" + }, + "nativeSrc": "302:15:51", + "nodeType": "YulFunctionCall", + "src": "302:15:51" + }, + "nativeSrc": "302:15:51", + "nodeType": "YulExpressionStatement", + "src": "302:15:51" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "196:127:51", + "nodeType": "YulFunctionDefinition", + "src": "196:127:51" + }, + { + "body": { + "nativeSrc": "394:184:51", + "nodeType": "YulBlock", + "src": "394:184:51", + "statements": [ + { + "nativeSrc": "404:10:51", + "nodeType": "YulVariableDeclaration", + "src": "404:10:51", + "value": { + "kind": "number", + "nativeSrc": "413:1:51", + "nodeType": "YulLiteral", + "src": "413:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "408:1:51", + "nodeType": "YulTypedName", + "src": "408:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "473:63:51", + "nodeType": "YulBlock", + "src": "473:63:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "498:3:51", + "nodeType": "YulIdentifier", + "src": "498:3:51" + }, + { + "name": "i", + "nativeSrc": "503:1:51", + "nodeType": "YulIdentifier", + "src": "503:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "494:3:51", + "nodeType": "YulIdentifier", + "src": "494:3:51" + }, + "nativeSrc": "494:11:51", + "nodeType": "YulFunctionCall", + "src": "494:11:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "517:3:51", + "nodeType": "YulIdentifier", + "src": "517:3:51" + }, + { + "name": "i", + "nativeSrc": "522:1:51", + "nodeType": "YulIdentifier", + "src": "522:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "513:3:51", + "nodeType": "YulIdentifier", + "src": "513:3:51" + }, + "nativeSrc": "513:11:51", + "nodeType": "YulFunctionCall", + "src": "513:11:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "507:5:51", + "nodeType": "YulIdentifier", + "src": "507:5:51" + }, + "nativeSrc": "507:18:51", + "nodeType": "YulFunctionCall", + "src": "507:18:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "487:6:51", + "nodeType": "YulIdentifier", + "src": "487:6:51" + }, + "nativeSrc": "487:39:51", + "nodeType": "YulFunctionCall", + "src": "487:39:51" + }, + "nativeSrc": "487:39:51", + "nodeType": "YulExpressionStatement", + "src": "487:39:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "434:1:51", + "nodeType": "YulIdentifier", + "src": "434:1:51" + }, + { + "name": "length", + "nativeSrc": "437:6:51", + "nodeType": "YulIdentifier", + "src": "437:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "431:2:51", + "nodeType": "YulIdentifier", + "src": "431:2:51" + }, + "nativeSrc": "431:13:51", + "nodeType": "YulFunctionCall", + "src": "431:13:51" + }, + "nativeSrc": "423:113:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "445:19:51", + "nodeType": "YulBlock", + "src": "445:19:51", + "statements": [ + { + "nativeSrc": "447:15:51", + "nodeType": "YulAssignment", + "src": "447:15:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "456:1:51", + "nodeType": "YulIdentifier", + "src": "456:1:51" + }, + { + "kind": "number", + "nativeSrc": "459:2:51", + "nodeType": "YulLiteral", + "src": "459:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "452:3:51", + "nodeType": "YulIdentifier", + "src": "452:3:51" + }, + "nativeSrc": "452:10:51", + "nodeType": "YulFunctionCall", + "src": "452:10:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "447:1:51", + "nodeType": "YulIdentifier", + "src": "447:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "427:3:51", + "nodeType": "YulBlock", + "src": "427:3:51", + "statements": [] + }, + "src": "423:113:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "556:3:51", + "nodeType": "YulIdentifier", + "src": "556:3:51" + }, + { + "name": "length", + "nativeSrc": "561:6:51", + "nodeType": "YulIdentifier", + "src": "561:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "552:3:51", + "nodeType": "YulIdentifier", + "src": "552:3:51" + }, + "nativeSrc": "552:16:51", + "nodeType": "YulFunctionCall", + "src": "552:16:51" + }, + { + "kind": "number", + "nativeSrc": "570:1:51", + "nodeType": "YulLiteral", + "src": "570:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "545:6:51", + "nodeType": "YulIdentifier", + "src": "545:6:51" + }, + "nativeSrc": "545:27:51", + "nodeType": "YulFunctionCall", + "src": "545:27:51" + }, + "nativeSrc": "545:27:51", + "nodeType": "YulExpressionStatement", + "src": "545:27:51" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "328:250:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "372:3:51", + "nodeType": "YulTypedName", + "src": "372:3:51", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "377:3:51", + "nodeType": "YulTypedName", + "src": "377:3:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "382:6:51", + "nodeType": "YulTypedName", + "src": "382:6:51", + "type": "" + } + ], + "src": "328:250:51" + }, + { + "body": { + "nativeSrc": "707:942:51", + "nodeType": "YulBlock", + "src": "707:942:51", + "statements": [ + { + "body": { + "nativeSrc": "753:16:51", + "nodeType": "YulBlock", + "src": "753:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "762:1:51", + "nodeType": "YulLiteral", + "src": "762:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "765:1:51", + "nodeType": "YulLiteral", + "src": "765:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "755:6:51", + "nodeType": "YulIdentifier", + "src": "755:6:51" + }, + "nativeSrc": "755:12:51", + "nodeType": "YulFunctionCall", + "src": "755:12:51" + }, + "nativeSrc": "755:12:51", + "nodeType": "YulExpressionStatement", + "src": "755:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "728:7:51", + "nodeType": "YulIdentifier", + "src": "728:7:51" + }, + { + "name": "headStart", + "nativeSrc": "737:9:51", + "nodeType": "YulIdentifier", + "src": "737:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "724:3:51", + "nodeType": "YulIdentifier", + "src": "724:3:51" + }, + "nativeSrc": "724:23:51", + "nodeType": "YulFunctionCall", + "src": "724:23:51" + }, + { + "kind": "number", + "nativeSrc": "749:2:51", + "nodeType": "YulLiteral", + "src": "749:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "720:3:51", + "nodeType": "YulIdentifier", + "src": "720:3:51" + }, + "nativeSrc": "720:32:51", + "nodeType": "YulFunctionCall", + "src": "720:32:51" + }, + "nativeSrc": "717:52:51", + "nodeType": "YulIf", + "src": "717:52:51" + }, + { + "nativeSrc": "778:50:51", + "nodeType": "YulAssignment", + "src": "778:50:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "818:9:51", + "nodeType": "YulIdentifier", + "src": "818:9:51" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "788:29:51", + "nodeType": "YulIdentifier", + "src": "788:29:51" + }, + "nativeSrc": "788:40:51", + "nodeType": "YulFunctionCall", + "src": "788:40:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "778:6:51", + "nodeType": "YulIdentifier", + "src": "778:6:51" + } + ] + }, + { + "nativeSrc": "837:59:51", + "nodeType": "YulAssignment", + "src": "837:59:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "881:9:51", + "nodeType": "YulIdentifier", + "src": "881:9:51" + }, + { + "kind": "number", + "nativeSrc": "892:2:51", + "nodeType": "YulLiteral", + "src": "892:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "877:3:51", + "nodeType": "YulIdentifier", + "src": "877:3:51" + }, + "nativeSrc": "877:18:51", + "nodeType": "YulFunctionCall", + "src": "877:18:51" + } + ], + "functionName": { + "name": "abi_decode_address_fromMemory", + "nativeSrc": "847:29:51", + "nodeType": "YulIdentifier", + "src": "847:29:51" + }, + "nativeSrc": "847:49:51", + "nodeType": "YulFunctionCall", + "src": "847:49:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "837:6:51", + "nodeType": "YulIdentifier", + "src": "837:6:51" + } + ] + }, + { + "nativeSrc": "905:39:51", + "nodeType": "YulVariableDeclaration", + "src": "905:39:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "929:9:51", + "nodeType": "YulIdentifier", + "src": "929:9:51" + }, + { + "kind": "number", + "nativeSrc": "940:2:51", + "nodeType": "YulLiteral", + "src": "940:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "925:3:51", + "nodeType": "YulIdentifier", + "src": "925:3:51" + }, + "nativeSrc": "925:18:51", + "nodeType": "YulFunctionCall", + "src": "925:18:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "919:5:51", + "nodeType": "YulIdentifier", + "src": "919:5:51" + }, + "nativeSrc": "919:25:51", + "nodeType": "YulFunctionCall", + "src": "919:25:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "909:6:51", + "nodeType": "YulTypedName", + "src": "909:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "953:28:51", + "nodeType": "YulVariableDeclaration", + "src": "953:28:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "971:2:51", + "nodeType": "YulLiteral", + "src": "971:2:51", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "975:1:51", + "nodeType": "YulLiteral", + "src": "975:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "967:3:51", + "nodeType": "YulIdentifier", + "src": "967:3:51" + }, + "nativeSrc": "967:10:51", + "nodeType": "YulFunctionCall", + "src": "967:10:51" + }, + { + "kind": "number", + "nativeSrc": "979:1:51", + "nodeType": "YulLiteral", + "src": "979:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "963:3:51", + "nodeType": "YulIdentifier", + "src": "963:3:51" + }, + "nativeSrc": "963:18:51", + "nodeType": "YulFunctionCall", + "src": "963:18:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "957:2:51", + "nodeType": "YulTypedName", + "src": "957:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1008:16:51", + "nodeType": "YulBlock", + "src": "1008:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1017:1:51", + "nodeType": "YulLiteral", + "src": "1017:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1020:1:51", + "nodeType": "YulLiteral", + "src": "1020:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1010:6:51", + "nodeType": "YulIdentifier", + "src": "1010:6:51" + }, + "nativeSrc": "1010:12:51", + "nodeType": "YulFunctionCall", + "src": "1010:12:51" + }, + "nativeSrc": "1010:12:51", + "nodeType": "YulExpressionStatement", + "src": "1010:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "996:6:51", + "nodeType": "YulIdentifier", + "src": "996:6:51" + }, + { + "name": "_1", + "nativeSrc": "1004:2:51", + "nodeType": "YulIdentifier", + "src": "1004:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "993:2:51", + "nodeType": "YulIdentifier", + "src": "993:2:51" + }, + "nativeSrc": "993:14:51", + "nodeType": "YulFunctionCall", + "src": "993:14:51" + }, + "nativeSrc": "990:34:51", + "nodeType": "YulIf", + "src": "990:34:51" + }, + { + "nativeSrc": "1033:32:51", + "nodeType": "YulVariableDeclaration", + "src": "1033:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1047:9:51", + "nodeType": "YulIdentifier", + "src": "1047:9:51" + }, + { + "name": "offset", + "nativeSrc": "1058:6:51", + "nodeType": "YulIdentifier", + "src": "1058:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1043:3:51", + "nodeType": "YulIdentifier", + "src": "1043:3:51" + }, + "nativeSrc": "1043:22:51", + "nodeType": "YulFunctionCall", + "src": "1043:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "1037:2:51", + "nodeType": "YulTypedName", + "src": "1037:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1113:16:51", + "nodeType": "YulBlock", + "src": "1113:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1122:1:51", + "nodeType": "YulLiteral", + "src": "1122:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1125:1:51", + "nodeType": "YulLiteral", + "src": "1125:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1115:6:51", + "nodeType": "YulIdentifier", + "src": "1115:6:51" + }, + "nativeSrc": "1115:12:51", + "nodeType": "YulFunctionCall", + "src": "1115:12:51" + }, + "nativeSrc": "1115:12:51", + "nodeType": "YulExpressionStatement", + "src": "1115:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1092:2:51", + "nodeType": "YulIdentifier", + "src": "1092:2:51" + }, + { + "kind": "number", + "nativeSrc": "1096:4:51", + "nodeType": "YulLiteral", + "src": "1096:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1088:3:51", + "nodeType": "YulIdentifier", + "src": "1088:3:51" + }, + "nativeSrc": "1088:13:51", + "nodeType": "YulFunctionCall", + "src": "1088:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1103:7:51", + "nodeType": "YulIdentifier", + "src": "1103:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1084:3:51", + "nodeType": "YulIdentifier", + "src": "1084:3:51" + }, + "nativeSrc": "1084:27:51", + "nodeType": "YulFunctionCall", + "src": "1084:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1077:6:51", + "nodeType": "YulIdentifier", + "src": "1077:6:51" + }, + "nativeSrc": "1077:35:51", + "nodeType": "YulFunctionCall", + "src": "1077:35:51" + }, + "nativeSrc": "1074:55:51", + "nodeType": "YulIf", + "src": "1074:55:51" + }, + { + "nativeSrc": "1138:19:51", + "nodeType": "YulVariableDeclaration", + "src": "1138:19:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1154:2:51", + "nodeType": "YulIdentifier", + "src": "1154:2:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1148:5:51", + "nodeType": "YulIdentifier", + "src": "1148:5:51" + }, + "nativeSrc": "1148:9:51", + "nodeType": "YulFunctionCall", + "src": "1148:9:51" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "1142:2:51", + "nodeType": "YulTypedName", + "src": "1142:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1180:22:51", + "nodeType": "YulBlock", + "src": "1180:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1182:16:51", + "nodeType": "YulIdentifier", + "src": "1182:16:51" + }, + "nativeSrc": "1182:18:51", + "nodeType": "YulFunctionCall", + "src": "1182:18:51" + }, + "nativeSrc": "1182:18:51", + "nodeType": "YulExpressionStatement", + "src": "1182:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1172:2:51", + "nodeType": "YulIdentifier", + "src": "1172:2:51" + }, + { + "name": "_1", + "nativeSrc": "1176:2:51", + "nodeType": "YulIdentifier", + "src": "1176:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1169:2:51", + "nodeType": "YulIdentifier", + "src": "1169:2:51" + }, + "nativeSrc": "1169:10:51", + "nodeType": "YulFunctionCall", + "src": "1169:10:51" + }, + "nativeSrc": "1166:36:51", + "nodeType": "YulIf", + "src": "1166:36:51" + }, + { + "nativeSrc": "1211:17:51", + "nodeType": "YulVariableDeclaration", + "src": "1211:17:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1225:2:51", + "nodeType": "YulLiteral", + "src": "1225:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1221:3:51", + "nodeType": "YulIdentifier", + "src": "1221:3:51" + }, + "nativeSrc": "1221:7:51", + "nodeType": "YulFunctionCall", + "src": "1221:7:51" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "1215:2:51", + "nodeType": "YulTypedName", + "src": "1215:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1237:23:51", + "nodeType": "YulVariableDeclaration", + "src": "1237:23:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1257:2:51", + "nodeType": "YulLiteral", + "src": "1257:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1251:5:51", + "nodeType": "YulIdentifier", + "src": "1251:5:51" + }, + "nativeSrc": "1251:9:51", + "nodeType": "YulFunctionCall", + "src": "1251:9:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "1241:6:51", + "nodeType": "YulTypedName", + "src": "1241:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1269:71:51", + "nodeType": "YulVariableDeclaration", + "src": "1269:71:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1291:6:51", + "nodeType": "YulIdentifier", + "src": "1291:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1315:2:51", + "nodeType": "YulIdentifier", + "src": "1315:2:51" + }, + { + "kind": "number", + "nativeSrc": "1319:4:51", + "nodeType": "YulLiteral", + "src": "1319:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1311:3:51", + "nodeType": "YulIdentifier", + "src": "1311:3:51" + }, + "nativeSrc": "1311:13:51", + "nodeType": "YulFunctionCall", + "src": "1311:13:51" + }, + { + "name": "_4", + "nativeSrc": "1326:2:51", + "nodeType": "YulIdentifier", + "src": "1326:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1307:3:51", + "nodeType": "YulIdentifier", + "src": "1307:3:51" + }, + "nativeSrc": "1307:22:51", + "nodeType": "YulFunctionCall", + "src": "1307:22:51" + }, + { + "kind": "number", + "nativeSrc": "1331:2:51", + "nodeType": "YulLiteral", + "src": "1331:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1303:3:51", + "nodeType": "YulIdentifier", + "src": "1303:3:51" + }, + "nativeSrc": "1303:31:51", + "nodeType": "YulFunctionCall", + "src": "1303:31:51" + }, + { + "name": "_4", + "nativeSrc": "1336:2:51", + "nodeType": "YulIdentifier", + "src": "1336:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1299:3:51", + "nodeType": "YulIdentifier", + "src": "1299:3:51" + }, + "nativeSrc": "1299:40:51", + "nodeType": "YulFunctionCall", + "src": "1299:40:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1287:3:51", + "nodeType": "YulIdentifier", + "src": "1287:3:51" + }, + "nativeSrc": "1287:53:51", + "nodeType": "YulFunctionCall", + "src": "1287:53:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1273:10:51", + "nodeType": "YulTypedName", + "src": "1273:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1399:22:51", + "nodeType": "YulBlock", + "src": "1399:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1401:16:51", + "nodeType": "YulIdentifier", + "src": "1401:16:51" + }, + "nativeSrc": "1401:18:51", + "nodeType": "YulFunctionCall", + "src": "1401:18:51" + }, + "nativeSrc": "1401:18:51", + "nodeType": "YulExpressionStatement", + "src": "1401:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1358:10:51", + "nodeType": "YulIdentifier", + "src": "1358:10:51" + }, + { + "name": "_1", + "nativeSrc": "1370:2:51", + "nodeType": "YulIdentifier", + "src": "1370:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1355:2:51", + "nodeType": "YulIdentifier", + "src": "1355:2:51" + }, + "nativeSrc": "1355:18:51", + "nodeType": "YulFunctionCall", + "src": "1355:18:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1378:10:51", + "nodeType": "YulIdentifier", + "src": "1378:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "1390:6:51", + "nodeType": "YulIdentifier", + "src": "1390:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1375:2:51", + "nodeType": "YulIdentifier", + "src": "1375:2:51" + }, + "nativeSrc": "1375:22:51", + "nodeType": "YulFunctionCall", + "src": "1375:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1352:2:51", + "nodeType": "YulIdentifier", + "src": "1352:2:51" + }, + "nativeSrc": "1352:46:51", + "nodeType": "YulFunctionCall", + "src": "1352:46:51" + }, + "nativeSrc": "1349:72:51", + "nodeType": "YulIf", + "src": "1349:72:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1437:2:51", + "nodeType": "YulLiteral", + "src": "1437:2:51", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1441:10:51", + "nodeType": "YulIdentifier", + "src": "1441:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1430:6:51", + "nodeType": "YulIdentifier", + "src": "1430:6:51" + }, + "nativeSrc": "1430:22:51", + "nodeType": "YulFunctionCall", + "src": "1430:22:51" + }, + "nativeSrc": "1430:22:51", + "nodeType": "YulExpressionStatement", + "src": "1430:22:51" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1468:6:51", + "nodeType": "YulIdentifier", + "src": "1468:6:51" + }, + { + "name": "_3", + "nativeSrc": "1476:2:51", + "nodeType": "YulIdentifier", + "src": "1476:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1461:6:51", + "nodeType": "YulIdentifier", + "src": "1461:6:51" + }, + "nativeSrc": "1461:18:51", + "nodeType": "YulFunctionCall", + "src": "1461:18:51" + }, + "nativeSrc": "1461:18:51", + "nodeType": "YulExpressionStatement", + "src": "1461:18:51" + }, + { + "body": { + "nativeSrc": "1525:16:51", + "nodeType": "YulBlock", + "src": "1525:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1534:1:51", + "nodeType": "YulLiteral", + "src": "1534:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1537:1:51", + "nodeType": "YulLiteral", + "src": "1537:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1527:6:51", + "nodeType": "YulIdentifier", + "src": "1527:6:51" + }, + "nativeSrc": "1527:12:51", + "nodeType": "YulFunctionCall", + "src": "1527:12:51" + }, + "nativeSrc": "1527:12:51", + "nodeType": "YulExpressionStatement", + "src": "1527:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1502:2:51", + "nodeType": "YulIdentifier", + "src": "1502:2:51" + }, + { + "name": "_3", + "nativeSrc": "1506:2:51", + "nodeType": "YulIdentifier", + "src": "1506:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1498:3:51", + "nodeType": "YulIdentifier", + "src": "1498:3:51" + }, + "nativeSrc": "1498:11:51", + "nodeType": "YulFunctionCall", + "src": "1498:11:51" + }, + { + "kind": "number", + "nativeSrc": "1511:2:51", + "nodeType": "YulLiteral", + "src": "1511:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1494:3:51", + "nodeType": "YulIdentifier", + "src": "1494:3:51" + }, + "nativeSrc": "1494:20:51", + "nodeType": "YulFunctionCall", + "src": "1494:20:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1516:7:51", + "nodeType": "YulIdentifier", + "src": "1516:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1491:2:51", + "nodeType": "YulIdentifier", + "src": "1491:2:51" + }, + "nativeSrc": "1491:33:51", + "nodeType": "YulFunctionCall", + "src": "1491:33:51" + }, + "nativeSrc": "1488:53:51", + "nodeType": "YulIf", + "src": "1488:53:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1589:2:51", + "nodeType": "YulIdentifier", + "src": "1589:2:51" + }, + { + "kind": "number", + "nativeSrc": "1593:2:51", + "nodeType": "YulLiteral", + "src": "1593:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1585:3:51", + "nodeType": "YulIdentifier", + "src": "1585:3:51" + }, + "nativeSrc": "1585:11:51", + "nodeType": "YulFunctionCall", + "src": "1585:11:51" + }, + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1602:6:51", + "nodeType": "YulIdentifier", + "src": "1602:6:51" + }, + { + "kind": "number", + "nativeSrc": "1610:2:51", + "nodeType": "YulLiteral", + "src": "1610:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1598:3:51", + "nodeType": "YulIdentifier", + "src": "1598:3:51" + }, + "nativeSrc": "1598:15:51", + "nodeType": "YulFunctionCall", + "src": "1598:15:51" + }, + { + "name": "_3", + "nativeSrc": "1615:2:51", + "nodeType": "YulIdentifier", + "src": "1615:2:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1550:34:51", + "nodeType": "YulIdentifier", + "src": "1550:34:51" + }, + "nativeSrc": "1550:68:51", + "nodeType": "YulFunctionCall", + "src": "1550:68:51" + }, + "nativeSrc": "1550:68:51", + "nodeType": "YulExpressionStatement", + "src": "1550:68:51" + }, + { + "nativeSrc": "1627:16:51", + "nodeType": "YulAssignment", + "src": "1627:16:51", + "value": { + "name": "memPtr", + "nativeSrc": "1637:6:51", + "nodeType": "YulIdentifier", + "src": "1637:6:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1627:6:51", + "nodeType": "YulIdentifier", + "src": "1627:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory", + "nativeSrc": "583:1066:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "657:9:51", + "nodeType": "YulTypedName", + "src": "657:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "668:7:51", + "nodeType": "YulTypedName", + "src": "668:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "680:6:51", + "nodeType": "YulTypedName", + "src": "680:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "688:6:51", + "nodeType": "YulTypedName", + "src": "688:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "696:6:51", + "nodeType": "YulTypedName", + "src": "696:6:51", + "type": "" + } + ], + "src": "583:1066:51" + }, + { + "body": { + "nativeSrc": "1755:102:51", + "nodeType": "YulBlock", + "src": "1755:102:51", + "statements": [ + { + "nativeSrc": "1765:26:51", + "nodeType": "YulAssignment", + "src": "1765:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1777:9:51", + "nodeType": "YulIdentifier", + "src": "1777:9:51" + }, + { + "kind": "number", + "nativeSrc": "1788:2:51", + "nodeType": "YulLiteral", + "src": "1788:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:51", + "nodeType": "YulIdentifier", + "src": "1773:3:51" + }, + "nativeSrc": "1773:18:51", + "nodeType": "YulFunctionCall", + "src": "1773:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1765:4:51", + "nodeType": "YulIdentifier", + "src": "1765:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1807:9:51", + "nodeType": "YulIdentifier", + "src": "1807:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1822:6:51", + "nodeType": "YulIdentifier", + "src": "1822:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1838:3:51", + "nodeType": "YulLiteral", + "src": "1838:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1843:1:51", + "nodeType": "YulLiteral", + "src": "1843:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1834:3:51", + "nodeType": "YulIdentifier", + "src": "1834:3:51" + }, + "nativeSrc": "1834:11:51", + "nodeType": "YulFunctionCall", + "src": "1834:11:51" + }, + { + "kind": "number", + "nativeSrc": "1847:1:51", + "nodeType": "YulLiteral", + "src": "1847:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1830:3:51", + "nodeType": "YulIdentifier", + "src": "1830:3:51" + }, + "nativeSrc": "1830:19:51", + "nodeType": "YulFunctionCall", + "src": "1830:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1818:3:51", + "nodeType": "YulIdentifier", + "src": "1818:3:51" + }, + "nativeSrc": "1818:32:51", + "nodeType": "YulFunctionCall", + "src": "1818:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1800:6:51", + "nodeType": "YulIdentifier", + "src": "1800:6:51" + }, + "nativeSrc": "1800:51:51", + "nodeType": "YulFunctionCall", + "src": "1800:51:51" + }, + "nativeSrc": "1800:51:51", + "nodeType": "YulExpressionStatement", + "src": "1800:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1654:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1724:9:51", + "nodeType": "YulTypedName", + "src": "1724:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1735:6:51", + "nodeType": "YulTypedName", + "src": "1735:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1746:4:51", + "nodeType": "YulTypedName", + "src": "1746:4:51", + "type": "" + } + ], + "src": "1654:203:51" + }, + { + "body": { + "nativeSrc": "1991:175:51", + "nodeType": "YulBlock", + "src": "1991:175:51", + "statements": [ + { + "nativeSrc": "2001:26:51", + "nodeType": "YulAssignment", + "src": "2001:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2013:9:51", + "nodeType": "YulIdentifier", + "src": "2013:9:51" + }, + { + "kind": "number", + "nativeSrc": "2024:2:51", + "nodeType": "YulLiteral", + "src": "2024:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2009:3:51", + "nodeType": "YulIdentifier", + "src": "2009:3:51" + }, + "nativeSrc": "2009:18:51", + "nodeType": "YulFunctionCall", + "src": "2009:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2001:4:51", + "nodeType": "YulIdentifier", + "src": "2001:4:51" + } + ] + }, + { + "nativeSrc": "2036:29:51", + "nodeType": "YulVariableDeclaration", + "src": "2036:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2054:3:51", + "nodeType": "YulLiteral", + "src": "2054:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2059:1:51", + "nodeType": "YulLiteral", + "src": "2059:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2050:3:51", + "nodeType": "YulIdentifier", + "src": "2050:3:51" + }, + "nativeSrc": "2050:11:51", + "nodeType": "YulFunctionCall", + "src": "2050:11:51" + }, + { + "kind": "number", + "nativeSrc": "2063:1:51", + "nodeType": "YulLiteral", + "src": "2063:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2046:3:51", + "nodeType": "YulIdentifier", + "src": "2046:3:51" + }, + "nativeSrc": "2046:19:51", + "nodeType": "YulFunctionCall", + "src": "2046:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "2040:2:51", + "nodeType": "YulTypedName", + "src": "2040:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2081:9:51", + "nodeType": "YulIdentifier", + "src": "2081:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2096:6:51", + "nodeType": "YulIdentifier", + "src": "2096:6:51" + }, + { + "name": "_1", + "nativeSrc": "2104:2:51", + "nodeType": "YulIdentifier", + "src": "2104:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2092:3:51", + "nodeType": "YulIdentifier", + "src": "2092:3:51" + }, + "nativeSrc": "2092:15:51", + "nodeType": "YulFunctionCall", + "src": "2092:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2074:6:51", + "nodeType": "YulIdentifier", + "src": "2074:6:51" + }, + "nativeSrc": "2074:34:51", + "nodeType": "YulFunctionCall", + "src": "2074:34:51" + }, + "nativeSrc": "2074:34:51", + "nodeType": "YulExpressionStatement", + "src": "2074:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2128:9:51", + "nodeType": "YulIdentifier", + "src": "2128:9:51" + }, + { + "kind": "number", + "nativeSrc": "2139:2:51", + "nodeType": "YulLiteral", + "src": "2139:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2124:3:51", + "nodeType": "YulIdentifier", + "src": "2124:3:51" + }, + "nativeSrc": "2124:18:51", + "nodeType": "YulFunctionCall", + "src": "2124:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2148:6:51", + "nodeType": "YulIdentifier", + "src": "2148:6:51" + }, + { + "name": "_1", + "nativeSrc": "2156:2:51", + "nodeType": "YulIdentifier", + "src": "2156:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2144:3:51", + "nodeType": "YulIdentifier", + "src": "2144:3:51" + }, + "nativeSrc": "2144:15:51", + "nodeType": "YulFunctionCall", + "src": "2144:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2117:6:51", + "nodeType": "YulIdentifier", + "src": "2117:6:51" + }, + "nativeSrc": "2117:43:51", + "nodeType": "YulFunctionCall", + "src": "2117:43:51" + }, + "nativeSrc": "2117:43:51", + "nodeType": "YulExpressionStatement", + "src": "2117:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "1862:304:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1952:9:51", + "nodeType": "YulTypedName", + "src": "1952:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1963:6:51", + "nodeType": "YulTypedName", + "src": "1963:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1971:6:51", + "nodeType": "YulTypedName", + "src": "1971:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1982:4:51", + "nodeType": "YulTypedName", + "src": "1982:4:51", + "type": "" + } + ], + "src": "1862:304:51" + }, + { + "body": { + "nativeSrc": "2308:150:51", + "nodeType": "YulBlock", + "src": "2308:150:51", + "statements": [ + { + "nativeSrc": "2318:27:51", + "nodeType": "YulVariableDeclaration", + "src": "2318:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2338:6:51", + "nodeType": "YulIdentifier", + "src": "2338:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2332:5:51", + "nodeType": "YulIdentifier", + "src": "2332:5:51" + }, + "nativeSrc": "2332:13:51", + "nodeType": "YulFunctionCall", + "src": "2332:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "2322:6:51", + "nodeType": "YulTypedName", + "src": "2322:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2393:6:51", + "nodeType": "YulIdentifier", + "src": "2393:6:51" + }, + { + "kind": "number", + "nativeSrc": "2401:4:51", + "nodeType": "YulLiteral", + "src": "2401:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2389:3:51", + "nodeType": "YulIdentifier", + "src": "2389:3:51" + }, + "nativeSrc": "2389:17:51", + "nodeType": "YulFunctionCall", + "src": "2389:17:51" + }, + { + "name": "pos", + "nativeSrc": "2408:3:51", + "nodeType": "YulIdentifier", + "src": "2408:3:51" + }, + { + "name": "length", + "nativeSrc": "2413:6:51", + "nodeType": "YulIdentifier", + "src": "2413:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2354:34:51", + "nodeType": "YulIdentifier", + "src": "2354:34:51" + }, + "nativeSrc": "2354:66:51", + "nodeType": "YulFunctionCall", + "src": "2354:66:51" + }, + "nativeSrc": "2354:66:51", + "nodeType": "YulExpressionStatement", + "src": "2354:66:51" + }, + { + "nativeSrc": "2429:23:51", + "nodeType": "YulAssignment", + "src": "2429:23:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2440:3:51", + "nodeType": "YulIdentifier", + "src": "2440:3:51" + }, + { + "name": "length", + "nativeSrc": "2445:6:51", + "nodeType": "YulIdentifier", + "src": "2445:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2436:3:51", + "nodeType": "YulIdentifier", + "src": "2436:3:51" + }, + "nativeSrc": "2436:16:51", + "nodeType": "YulFunctionCall", + "src": "2436:16:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2429:3:51", + "nodeType": "YulIdentifier", + "src": "2429:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "2171:287:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "2284:3:51", + "nodeType": "YulTypedName", + "src": "2284:3:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2289:6:51", + "nodeType": "YulTypedName", + "src": "2289:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2300:3:51", + "nodeType": "YulTypedName", + "src": "2300:3:51", + "type": "" + } + ], + "src": "2171:287:51" + } + ] + }, + "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 panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\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_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n let offset := mload(add(headStart, 64))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_2, 32), add(memPtr, 32), _3)\n value2 := memPtr\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\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}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH3 0xEB1 CODESIZE SUB DUP1 PUSH3 0xEB1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x26 SWAP2 PUSH3 0x3CD JUMP JUMPDEST DUP3 DUP2 PUSH3 0x34 DUP3 DUP3 PUSH3 0x9C JUMP JUMPDEST POP POP DUP2 PUSH1 0x40 MLOAD PUSH3 0x45 SWAP1 PUSH3 0x366 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x72 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH3 0x93 PUSH3 0x8D PUSH1 0x80 MLOAD SWAP1 JUMP JUMPDEST PUSH3 0x102 JUMP JUMPDEST POP POP POP PUSH3 0x4CB JUMP JUMPDEST PUSH3 0xA7 DUP3 PUSH3 0x174 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH3 0xF4 JUMPI PUSH3 0xEF DUP3 DUP3 PUSH3 0x1F4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH3 0xFE PUSH3 0x271 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH3 0x144 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0xE91 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH3 0x171 DUP2 PUSH3 0x293 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH3 0x1B0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH3 0x213 SWAP2 SWAP1 PUSH3 0x4AD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x250 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 PUSH3 0x255 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH3 0x268 DUP6 DUP4 DUP4 PUSH3 0x2D6 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH3 0x291 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x2BF JUMPI PUSH1 0x40 MLOAD PUSH4 0x3173BDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH3 0x1A7 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0xE91 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH3 0x1D3 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH3 0x2EF JUMPI PUSH3 0x2E9 DUP3 PUSH3 0x33C JUMP JUMPDEST PUSH3 0x335 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH3 0x307 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH3 0x332 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH3 0x1A7 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH3 0x34D 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 0x524 DUP1 PUSH3 0x96D DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x38C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x3C4 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x3AA JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x3E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x3EE DUP5 PUSH3 0x374 JUMP JUMPDEST SWAP3 POP PUSH3 0x3FE PUSH1 0x20 DUP6 ADD PUSH3 0x374 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x431 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x446 JUMPI PUSH3 0x446 PUSH3 0x391 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x471 JUMPI PUSH3 0x471 PUSH3 0x391 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x48B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x49E DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x3A7 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH3 0x4C1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH3 0x3A7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x487 PUSH3 0x4E6 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0x10 ADD MSTORE PUSH2 0x487 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0x278F7943 PUSH1 0xE1 SHL EQ PUSH2 0x71 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34AD5DBB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x79 PUSH2 0x83 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x79 PUSH2 0xB2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x93 CALLDATASIZE PUSH1 0x4 DUP2 DUP5 PUSH2 0x312 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0xA0 SWAP2 SWAP1 PUSH2 0x352 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xAE DUP3 DUP3 PUSH2 0xC2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x79 PUSH2 0xBD PUSH2 0x11D JUMP JUMPDEST PUSH2 0x155 JUMP JUMPDEST PUSH2 0xCB DUP3 PUSH2 0x179 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x115 JUMPI PUSH2 0x110 DUP3 DUP3 PUSH2 0x1F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xAE PUSH2 0x26B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x150 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x174 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x1B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x212 SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x24D 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 0x252 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x262 DUP6 DUP4 DUP4 PUSH2 0x28A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x79 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x29F JUMPI PUSH2 0x29A DUP3 PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E2 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2B6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1AB JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x2F9 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 PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3BF JUMPI PUSH2 0x3BF PUSH2 0x33C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E7 PUSH2 0x33C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x443 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x429 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 CALLDATACOPY 0xD1 CALLDATASIZE CALLCODE 0xB4 0xB2 ISZERO SELFBALANCE CHAINID PUSH8 0x2E0DF2CCA2E33BEA RETURNDATACOPY EXTCODEHASH 0xA6 SWAP6 SHR 0xE3 0x1F 0xC7 GAS 0xD 0x2E 0xC5 0xC3 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x524 CODESIZE SUB DUP1 PUSH2 0x524 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0xBE JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67 DUP2 PUSH2 0x6E JUMP JUMPDEST POP POP PUSH2 0xEE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x427 DUP1 PUSH2 0xFD PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x93 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xA6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x104 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x64 PUSH2 0xA1 CALLDATASIZE PUSH1 0x4 PUSH2 0x272 JUMP JUMPDEST PUSH2 0x118 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x352E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8A SWAP2 SWAP1 PUSH2 0x38E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0xFF CALLDATASIZE PUSH1 0x4 PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x187 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x116 PUSH1 0x0 PUSH2 0x1F7 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x278F7943 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x4F1EF286 SWAP1 CALLVALUE SWAP1 PUSH2 0x150 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x17D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x18F PUSH2 0x1CA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1C7 DUP2 PUSH2 0x1F7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x116 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x292 DUP2 PUSH2 0x247 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2A2 DUP2 PUSH2 0x247 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2E5 JUMPI PUSH2 0x2E5 PUSH2 0x25C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x30D JUMPI PUSH2 0x30D PUSH2 0x25C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x326 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x36E JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x352 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 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3A1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x348 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3A1 DUP2 PUSH2 0x247 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 0x3E9 SWAP1 DUP4 ADD DUP5 PUSH2 0x348 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL DUP3 0xB8 0xF9 PUSH0 RETURNDATACOPY 0xB9 MSTORE8 BLOBBASEFEE TSTORE PREVRANDAO 0xB3 INVALID PUSH27 0x934376995EFA5E3D86FA4073FEFDB114E5C164736F6C6343000818 STOP CALLER 0xB5 BALANCE 0x27 PUSH9 0x4A568B3173AE13B9F8 0xA6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB ", + "sourceMap": "4314:2231:17:-:0;;;5157:296;;;;;;;;;;;;;;;;;;:::i;:::-;5248:6;5256:5;1155:52:12;5248:6:17;5256:5;1155:29:12;:52::i;:::-;1081:133;;5305:12:17::1;5290:28;;;;;:::i;:::-;-1:-1:-1::0;;;;;1818:32:51;;;1800:51;;1788:2;1773:18;5290:28:17::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;5273:46:17::1;;::::0;5407:39:::1;5432:13;5600:6:::0;;;5520:93;5432:13:::1;5407:24;:39::i;:::-;5157:296:::0;;;4314:2231;;2264:344:13;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:13;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;:::-;;2264:344;;:::o;2454:148::-;2573:18;:16;:18::i;:::-;2264:344;;:::o;3827:142::-;3890:43;3912:10;-1:-1:-1;;;;;;;;;;;3356:44:13;-1:-1:-1;;;;;3356:44:13;;3287:120;3912:10;3890:43;;;-1:-1:-1;;;;;2092:15:51;;;2074:34;;2144:15;;;2139:2;2124:18;;2117:43;2009:18;3890:43:13;;;;;;;3943:19;3953:8;3943:9;:19::i;:::-;3827:142;:::o;1671:281::-;1748:17;-1:-1:-1;;;;;1748:29:13;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:13;;-1:-1:-1;;;;;1818:32:51;;1805:47:13;;;1800:51:51;1773:18;;1805:47:13;;;;;;;;1744:119;1928:17;811:66;1872:47;:73;;-1:-1:-1;;;;;;1872:73:13;-1:-1:-1;;;;;1872:73:13;;;;;;;;;;-1:-1:-1;1671:281:13:o;3916:253:23:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:23;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4023:67:23;;-1:-1:-1;4023:67:23;-1:-1:-1;4107:55:23;4134:6;4023:67;;4107:26;:55::i;:::-;4100:62;3916:253;-1:-1:-1;;;;;3916:253:23:o;6113:122:13:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:13;;;;;;;;;;;6159:70;6113:122::o;3490:217::-;-1:-1:-1;;;;;3549:22:13;;3545:91;;3594:31;;-1:-1:-1;;;3594:31:13;;3622:1;3594:31;;;1800:51:51;1773:18;;3594:31:13;1654:203:51;3545:91:13;3692:8;-1:-1:-1;;;;;;;;;;;3645:38:13;1899:163:28:o;4437:582:23:-;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:23;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:23;;-1:-1:-1;;;;;1818:32:51;;4933:24:23;;;1800:51:51;1773:18;;4933:24:23;1654:203:51;4853:119:23;-1:-1:-1;4992:10:23;4605:408;4437:582;;;;;:::o;5559:487::-;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:23;;;;;;;;;;;4314:2231:17;;;;;;;;:::o;14:177:51:-;93:13;;-1:-1:-1;;;;;135:31:51;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:51;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:51;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:51;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;2171:287::-;2300:3;2338:6;2332:13;2354:66;2413:6;2408:3;2401:4;2393:6;2389:17;2354:66;:::i;:::-;2436:16;;;;;2171:287;-1:-1:-1;;2171:287:51:o;:::-;4314:2231:17;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@_3099": { + "entryPoint": null, + "id": 3099, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkNonPayable_3063": { + "entryPoint": 619, + "id": 3063, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_delegate_3075": { + "entryPoint": 341, + "id": 3075, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_dispatchUpgradeToAndCall_3293": { + "entryPoint": 131, + "id": 3293, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_fallback_3091": { + "entryPoint": 178, + "id": 3091, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_fallback_3264": { + "entryPoint": 14, + "id": 3264, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_implementation_2769": { + "entryPoint": 285, + "id": 2769, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_proxyAdmin_3230": { + "entryPoint": null, + "id": 3230, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revert_3820": { + "entryPoint": 745, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setImplementation_2843": { + "entryPoint": 377, + "id": 2843, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@functionDelegateCall_3738": { + "entryPoint": 501, + "id": 3738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getAddressSlot_4059": { + "entryPoint": null, + "id": 4059, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getImplementation_2816": { + "entryPoint": null, + "id": 2816, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@upgradeToAndCall_2879": { + "entryPoint": 194, + "id": 2879, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3778": { + "entryPoint": 650, + "id": 3778, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_payablet_bytes_memory_ptr": { + "entryPoint": 850, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 1058, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "calldata_array_index_range_access_t_bytes_calldata_ptr": { + "entryPoint": 786, + "id": null, + "parameterSlots": 4, + "returnSlots": 2 + }, + "panic_error_0x41": { + "entryPoint": 828, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:2212:51", + "nodeType": "YulBlock", + "src": "0:2212:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "144:201:51", + "nodeType": "YulBlock", + "src": "144:201:51", + "statements": [ + { + "body": { + "nativeSrc": "182:16:51", + "nodeType": "YulBlock", + "src": "182:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "191:1:51", + "nodeType": "YulLiteral", + "src": "191:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "194:1:51", + "nodeType": "YulLiteral", + "src": "194:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "184:6:51", + "nodeType": "YulIdentifier", + "src": "184:6:51" + }, + "nativeSrc": "184:12:51", + "nodeType": "YulFunctionCall", + "src": "184:12:51" + }, + "nativeSrc": "184:12:51", + "nodeType": "YulExpressionStatement", + "src": "184:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "160:10:51", + "nodeType": "YulIdentifier", + "src": "160:10:51" + }, + { + "name": "endIndex", + "nativeSrc": "172:8:51", + "nodeType": "YulIdentifier", + "src": "172:8:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "157:2:51", + "nodeType": "YulIdentifier", + "src": "157:2:51" + }, + "nativeSrc": "157:24:51", + "nodeType": "YulFunctionCall", + "src": "157:24:51" + }, + "nativeSrc": "154:44:51", + "nodeType": "YulIf", + "src": "154:44:51" + }, + { + "body": { + "nativeSrc": "231:16:51", + "nodeType": "YulBlock", + "src": "231:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "240:1:51", + "nodeType": "YulLiteral", + "src": "240:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "243:1:51", + "nodeType": "YulLiteral", + "src": "243:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "233:6:51", + "nodeType": "YulIdentifier", + "src": "233:6:51" + }, + "nativeSrc": "233:12:51", + "nodeType": "YulFunctionCall", + "src": "233:12:51" + }, + "nativeSrc": "233:12:51", + "nodeType": "YulExpressionStatement", + "src": "233:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "213:8:51", + "nodeType": "YulIdentifier", + "src": "213:8:51" + }, + { + "name": "length", + "nativeSrc": "223:6:51", + "nodeType": "YulIdentifier", + "src": "223:6:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "210:2:51", + "nodeType": "YulIdentifier", + "src": "210:2:51" + }, + "nativeSrc": "210:20:51", + "nodeType": "YulFunctionCall", + "src": "210:20:51" + }, + "nativeSrc": "207:40:51", + "nodeType": "YulIf", + "src": "207:40:51" + }, + { + "nativeSrc": "256:36:51", + "nodeType": "YulAssignment", + "src": "256:36:51", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "273:6:51", + "nodeType": "YulIdentifier", + "src": "273:6:51" + }, + { + "name": "startIndex", + "nativeSrc": "281:10:51", + "nodeType": "YulIdentifier", + "src": "281:10:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "269:3:51", + "nodeType": "YulIdentifier", + "src": "269:3:51" + }, + "nativeSrc": "269:23:51", + "nodeType": "YulFunctionCall", + "src": "269:23:51" + }, + "variableNames": [ + { + "name": "offsetOut", + "nativeSrc": "256:9:51", + "nodeType": "YulIdentifier", + "src": "256:9:51" + } + ] + }, + { + "nativeSrc": "301:38:51", + "nodeType": "YulAssignment", + "src": "301:38:51", + "value": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "318:8:51", + "nodeType": "YulIdentifier", + "src": "318:8:51" + }, + { + "name": "startIndex", + "nativeSrc": "328:10:51", + "nodeType": "YulIdentifier", + "src": "328:10:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "314:3:51", + "nodeType": "YulIdentifier", + "src": "314:3:51" + }, + "nativeSrc": "314:25:51", + "nodeType": "YulFunctionCall", + "src": "314:25:51" + }, + "variableNames": [ + { + "name": "lengthOut", + "nativeSrc": "301:9:51", + "nodeType": "YulIdentifier", + "src": "301:9:51" + } + ] + } + ] + }, + "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", + "nativeSrc": "14:331:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "78:6:51", + "nodeType": "YulTypedName", + "src": "78:6:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "86:6:51", + "nodeType": "YulTypedName", + "src": "86:6:51", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "94:10:51", + "nodeType": "YulTypedName", + "src": "94:10:51", + "type": "" + }, + { + "name": "endIndex", + "nativeSrc": "106:8:51", + "nodeType": "YulTypedName", + "src": "106:8:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "offsetOut", + "nativeSrc": "119:9:51", + "nodeType": "YulTypedName", + "src": "119:9:51", + "type": "" + }, + { + "name": "lengthOut", + "nativeSrc": "130:9:51", + "nodeType": "YulTypedName", + "src": "130:9:51", + "type": "" + } + ], + "src": "14:331:51" + }, + { + "body": { + "nativeSrc": "382:95:51", + "nodeType": "YulBlock", + "src": "382:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "399:1:51", + "nodeType": "YulLiteral", + "src": "399:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "406:3:51", + "nodeType": "YulLiteral", + "src": "406:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "411:10:51", + "nodeType": "YulLiteral", + "src": "411:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "402:3:51", + "nodeType": "YulIdentifier", + "src": "402:3:51" + }, + "nativeSrc": "402:20:51", + "nodeType": "YulFunctionCall", + "src": "402:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "392:6:51", + "nodeType": "YulIdentifier", + "src": "392:6:51" + }, + "nativeSrc": "392:31:51", + "nodeType": "YulFunctionCall", + "src": "392:31:51" + }, + "nativeSrc": "392:31:51", + "nodeType": "YulExpressionStatement", + "src": "392:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "439:1:51", + "nodeType": "YulLiteral", + "src": "439:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "442:4:51", + "nodeType": "YulLiteral", + "src": "442:4:51", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "432:6:51", + "nodeType": "YulIdentifier", + "src": "432:6:51" + }, + "nativeSrc": "432:15:51", + "nodeType": "YulFunctionCall", + "src": "432:15:51" + }, + "nativeSrc": "432:15:51", + "nodeType": "YulExpressionStatement", + "src": "432:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "463:1:51", + "nodeType": "YulLiteral", + "src": "463:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "466:4:51", + "nodeType": "YulLiteral", + "src": "466:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "456:6:51", + "nodeType": "YulIdentifier", + "src": "456:6:51" + }, + "nativeSrc": "456:15:51", + "nodeType": "YulFunctionCall", + "src": "456:15:51" + }, + "nativeSrc": "456:15:51", + "nodeType": "YulExpressionStatement", + "src": "456:15:51" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "350:127:51", + "nodeType": "YulFunctionDefinition", + "src": "350:127:51" + }, + { + "body": { + "nativeSrc": "586:999:51", + "nodeType": "YulBlock", + "src": "586:999:51", + "statements": [ + { + "body": { + "nativeSrc": "632:16:51", + "nodeType": "YulBlock", + "src": "632:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "641:1:51", + "nodeType": "YulLiteral", + "src": "641:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "644:1:51", + "nodeType": "YulLiteral", + "src": "644:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "634:6:51", + "nodeType": "YulIdentifier", + "src": "634:6:51" + }, + "nativeSrc": "634:12:51", + "nodeType": "YulFunctionCall", + "src": "634:12:51" + }, + "nativeSrc": "634:12:51", + "nodeType": "YulExpressionStatement", + "src": "634:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "607:7:51", + "nodeType": "YulIdentifier", + "src": "607:7:51" + }, + { + "name": "headStart", + "nativeSrc": "616:9:51", + "nodeType": "YulIdentifier", + "src": "616:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "603:3:51", + "nodeType": "YulIdentifier", + "src": "603:3:51" + }, + "nativeSrc": "603:23:51", + "nodeType": "YulFunctionCall", + "src": "603:23:51" + }, + { + "kind": "number", + "nativeSrc": "628:2:51", + "nodeType": "YulLiteral", + "src": "628:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "599:3:51", + "nodeType": "YulIdentifier", + "src": "599:3:51" + }, + "nativeSrc": "599:32:51", + "nodeType": "YulFunctionCall", + "src": "599:32:51" + }, + "nativeSrc": "596:52:51", + "nodeType": "YulIf", + "src": "596:52:51" + }, + { + "nativeSrc": "657:36:51", + "nodeType": "YulVariableDeclaration", + "src": "657:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "683:9:51", + "nodeType": "YulIdentifier", + "src": "683:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "670:12:51", + "nodeType": "YulIdentifier", + "src": "670:12:51" + }, + "nativeSrc": "670:23:51", + "nodeType": "YulFunctionCall", + "src": "670:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "661:5:51", + "nodeType": "YulTypedName", + "src": "661:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "756:16:51", + "nodeType": "YulBlock", + "src": "756:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "765:1:51", + "nodeType": "YulLiteral", + "src": "765:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "768:1:51", + "nodeType": "YulLiteral", + "src": "768:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "758:6:51", + "nodeType": "YulIdentifier", + "src": "758:6:51" + }, + "nativeSrc": "758:12:51", + "nodeType": "YulFunctionCall", + "src": "758:12:51" + }, + "nativeSrc": "758:12:51", + "nodeType": "YulExpressionStatement", + "src": "758:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "715:5:51", + "nodeType": "YulIdentifier", + "src": "715:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "726:5:51", + "nodeType": "YulIdentifier", + "src": "726:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "741:3:51", + "nodeType": "YulLiteral", + "src": "741:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "746:1:51", + "nodeType": "YulLiteral", + "src": "746:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "737:3:51", + "nodeType": "YulIdentifier", + "src": "737:3:51" + }, + "nativeSrc": "737:11:51", + "nodeType": "YulFunctionCall", + "src": "737:11:51" + }, + { + "kind": "number", + "nativeSrc": "750:1:51", + "nodeType": "YulLiteral", + "src": "750:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "733:3:51", + "nodeType": "YulIdentifier", + "src": "733:3:51" + }, + "nativeSrc": "733:19:51", + "nodeType": "YulFunctionCall", + "src": "733:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "722:3:51", + "nodeType": "YulIdentifier", + "src": "722:3:51" + }, + "nativeSrc": "722:31:51", + "nodeType": "YulFunctionCall", + "src": "722:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "712:2:51", + "nodeType": "YulIdentifier", + "src": "712:2:51" + }, + "nativeSrc": "712:42:51", + "nodeType": "YulFunctionCall", + "src": "712:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "705:6:51", + "nodeType": "YulIdentifier", + "src": "705:6:51" + }, + "nativeSrc": "705:50:51", + "nodeType": "YulFunctionCall", + "src": "705:50:51" + }, + "nativeSrc": "702:70:51", + "nodeType": "YulIf", + "src": "702:70:51" + }, + { + "nativeSrc": "781:15:51", + "nodeType": "YulAssignment", + "src": "781:15:51", + "value": { + "name": "value", + "nativeSrc": "791:5:51", + "nodeType": "YulIdentifier", + "src": "791:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "781:6:51", + "nodeType": "YulIdentifier", + "src": "781:6:51" + } + ] + }, + { + "nativeSrc": "805:46:51", + "nodeType": "YulVariableDeclaration", + "src": "805:46:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "836:9:51", + "nodeType": "YulIdentifier", + "src": "836:9:51" + }, + { + "kind": "number", + "nativeSrc": "847:2:51", + "nodeType": "YulLiteral", + "src": "847:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "832:3:51", + "nodeType": "YulIdentifier", + "src": "832:3:51" + }, + "nativeSrc": "832:18:51", + "nodeType": "YulFunctionCall", + "src": "832:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "819:12:51", + "nodeType": "YulIdentifier", + "src": "819:12:51" + }, + "nativeSrc": "819:32:51", + "nodeType": "YulFunctionCall", + "src": "819:32:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "809:6:51", + "nodeType": "YulTypedName", + "src": "809:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "860:28:51", + "nodeType": "YulVariableDeclaration", + "src": "860:28:51", + "value": { + "kind": "number", + "nativeSrc": "870:18:51", + "nodeType": "YulLiteral", + "src": "870:18:51", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "864:2:51", + "nodeType": "YulTypedName", + "src": "864:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "915:16:51", + "nodeType": "YulBlock", + "src": "915:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "924:1:51", + "nodeType": "YulLiteral", + "src": "924:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "927:1:51", + "nodeType": "YulLiteral", + "src": "927:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "917:6:51", + "nodeType": "YulIdentifier", + "src": "917:6:51" + }, + "nativeSrc": "917:12:51", + "nodeType": "YulFunctionCall", + "src": "917:12:51" + }, + "nativeSrc": "917:12:51", + "nodeType": "YulExpressionStatement", + "src": "917:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "903:6:51", + "nodeType": "YulIdentifier", + "src": "903:6:51" + }, + { + "name": "_1", + "nativeSrc": "911:2:51", + "nodeType": "YulIdentifier", + "src": "911:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "900:2:51", + "nodeType": "YulIdentifier", + "src": "900:2:51" + }, + "nativeSrc": "900:14:51", + "nodeType": "YulFunctionCall", + "src": "900:14:51" + }, + "nativeSrc": "897:34:51", + "nodeType": "YulIf", + "src": "897:34:51" + }, + { + "nativeSrc": "940:32:51", + "nodeType": "YulVariableDeclaration", + "src": "940:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "954:9:51", + "nodeType": "YulIdentifier", + "src": "954:9:51" + }, + { + "name": "offset", + "nativeSrc": "965:6:51", + "nodeType": "YulIdentifier", + "src": "965:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "950:3:51", + "nodeType": "YulIdentifier", + "src": "950:3:51" + }, + "nativeSrc": "950:22:51", + "nodeType": "YulFunctionCall", + "src": "950:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "944:2:51", + "nodeType": "YulTypedName", + "src": "944:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1020:16:51", + "nodeType": "YulBlock", + "src": "1020:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1029:1:51", + "nodeType": "YulLiteral", + "src": "1029:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1032:1:51", + "nodeType": "YulLiteral", + "src": "1032:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1022:6:51", + "nodeType": "YulIdentifier", + "src": "1022:6:51" + }, + "nativeSrc": "1022:12:51", + "nodeType": "YulFunctionCall", + "src": "1022:12:51" + }, + "nativeSrc": "1022:12:51", + "nodeType": "YulExpressionStatement", + "src": "1022:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "999:2:51", + "nodeType": "YulIdentifier", + "src": "999:2:51" + }, + { + "kind": "number", + "nativeSrc": "1003:4:51", + "nodeType": "YulLiteral", + "src": "1003:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "995:3:51", + "nodeType": "YulIdentifier", + "src": "995:3:51" + }, + "nativeSrc": "995:13:51", + "nodeType": "YulFunctionCall", + "src": "995:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1010:7:51", + "nodeType": "YulIdentifier", + "src": "1010:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "991:3:51", + "nodeType": "YulIdentifier", + "src": "991:3:51" + }, + "nativeSrc": "991:27:51", + "nodeType": "YulFunctionCall", + "src": "991:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "984:6:51", + "nodeType": "YulIdentifier", + "src": "984:6:51" + }, + "nativeSrc": "984:35:51", + "nodeType": "YulFunctionCall", + "src": "984:35:51" + }, + "nativeSrc": "981:55:51", + "nodeType": "YulIf", + "src": "981:55:51" + }, + { + "nativeSrc": "1045:26:51", + "nodeType": "YulVariableDeclaration", + "src": "1045:26:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1068:2:51", + "nodeType": "YulIdentifier", + "src": "1068:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1055:12:51", + "nodeType": "YulIdentifier", + "src": "1055:12:51" + }, + "nativeSrc": "1055:16:51", + "nodeType": "YulFunctionCall", + "src": "1055:16:51" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "1049:2:51", + "nodeType": "YulTypedName", + "src": "1049:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1094:22:51", + "nodeType": "YulBlock", + "src": "1094:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1096:16:51", + "nodeType": "YulIdentifier", + "src": "1096:16:51" + }, + "nativeSrc": "1096:18:51", + "nodeType": "YulFunctionCall", + "src": "1096:18:51" + }, + "nativeSrc": "1096:18:51", + "nodeType": "YulExpressionStatement", + "src": "1096:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1086:2:51", + "nodeType": "YulIdentifier", + "src": "1086:2:51" + }, + { + "name": "_1", + "nativeSrc": "1090:2:51", + "nodeType": "YulIdentifier", + "src": "1090:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1083:2:51", + "nodeType": "YulIdentifier", + "src": "1083:2:51" + }, + "nativeSrc": "1083:10:51", + "nodeType": "YulFunctionCall", + "src": "1083:10:51" + }, + "nativeSrc": "1080:36:51", + "nodeType": "YulIf", + "src": "1080:36:51" + }, + { + "nativeSrc": "1125:17:51", + "nodeType": "YulVariableDeclaration", + "src": "1125:17:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1139:2:51", + "nodeType": "YulLiteral", + "src": "1139:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1135:3:51", + "nodeType": "YulIdentifier", + "src": "1135:3:51" + }, + "nativeSrc": "1135:7:51", + "nodeType": "YulFunctionCall", + "src": "1135:7:51" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "1129:2:51", + "nodeType": "YulTypedName", + "src": "1129:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1151:23:51", + "nodeType": "YulVariableDeclaration", + "src": "1151:23:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1171:2:51", + "nodeType": "YulLiteral", + "src": "1171:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1165:5:51", + "nodeType": "YulIdentifier", + "src": "1165:5:51" + }, + "nativeSrc": "1165:9:51", + "nodeType": "YulFunctionCall", + "src": "1165:9:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "1155:6:51", + "nodeType": "YulTypedName", + "src": "1155:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1183:71:51", + "nodeType": "YulVariableDeclaration", + "src": "1183:71:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1205:6:51", + "nodeType": "YulIdentifier", + "src": "1205:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_3", + "nativeSrc": "1229:2:51", + "nodeType": "YulIdentifier", + "src": "1229:2:51" + }, + { + "kind": "number", + "nativeSrc": "1233:4:51", + "nodeType": "YulLiteral", + "src": "1233:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1225:3:51", + "nodeType": "YulIdentifier", + "src": "1225:3:51" + }, + "nativeSrc": "1225:13:51", + "nodeType": "YulFunctionCall", + "src": "1225:13:51" + }, + { + "name": "_4", + "nativeSrc": "1240:2:51", + "nodeType": "YulIdentifier", + "src": "1240:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1221:3:51", + "nodeType": "YulIdentifier", + "src": "1221:3:51" + }, + "nativeSrc": "1221:22:51", + "nodeType": "YulFunctionCall", + "src": "1221:22:51" + }, + { + "kind": "number", + "nativeSrc": "1245:2:51", + "nodeType": "YulLiteral", + "src": "1245:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1217:3:51", + "nodeType": "YulIdentifier", + "src": "1217:3:51" + }, + "nativeSrc": "1217:31:51", + "nodeType": "YulFunctionCall", + "src": "1217:31:51" + }, + { + "name": "_4", + "nativeSrc": "1250:2:51", + "nodeType": "YulIdentifier", + "src": "1250:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1213:3:51", + "nodeType": "YulIdentifier", + "src": "1213:3:51" + }, + "nativeSrc": "1213:40:51", + "nodeType": "YulFunctionCall", + "src": "1213:40:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1201:3:51", + "nodeType": "YulIdentifier", + "src": "1201:3:51" + }, + "nativeSrc": "1201:53:51", + "nodeType": "YulFunctionCall", + "src": "1201:53:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "1187:10:51", + "nodeType": "YulTypedName", + "src": "1187:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1313:22:51", + "nodeType": "YulBlock", + "src": "1313:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1315:16:51", + "nodeType": "YulIdentifier", + "src": "1315:16:51" + }, + "nativeSrc": "1315:18:51", + "nodeType": "YulFunctionCall", + "src": "1315:18:51" + }, + "nativeSrc": "1315:18:51", + "nodeType": "YulExpressionStatement", + "src": "1315:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1272:10:51", + "nodeType": "YulIdentifier", + "src": "1272:10:51" + }, + { + "name": "_1", + "nativeSrc": "1284:2:51", + "nodeType": "YulIdentifier", + "src": "1284:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1269:2:51", + "nodeType": "YulIdentifier", + "src": "1269:2:51" + }, + "nativeSrc": "1269:18:51", + "nodeType": "YulFunctionCall", + "src": "1269:18:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1292:10:51", + "nodeType": "YulIdentifier", + "src": "1292:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "1304:6:51", + "nodeType": "YulIdentifier", + "src": "1304:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1289:2:51", + "nodeType": "YulIdentifier", + "src": "1289:2:51" + }, + "nativeSrc": "1289:22:51", + "nodeType": "YulFunctionCall", + "src": "1289:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "1266:2:51", + "nodeType": "YulIdentifier", + "src": "1266:2:51" + }, + "nativeSrc": "1266:46:51", + "nodeType": "YulFunctionCall", + "src": "1266:46:51" + }, + "nativeSrc": "1263:72:51", + "nodeType": "YulIf", + "src": "1263:72:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1351:2:51", + "nodeType": "YulLiteral", + "src": "1351:2:51", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1355:10:51", + "nodeType": "YulIdentifier", + "src": "1355:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1344:6:51", + "nodeType": "YulIdentifier", + "src": "1344:6:51" + }, + "nativeSrc": "1344:22:51", + "nodeType": "YulFunctionCall", + "src": "1344:22:51" + }, + "nativeSrc": "1344:22:51", + "nodeType": "YulExpressionStatement", + "src": "1344:22:51" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1382:6:51", + "nodeType": "YulIdentifier", + "src": "1382:6:51" + }, + { + "name": "_3", + "nativeSrc": "1390:2:51", + "nodeType": "YulIdentifier", + "src": "1390:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1375:6:51", + "nodeType": "YulIdentifier", + "src": "1375:6:51" + }, + "nativeSrc": "1375:18:51", + "nodeType": "YulFunctionCall", + "src": "1375:18:51" + }, + "nativeSrc": "1375:18:51", + "nodeType": "YulExpressionStatement", + "src": "1375:18:51" + }, + { + "body": { + "nativeSrc": "1439:16:51", + "nodeType": "YulBlock", + "src": "1439:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1448:1:51", + "nodeType": "YulLiteral", + "src": "1448:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1451:1:51", + "nodeType": "YulLiteral", + "src": "1451:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1441:6:51", + "nodeType": "YulIdentifier", + "src": "1441:6:51" + }, + "nativeSrc": "1441:12:51", + "nodeType": "YulFunctionCall", + "src": "1441:12:51" + }, + "nativeSrc": "1441:12:51", + "nodeType": "YulExpressionStatement", + "src": "1441:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1416:2:51", + "nodeType": "YulIdentifier", + "src": "1416:2:51" + }, + { + "name": "_3", + "nativeSrc": "1420:2:51", + "nodeType": "YulIdentifier", + "src": "1420:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:51", + "nodeType": "YulIdentifier", + "src": "1412:3:51" + }, + "nativeSrc": "1412:11:51", + "nodeType": "YulFunctionCall", + "src": "1412:11:51" + }, + { + "kind": "number", + "nativeSrc": "1425:2:51", + "nodeType": "YulLiteral", + "src": "1425:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1408:3:51", + "nodeType": "YulIdentifier", + "src": "1408:3:51" + }, + "nativeSrc": "1408:20:51", + "nodeType": "YulFunctionCall", + "src": "1408:20:51" + }, + { + "name": "dataEnd", + "nativeSrc": "1430:7:51", + "nodeType": "YulIdentifier", + "src": "1430:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1405:2:51", + "nodeType": "YulIdentifier", + "src": "1405:2:51" + }, + "nativeSrc": "1405:33:51", + "nodeType": "YulFunctionCall", + "src": "1405:33:51" + }, + "nativeSrc": "1402:53:51", + "nodeType": "YulIf", + "src": "1402:53:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1481:6:51", + "nodeType": "YulIdentifier", + "src": "1481:6:51" + }, + { + "kind": "number", + "nativeSrc": "1489:2:51", + "nodeType": "YulLiteral", + "src": "1489:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1477:3:51", + "nodeType": "YulIdentifier", + "src": "1477:3:51" + }, + "nativeSrc": "1477:15:51", + "nodeType": "YulFunctionCall", + "src": "1477:15:51" + }, + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "1498:2:51", + "nodeType": "YulIdentifier", + "src": "1498:2:51" + }, + { + "kind": "number", + "nativeSrc": "1502:2:51", + "nodeType": "YulLiteral", + "src": "1502:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1494:3:51", + "nodeType": "YulIdentifier", + "src": "1494:3:51" + }, + "nativeSrc": "1494:11:51", + "nodeType": "YulFunctionCall", + "src": "1494:11:51" + }, + { + "name": "_3", + "nativeSrc": "1507:2:51", + "nodeType": "YulIdentifier", + "src": "1507:2:51" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "1464:12:51", + "nodeType": "YulIdentifier", + "src": "1464:12:51" + }, + "nativeSrc": "1464:46:51", + "nodeType": "YulFunctionCall", + "src": "1464:46:51" + }, + "nativeSrc": "1464:46:51", + "nodeType": "YulExpressionStatement", + "src": "1464:46:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "1534:6:51", + "nodeType": "YulIdentifier", + "src": "1534:6:51" + }, + { + "name": "_3", + "nativeSrc": "1542:2:51", + "nodeType": "YulIdentifier", + "src": "1542:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1530:3:51", + "nodeType": "YulIdentifier", + "src": "1530:3:51" + }, + "nativeSrc": "1530:15:51", + "nodeType": "YulFunctionCall", + "src": "1530:15:51" + }, + { + "kind": "number", + "nativeSrc": "1547:2:51", + "nodeType": "YulLiteral", + "src": "1547:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1526:3:51", + "nodeType": "YulIdentifier", + "src": "1526:3:51" + }, + "nativeSrc": "1526:24:51", + "nodeType": "YulFunctionCall", + "src": "1526:24:51" + }, + { + "kind": "number", + "nativeSrc": "1552:1:51", + "nodeType": "YulLiteral", + "src": "1552:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1519:6:51", + "nodeType": "YulIdentifier", + "src": "1519:6:51" + }, + "nativeSrc": "1519:35:51", + "nodeType": "YulFunctionCall", + "src": "1519:35:51" + }, + "nativeSrc": "1519:35:51", + "nodeType": "YulExpressionStatement", + "src": "1519:35:51" + }, + { + "nativeSrc": "1563:16:51", + "nodeType": "YulAssignment", + "src": "1563:16:51", + "value": { + "name": "memPtr", + "nativeSrc": "1573:6:51", + "nodeType": "YulIdentifier", + "src": "1573:6:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1563:6:51", + "nodeType": "YulIdentifier", + "src": "1563:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_bytes_memory_ptr", + "nativeSrc": "482:1103:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "544:9:51", + "nodeType": "YulTypedName", + "src": "544:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "555:7:51", + "nodeType": "YulTypedName", + "src": "555:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "567:6:51", + "nodeType": "YulTypedName", + "src": "567:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "575:6:51", + "nodeType": "YulTypedName", + "src": "575:6:51", + "type": "" + } + ], + "src": "482:1103:51" + }, + { + "body": { + "nativeSrc": "1691:102:51", + "nodeType": "YulBlock", + "src": "1691:102:51", + "statements": [ + { + "nativeSrc": "1701:26:51", + "nodeType": "YulAssignment", + "src": "1701:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1713:9:51", + "nodeType": "YulIdentifier", + "src": "1713:9:51" + }, + { + "kind": "number", + "nativeSrc": "1724:2:51", + "nodeType": "YulLiteral", + "src": "1724:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1709:3:51", + "nodeType": "YulIdentifier", + "src": "1709:3:51" + }, + "nativeSrc": "1709:18:51", + "nodeType": "YulFunctionCall", + "src": "1709:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1701:4:51", + "nodeType": "YulIdentifier", + "src": "1701:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1743:9:51", + "nodeType": "YulIdentifier", + "src": "1743:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1758:6:51", + "nodeType": "YulIdentifier", + "src": "1758:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1774:3:51", + "nodeType": "YulLiteral", + "src": "1774:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1779:1:51", + "nodeType": "YulLiteral", + "src": "1779:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1770:3:51", + "nodeType": "YulIdentifier", + "src": "1770:3:51" + }, + "nativeSrc": "1770:11:51", + "nodeType": "YulFunctionCall", + "src": "1770:11:51" + }, + { + "kind": "number", + "nativeSrc": "1783:1:51", + "nodeType": "YulLiteral", + "src": "1783:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1766:3:51", + "nodeType": "YulIdentifier", + "src": "1766:3:51" + }, + "nativeSrc": "1766:19:51", + "nodeType": "YulFunctionCall", + "src": "1766:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1754:3:51", + "nodeType": "YulIdentifier", + "src": "1754:3:51" + }, + "nativeSrc": "1754:32:51", + "nodeType": "YulFunctionCall", + "src": "1754:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1736:6:51", + "nodeType": "YulIdentifier", + "src": "1736:6:51" + }, + "nativeSrc": "1736:51:51", + "nodeType": "YulFunctionCall", + "src": "1736:51:51" + }, + "nativeSrc": "1736:51:51", + "nodeType": "YulExpressionStatement", + "src": "1736:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1590:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1660:9:51", + "nodeType": "YulTypedName", + "src": "1660:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1671:6:51", + "nodeType": "YulTypedName", + "src": "1671:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1682:4:51", + "nodeType": "YulTypedName", + "src": "1682:4:51", + "type": "" + } + ], + "src": "1590:203:51" + }, + { + "body": { + "nativeSrc": "1935:275:51", + "nodeType": "YulBlock", + "src": "1935:275:51", + "statements": [ + { + "nativeSrc": "1945:27:51", + "nodeType": "YulVariableDeclaration", + "src": "1945:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1965:6:51", + "nodeType": "YulIdentifier", + "src": "1965:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1959:5:51", + "nodeType": "YulIdentifier", + "src": "1959:5:51" + }, + "nativeSrc": "1959:13:51", + "nodeType": "YulFunctionCall", + "src": "1959:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1949:6:51", + "nodeType": "YulTypedName", + "src": "1949:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "1981:10:51", + "nodeType": "YulVariableDeclaration", + "src": "1981:10:51", + "value": { + "kind": "number", + "nativeSrc": "1990:1:51", + "nodeType": "YulLiteral", + "src": "1990:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1985:1:51", + "nodeType": "YulTypedName", + "src": "1985:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2052:77:51", + "nodeType": "YulBlock", + "src": "2052:77:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2077:3:51", + "nodeType": "YulIdentifier", + "src": "2077:3:51" + }, + { + "name": "i", + "nativeSrc": "2082:1:51", + "nodeType": "YulIdentifier", + "src": "2082:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2073:3:51", + "nodeType": "YulIdentifier", + "src": "2073:3:51" + }, + "nativeSrc": "2073:11:51", + "nodeType": "YulFunctionCall", + "src": "2073:11:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2100:6:51", + "nodeType": "YulIdentifier", + "src": "2100:6:51" + }, + { + "name": "i", + "nativeSrc": "2108:1:51", + "nodeType": "YulIdentifier", + "src": "2108:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2096:3:51", + "nodeType": "YulIdentifier", + "src": "2096:3:51" + }, + "nativeSrc": "2096:14:51", + "nodeType": "YulFunctionCall", + "src": "2096:14:51" + }, + { + "kind": "number", + "nativeSrc": "2112:4:51", + "nodeType": "YulLiteral", + "src": "2112:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2092:3:51", + "nodeType": "YulIdentifier", + "src": "2092:3:51" + }, + "nativeSrc": "2092:25:51", + "nodeType": "YulFunctionCall", + "src": "2092:25:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2086:5:51", + "nodeType": "YulIdentifier", + "src": "2086:5:51" + }, + "nativeSrc": "2086:32:51", + "nodeType": "YulFunctionCall", + "src": "2086:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2066:6:51", + "nodeType": "YulIdentifier", + "src": "2066:6:51" + }, + "nativeSrc": "2066:53:51", + "nodeType": "YulFunctionCall", + "src": "2066:53:51" + }, + "nativeSrc": "2066:53:51", + "nodeType": "YulExpressionStatement", + "src": "2066:53:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2011:1:51", + "nodeType": "YulIdentifier", + "src": "2011:1:51" + }, + { + "name": "length", + "nativeSrc": "2014:6:51", + "nodeType": "YulIdentifier", + "src": "2014:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2008:2:51", + "nodeType": "YulIdentifier", + "src": "2008:2:51" + }, + "nativeSrc": "2008:13:51", + "nodeType": "YulFunctionCall", + "src": "2008:13:51" + }, + "nativeSrc": "2000:129:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2022:21:51", + "nodeType": "YulBlock", + "src": "2022:21:51", + "statements": [ + { + "nativeSrc": "2024:17:51", + "nodeType": "YulAssignment", + "src": "2024:17:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2033:1:51", + "nodeType": "YulIdentifier", + "src": "2033:1:51" + }, + { + "kind": "number", + "nativeSrc": "2036:4:51", + "nodeType": "YulLiteral", + "src": "2036:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2029:3:51", + "nodeType": "YulIdentifier", + "src": "2029:3:51" + }, + "nativeSrc": "2029:12:51", + "nodeType": "YulFunctionCall", + "src": "2029:12:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "2024:1:51", + "nodeType": "YulIdentifier", + "src": "2024:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2004:3:51", + "nodeType": "YulBlock", + "src": "2004:3:51", + "statements": [] + }, + "src": "2000:129:51" + }, + { + "nativeSrc": "2138:26:51", + "nodeType": "YulVariableDeclaration", + "src": "2138:26:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2152:3:51", + "nodeType": "YulIdentifier", + "src": "2152:3:51" + }, + { + "name": "length", + "nativeSrc": "2157:6:51", + "nodeType": "YulIdentifier", + "src": "2157:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2148:3:51", + "nodeType": "YulIdentifier", + "src": "2148:3:51" + }, + "nativeSrc": "2148:16:51", + "nodeType": "YulFunctionCall", + "src": "2148:16:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "2142:2:51", + "nodeType": "YulTypedName", + "src": "2142:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "2180:2:51", + "nodeType": "YulIdentifier", + "src": "2180:2:51" + }, + { + "kind": "number", + "nativeSrc": "2184:1:51", + "nodeType": "YulLiteral", + "src": "2184:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2173:6:51", + "nodeType": "YulIdentifier", + "src": "2173:6:51" + }, + "nativeSrc": "2173:13:51", + "nodeType": "YulFunctionCall", + "src": "2173:13:51" + }, + "nativeSrc": "2173:13:51", + "nodeType": "YulExpressionStatement", + "src": "2173:13:51" + }, + { + "nativeSrc": "2195:9:51", + "nodeType": "YulAssignment", + "src": "2195:9:51", + "value": { + "name": "_1", + "nativeSrc": "2202:2:51", + "nodeType": "YulIdentifier", + "src": "2202:2:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2195:3:51", + "nodeType": "YulIdentifier", + "src": "2195:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "1798:412:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "1911:3:51", + "nodeType": "YulTypedName", + "src": "1911:3:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1916:6:51", + "nodeType": "YulTypedName", + "src": "1916:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "1927:3:51", + "nodeType": "YulTypedName", + "src": "1927:3:51", + "type": "" + } + ], + "src": "1798:412:51" + } + ] + }, + "contents": "{\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_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_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 let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n }\n let _1 := add(pos, length)\n mstore(_1, 0)\n end := _1\n }\n}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "3185": [ + { + "length": 32, + "start": 16 + } + ] + }, + "linkReferences": {}, + "object": "608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER SUB PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0x278F7943 PUSH1 0xE1 SHL EQ PUSH2 0x71 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34AD5DBB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x79 PUSH2 0x83 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x79 PUSH2 0xB2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x93 CALLDATASIZE PUSH1 0x4 DUP2 DUP5 PUSH2 0x312 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0xA0 SWAP2 SWAP1 PUSH2 0x352 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xAE DUP3 DUP3 PUSH2 0xC2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x79 PUSH2 0xBD PUSH2 0x11D JUMP JUMPDEST PUSH2 0x155 JUMP JUMPDEST PUSH2 0xCB DUP3 PUSH2 0x179 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 DUP1 MLOAD ISZERO PUSH2 0x115 JUMPI PUSH2 0x110 DUP3 DUP3 PUSH2 0x1F5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xAE PUSH2 0x26B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x150 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x174 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE PUSH1 0x0 SUB PUSH2 0x1B4 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4C9C8CE3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x212 SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x24D 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 0x252 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x262 DUP6 DUP4 DUP4 PUSH2 0x28A JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST CALLVALUE ISZERO PUSH2 0x79 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB398979F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x29F JUMPI PUSH2 0x29A DUP3 PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x2E2 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x2B6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x2DF JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1AB JUMP JUMPDEST POP DUP1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x2F9 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 PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x365 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x37C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3BF JUMPI PUSH2 0x3BF PUSH2 0x33C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E7 PUSH2 0x33C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x443 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0x429 JUMP JUMPDEST POP PUSH1 0x0 SWAP3 ADD SWAP2 DUP3 MSTORE POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP4 CALLDATACOPY 0xD1 CALLDATASIZE CALLCODE 0xB4 0xB2 ISZERO SELFBALANCE CHAINID PUSH8 0x2E0DF2CCA2E33BEA RETURNDATACOPY EXTCODEHASH 0xA6 SWAP6 SHR 0xE3 0x1F 0xC7 GAS 0xD 0x2E 0xC5 0xC3 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "4314:2231:17:-:0;;;2649:11:14;:9;:11::i;:::-;4314:2231:17;5755:369;5600:6;-1:-1:-1;;;;;5816:27:17;:10;:27;5812:306;;5863:7;;-1:-1:-1;;;;;;5863:7:17;-1:-1:-1;;;5863:65:17;5859:201;;5955:24;;-1:-1:-1;;;5955:24:17;;;;;;;;;;;5859:201;6018:27;:25;:27::i;:::-;5755:369::o;5812:306::-;6090:17;:15;:17::i;6326:217::-;6382:25;;6441:12;:8;6450:1;6441:8;6382:25;6441:12;:::i;:::-;6430:42;;;;;;;:::i;:::-;6381:91;;;;6482:54;6512:17;6531:4;6482:29;:54::i;:::-;6371:172;;6326:217::o;2323:83:14:-;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;2264:344:13:-;2355:37;2374:17;2355:18;:37::i;:::-;2407:36;;-1:-1:-1;;;;;2407:36:13;;;;;;;;2458:11;;:15;2454:148;;2489:53;2518:17;2537:4;2489:28;:53::i;:::-;;6371:172:17;;6326:217::o;2454:148:13:-;2573:18;:16;:18::i;1583:132:12:-;1650:7;1676:32;811:66:13;1519:53;-1:-1:-1;;;;;1519:53:13;;1441:138;1676:32:12;1669:39;;1583:132;:::o;949:895:14:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;1671:281:13;1748:17;-1:-1:-1;;;;;1748:29:13;;1781:1;1748:34;1744:119;;1805:47;;-1:-1:-1;;;1805:47:13;;-1:-1:-1;;;;;1754:32:51;;1805:47:13;;;1736:51:51;1709:18;;1805:47:13;;;;;;;;1744:119;811:66;1872:73;;-1:-1:-1;;;;;;1872:73:13;-1:-1:-1;;;;;1872:73:13;;;;;;;;;;1671:281::o;3916:253:23:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:23;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:23:o;6113:122:13:-;6163:9;:13;6159:70;;6199:19;;-1:-1:-1;;;6199:19:13;;;;;;;;;;;4437:582:23;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:23;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:23;;-1:-1:-1;;;;;1754:32:51;;4933:24:23;;;1736:51:51;1709:18;;4933:24:23;1590:203:51;4853:119:23;-1:-1:-1;4992:10:23;4605:408;4437:582;;;;;:::o;5559:487::-;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:23;;;;;;;;;;;14:331:51;119:9;130;172:8;160:10;157:24;154:44;;;194:1;191;184:12;154:44;223:6;213:8;210:20;207:40;;;243:1;240;233:12;207:40;-1:-1:-1;;269:23:51;;;314:25;;;;;-1:-1:-1;14:331:51:o;350:127::-;411:10;406:3;402:20;399:1;392:31;442:4;439:1;432:15;466:4;463:1;456:15;482:1103;567:6;575;628:2;616:9;607:7;603:23;599:32;596:52;;;644:1;641;634:12;596:52;670:23;;-1:-1:-1;;;;;722:31:51;;712:42;;702:70;;768:1;765;758:12;702:70;791:5;-1:-1:-1;847:2:51;832:18;;819:32;870:18;900:14;;;897:34;;;927:1;924;917:12;897:34;965:6;954:9;950:22;940:32;;1010:7;1003:4;999:2;995:13;991:27;981:55;;1032:1;1029;1022:12;981:55;1068:2;1055:16;1090:2;1086;1083:10;1080:36;;;1096:18;;:::i;:::-;1171:2;1165:9;1139:2;1225:13;;-1:-1:-1;;1221:22:51;;;1245:2;1217:31;1213:40;1201:53;;;1269:18;;;1289:22;;;1266:46;1263:72;;;1315:18;;:::i;:::-;1355:10;1351:2;1344:22;1390:2;1382:6;1375:18;1430:7;1425:2;1420;1416;1412:11;1408:20;1405:33;1402:53;;;1451:1;1448;1441:12;1402:53;1507:2;1502;1498;1494:11;1489:2;1481:6;1477:15;1464:46;1552:1;1547:2;1542;1534:6;1530:15;1526:24;1519:35;1573:6;1563:16;;;;;;;482:1103;;;;;:::o;1798:412::-;1927:3;1965:6;1959:13;1990:1;2000:129;2014:6;2011:1;2008:13;2000:129;;;2112:4;2096:14;;;2092:25;;2086:32;2073:11;;;2066:53;2029:12;2000:129;;;-1:-1:-1;2184:1:51;2148:16;;2173:13;;;-1:-1:-1;2148:16:51;1798:412;-1:-1:-1;1798:412:51:o" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"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\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating the proxy admin cannot fallback to the target implementation. These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot is generally fine if the implementation is trusted. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ProxyDeniedAdminAccess()\":[{\"details\":\"The proxy caller is the current admin, and can't fallback to the proxy target.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70\",\"dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0x46f86003755f50eff00a7c5aaf493ae62e024142b8aec4493a313851d3c14872\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462c770cb667cc75ab22df5a29c50873b24b267274edf87ac5cfe0112bf4c3f7\",\"dweb:/ipfs/QmTfKk32AkQ2yyYZCYJ44V69EM5t9ryBFC6bRF7FVMHXvj\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x92579f452fe663595a898cbac85d80bb3868a6c9f034f19ba7fbebdfa3b65a4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d07a888cd4a26c7077a30dd99e9ac30fbe2752bfb37e58c65f06a3b192079ef3\",\"dweb:/ipfs/QmZCQY4FC4ynBv9dha4BBWM1vYxTUJPBdFBS4HEFe6XzVB\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "IERC721": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "IERC721Receiver": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC-721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC-721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "IERC721Metadata": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC-721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the address zero. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC-721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol": { + "ERC721Holder": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "onERC721Received(address,address,uint256,bytes)": "150b7a02" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC721Receiver} interface. Accepts all token transfers. Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":\"ERC721Holder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0xaad20f8713b5cd98114278482d5d91b9758f9727048527d582e8e88fd4901fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5396e8dbb000c2fada59b7d2093b9c7c870fd09413ab0fdaba45d882959c6244\",\"dweb:/ipfs/QmXQn5XckSiUsUBpMYuiFeqnojRX4rKa9jmgjCPeTuPmhh\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol": { + "ERC721Utils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220174419f8d0bf897fa6303bc349173013a09a9adbc48952d242cda5b3368ff63964736f6c63430008180033", + "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 OR PREVRANDAO NOT 0xF8 0xD0 0xBF DUP10 PUSH32 0xA6303BC349173013A09A9ADBC48952D242CDA5B3368FF63964736F6C63430008 XOR STOP CALLER ", + "sourceMap": "431:1488:22:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;431:1488:22;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220174419f8d0bf897fa6303bc349173013a09a9adbc48952d242cda5b3368ff63964736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR PREVRANDAO NOT 0xF8 0xD0 0xBF DUP10 PUSH32 0xA6303BC349173013A09A9ADBC48952D242CDA5B3368FF63964736F6C63430008 XOR STOP CALLER ", + "sourceMap": "431:1488:22:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-721 utility functions. See https://eips.ethereum.org/EIPS/eip-721[ERC-721]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":\"ERC721Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Address.sol": { + "Address": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204b24941cf450230bae2962bec81cc0f1f7e39f592731f0e39972555ec37ff07b64736f6c63430008180033", + "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 0x4B 0x24 SWAP5 SHR DELEGATECALL POP 0x23 SIGNEXTEND 0xAE 0x29 PUSH3 0xBEC81C 0xC0 CALL 0xF7 0xE3 SWAP16 MSIZE 0x27 BALANCE CREATE 0xE3 SWAP10 PUSH19 0x555EC37FF07B64736F6C634300081800330000 ", + "sourceMap": "233:5815:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;233:5815:23;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204b24941cf450230bae2962bec81cc0f1f7e39f592731f0e39972555ec37ff07b64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0x24 SWAP5 SHR DELEGATECALL POP 0x23 SIGNEXTEND 0xAE 0x29 PUSH3 0xBEC81C 0xC0 CALL 0xF7 0xE3 SWAP16 MSIZE 0x27 BALANCE CREATE 0xE3 SWAP10 PUSH19 0x555EC37FF07B64736F6C634300081800330000 ", + "sourceMap": "233:5815:23:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Create2.sol": { + "Create2": { + "abi": [ + { + "inputs": [], + "name": "Create2EmptyBytecode", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122033b9171e285d471fb94ac265fe3148d7a1942cbc8f03a525951c0f35b46a0ca464736f6c63430008180033", + "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 CALLER 0xB9 OR 0x1E 0x28 TSTORE SELFBALANCE 0x1F 0xB9 BLOBBASEFEE 0xC2 PUSH6 0xFE3148D7A194 0x2C 0xBC DUP16 SUB 0xA5 0x25 SWAP6 SHR 0xF CALLDATALOAD 0xB4 PUSH11 0xCA464736F6C6343000818 STOP CALLER ", + "sourceMap": "533:3932:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;533:3932:25;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122033b9171e285d471fb94ac265fe3148d7a1942cbc8f03a525951c0f35b46a0ca464736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xB9 OR 0x1E 0x28 TSTORE SELFBALANCE 0x1F 0xB9 BLOBBASEFEE 0xC2 PUSH6 0xFE3148D7A194 0x2C 0xBC DUP16 SUB 0xA5 0x25 SWAP6 SHR 0xF CALLDATALOAD 0xB4 PUSH11 0xCA464736F6C6343000818 STOP CALLER ", + "sourceMap": "533:3932:25:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Helper to make usage of the `CREATE2` EVM opcode easier and safer. `CREATE2` can be used to compute in advance the address where a smart contract will be deployed, which allows for interesting new mechanisms known as 'counterfactual interactions'. See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more information.\",\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Create2.sol\":\"Create2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcf6fef9bdee0a2c32c287cc6aabdc9ec4f704aea12441fdb62ac7f887c8d75864736f6c63430008180033", + "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 0xDC 0xF6 INVALID 0xF9 0xBD 0xEE EXP 0x2C ORIGIN 0xC2 DUP8 0xCC PUSH11 0xABDC9EC4F704AEA12441FD 0xB6 0x2A 0xC7 0xF8 DUP8 0xC8 0xD7 PC PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "411:484:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;411:484:26;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dcf6fef9bdee0a2c32c287cc6aabdc9ec4f704aea12441fdb62ac7f887c8d75864736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xF6 INVALID 0xF9 0xBD 0xEE EXP 0x2C ORIGIN 0xC2 DUP8 0xCC PUSH11 0xABDC9EC4F704AEA12441FD 0xB6 0x2A 0xC7 0xF8 DUP8 0xC8 0xD7 PC PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "411:484:26:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "Panic": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fec73f632edd47d0e7ae9933b51e8f4da78eb465818c4263bebf6623ab05aff164736f6c63430008180033", + "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID 0xC7 EXTCODEHASH PUSH4 0x2EDD47D0 0xE7 0xAE SWAP10 CALLER 0xB5 0x1E DUP16 0x4D 0xA7 DUP15 0xB4 PUSH6 0x818C4263BEBF PUSH7 0x23AB05AFF16473 PUSH16 0x6C634300081800330000000000000000 ", + "sourceMap": "657:1315:27:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;657:1315:27;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fec73f632edd47d0e7ae9933b51e8f4da78eb465818c4263bebf6623ab05aff164736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID 0xC7 EXTCODEHASH PUSH4 0x2EDD47D0 0xE7 0xAE SWAP10 CALLER 0xB5 0x1E DUP16 0x4D 0xA7 DUP15 0xB4 PUSH6 0x818C4263BEBF PUSH7 0x23AB05AFF16473 PUSH16 0x6C634300081800330000000000000000 ", + "sourceMap": "657:1315:27:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "StorageSlot": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d2fe06b1bb59ae338afa04ee6dce686409d6cdc8b507ba3749c3e142db493ae64736f6c63430008180033", + "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 0xD 0x2F 0xE0 PUSH12 0x1BB59AE338AFA04EE6DCE686 BLOCKHASH SWAP14 PUSH13 0xDC8B507BA3749C3E142DB493AE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1407:2774:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1407:2774:28;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d2fe06b1bb59ae338afa04ee6dce686409d6cdc8b507ba3749c3e142db493ae64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD 0x2F 0xE0 PUSH12 0x1BB59AE338AFA04EE6DCE686 BLOCKHASH SWAP14 PUSH13 0xDC8B507BA3749C3E142DB493AE PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1407:2774:28:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + }, + { + "inputs": [], + "name": "StringsInvalidAddressFormat", + "type": "error" + }, + { + "inputs": [], + "name": "StringsInvalidChar", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220779d7f05846ec8176e828af80e678f3a79fc6a98180f601336ba44c21b486b1c64736f6c63430008180033", + "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 PUSH24 0x9D7F05846EC8176E828AF80E678F3A79FC6A98180F601336 0xBA PREVRANDAO 0xC2 SHL BASEFEE PUSH12 0x1C64736F6C63430008180033 ", + "sourceMap": "297:18980:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;297:18980:29;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220779d7f05846ec8176e828af80e678f3a79fc6a98180f601336ba44c21b486b1c64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0x9D7F05846EC8176E828AF80E678F3A79FC6A98180F601336 0xBA PREVRANDAO 0xC2 SHL BASEFEE PUSH12 0x1C64736F6C63430008180033 ", + "sourceMap": "297:18980:29:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "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": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a7690e42315e6899c9737c1a5db38b11240b326a07950b4befbf4ae90b02e56464736f6c63430008180033", + "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 0xA7 PUSH10 0xE42315E6899C9737C1A TSTORE 0xB3 DUP12 GT 0x24 SIGNEXTEND ORIGIN PUSH11 0x7950B4BEFBF4AE90B02E5 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "281:31863:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;281:31863:31;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a7690e42315e6899c9737c1a5db38b11240b326a07950b4befbf4ae90b02e56464736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 PUSH10 0xE42315E6899C9737C1A TSTORE 0xB3 DUP12 GT 0x24 SIGNEXTEND ORIGIN PUSH11 0x7950B4BEFBF4AE90B02E5 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "281:31863:31:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@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": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201c97bba8d553a67561101942b2a9afa3628667de55efed8df898d3aab783793c64736f6c63430008180033", + "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR SWAP8 0xBB 0xA8 0xD5 MSTORE8 0xA6 PUSH22 0x61101942B2A9AFA3628667DE55EFED8DF898D3AAB783 PUSH26 0x3C64736F6C634300081800330000000000000000000000000000 ", + "sourceMap": "769:34173:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;769:34173:32;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201c97bba8d553a67561101942b2a9afa3628667de55efed8df898d3aab783793c64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR SWAP8 0xBB 0xA8 0xD5 MSTORE8 0xA6 PUSH22 0x61101942B2A9AFA3628667DE55EFED8DF898D3AAB783 PUSH26 0x3C64736F6C634300081800330000000000000000000000000000 ", + "sourceMap": "769:34173:32:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220680917e17f715636462292a9029e0058e294bcd5d4d4fc83a420501ebb37147664736f6c63430008180033", + "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x917E17F7156364622 SWAP3 0xA9 MUL SWAP15 STOP PC 0xE2 SWAP5 0xBC 0xD5 0xD4 0xD4 0xFC DUP4 LOG4 KECCAK256 POP 0x1E 0xBB CALLDATACOPY EQ PUSH23 0x64736F6C63430008180033000000000000000000000000 ", + "sourceMap": "258:2354:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;258:2354:33;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220680917e17f715636462292a9029e0058e294bcd5d4d4fc83a420501ebb37147664736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x917E17F7156364622 SWAP3 0xA9 MUL SWAP15 STOP PC 0xE2 SWAP5 0xBC 0xD5 0xD4 0xD4 0xFC DUP4 LOG4 KECCAK256 POP 0x1E 0xBB CALLDATACOPY EQ PUSH23 0x64736F6C63430008180033000000000000000000000000 ", + "sourceMap": "258:2354:33:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":200},\"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}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/structs/BitMaps.sol": { + "BitMaps": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca502973cc59ca2ae5452a2ae628cad21028d68c53cd33d80cd593cb51a3e3bd64736f6c63430008180033", + "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 0xCA POP 0x29 PUSH20 0xCC59CA2AE5452A2AE628CAD21028D68C53CD33D8 0xC 0xD5 SWAP4 0xCB MLOAD LOG3 0xE3 0xBD PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "858:1161:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;858:1161:34;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca502973cc59ca2ae5452a2ae628cad21028d68c53cd33d80cd593cb51a3e3bd64736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA POP 0x29 PUSH20 0xCC59CA2AE5452A2AE628CAD21028D68C53CD33D8 0xC 0xD5 SWAP4 0xCB MLOAD LOG3 0xE3 0xBD PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "858:1161:34:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing uint256 to bool mapping in a compact and efficient way, provided the keys are sequential. Largely inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor]. BitMaps pack 256 booleans across each bit of a single 256-bit slot of `uint256` type. Hence booleans corresponding to 256 _sequential_ indices would only consume a single slot, unlike the regular `bool` which would consume an entire slot for a single value. This results in gas savings in two ways: - Setting a zero value to non-zero only once every 256 times - Accessing the same warm slot for every 256 _sequential_ indices\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/BitMaps.sol\":\"BitMaps\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/DataProtectorSharing.sol": { + "DataProtectorSharing": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_proxy", + "type": "address" + }, + { + "internalType": "contract IRegistry", + "name": "protectedDataRegistry_", + "type": "address" + }, + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "addOnlyAppWhitelistRegistry_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "app", + "type": "address" + } + ], + "name": "AppNotWhitelistedForProtectedData", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "CollectionNotEmpty", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "_duration", + "type": "uint48" + } + ], + "name": "DurationInvalid", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + }, + { + "inputs": [], + "name": "EmptyCallData", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "InvalidAppWhitelist", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "InvalidPriceForPurchase", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "InvalidRentingParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "InvalidSubscriptionParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedDatas", + "type": "address" + } + ], + "name": "NoValidRentalOrSubscription", + "type": "error" + }, + { + "inputs": [], + "name": "NotAnOwnerOrApprovedOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "NotCollectionOperator", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "OnGoingCollectionSubscriptions", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_caller", + "type": "address" + } + ], + "name": "OnlyPocoCallerAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "ProctedDataInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataCurrentlyBeingRented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataForSale", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotForSale", + "type": "error" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "workerpoolOrder", + "type": "tuple" + } + ], + "name": "WorkerpoolOrderNotFree", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "renter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewRental", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "subscriber", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "NewSubscriptionParams", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "ProtectedDataAddedForRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "ProtectedDataAddedForSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAddedForSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "dealId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IDataProtectorSharing.Mode", + "name": "mode", + "type": "uint8" + } + ], + "name": "ProtectedDataConsumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenIdFrom", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataSold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "oldCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "addOnlyAppWhitelist", + "type": "address" + } + ], + "name": "ProtectedDataTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "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": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "ADD_ONLY_APP_WHITELIST_REGISTRY", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "addProtectedDataToCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "buyProtectedData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "collectionDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "size", + "type": "uint256" + }, + { + "internalType": "uint48", + "name": "lastSubscriptionExpiration", + "type": "uint48" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "_workerpoolOrder", + "type": "tuple" + }, + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "consumeProtectedData", + "outputs": [ + { + "internalType": "bytes32", + "name": "dealid", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "createCollection", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "earning", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_subscriberAddress", + "type": "address" + } + ], + "name": "getCollectionSubscriber", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_renterAddress", + "type": "address" + } + ], + "name": "getProtectedDataRenter", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "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": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "protectedDataDetails", + "outputs": [ + { + "internalType": "uint256", + "name": "collection", + "type": "uint256" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "addOnlyAppWhitelist", + "type": "address" + }, + { + "internalType": "uint48", + "name": "lastRentalExpiration", + "type": "uint48" + }, + { + "internalType": "bool", + "name": "inSubscription", + "type": "bool" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "bool", + "name": "isForSale", + "type": "bool" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "internalType": "struct ISale.SellingParams", + "name": "sellingParams", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_extraData", + "type": "bytes" + } + ], + "name": "receiveApproval", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "rentProtectedData", + "outputs": [ + { + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "setProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "setProtectedDataToRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "setProtectedDataToSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "setSubscriptionParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "subscribeToCollection", + "outputs": [ + { + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "iexecResultStorageProvider_", + "type": "string" + } + ], + "name": "updateEnv", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_10813": { + "entryPoint": null, + "id": 10813, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_9326": { + "entryPoint": null, + "id": 9326, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_disableInitializers_584": { + "entryPoint": 100, + "id": 584, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_629": { + "entryPoint": null, + "id": 629, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_615": { + "entryPoint": null, + "id": 615, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_contract$_IRegistry_$11628t_contract$_AddOnlyAppWhitelistRegistry_$12170_fromMemory": { + "entryPoint": 302, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "validator_revert_address": { + "entryPoint": 280, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:932:51", + "nodeType": "YulBlock", + "src": "0:932:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "59:86:51", + "nodeType": "YulBlock", + "src": "59:86:51", + "statements": [ + { + "body": { + "nativeSrc": "123:16:51", + "nodeType": "YulBlock", + "src": "123:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "132:1:51", + "nodeType": "YulLiteral", + "src": "132:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "135:1:51", + "nodeType": "YulLiteral", + "src": "135:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "125:6:51", + "nodeType": "YulIdentifier", + "src": "125:6:51" + }, + "nativeSrc": "125:12:51", + "nodeType": "YulFunctionCall", + "src": "125:12:51" + }, + "nativeSrc": "125:12:51", + "nodeType": "YulExpressionStatement", + "src": "125:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "82:5:51", + "nodeType": "YulIdentifier", + "src": "82:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:51", + "nodeType": "YulIdentifier", + "src": "93:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "108:3:51", + "nodeType": "YulLiteral", + "src": "108:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "113:1:51", + "nodeType": "YulLiteral", + "src": "113:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "104:3:51", + "nodeType": "YulIdentifier", + "src": "104:3:51" + }, + "nativeSrc": "104:11:51", + "nodeType": "YulFunctionCall", + "src": "104:11:51" + }, + { + "kind": "number", + "nativeSrc": "117:1:51", + "nodeType": "YulLiteral", + "src": "117:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "100:3:51", + "nodeType": "YulIdentifier", + "src": "100:3:51" + }, + "nativeSrc": "100:19:51", + "nodeType": "YulFunctionCall", + "src": "100:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "89:3:51", + "nodeType": "YulIdentifier", + "src": "89:3:51" + }, + "nativeSrc": "89:31:51", + "nodeType": "YulFunctionCall", + "src": "89:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "79:2:51", + "nodeType": "YulIdentifier", + "src": "79:2:51" + }, + "nativeSrc": "79:42:51", + "nodeType": "YulFunctionCall", + "src": "79:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "72:6:51", + "nodeType": "YulIdentifier", + "src": "72:6:51" + }, + "nativeSrc": "72:50:51", + "nodeType": "YulFunctionCall", + "src": "72:50:51" + }, + "nativeSrc": "69:70:51", + "nodeType": "YulIf", + "src": "69:70:51" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "14:131:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "48:5:51", + "nodeType": "YulTypedName", + "src": "48:5:51", + "type": "" + } + ], + "src": "14:131:51" + }, + { + "body": { + "nativeSrc": "321:404:51", + "nodeType": "YulBlock", + "src": "321:404:51", + "statements": [ + { + "body": { + "nativeSrc": "367:16:51", + "nodeType": "YulBlock", + "src": "367:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "376:1:51", + "nodeType": "YulLiteral", + "src": "376:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "379:1:51", + "nodeType": "YulLiteral", + "src": "379:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "369:6:51", + "nodeType": "YulIdentifier", + "src": "369:6:51" + }, + "nativeSrc": "369:12:51", + "nodeType": "YulFunctionCall", + "src": "369:12:51" + }, + "nativeSrc": "369:12:51", + "nodeType": "YulExpressionStatement", + "src": "369:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "342:7:51", + "nodeType": "YulIdentifier", + "src": "342:7:51" + }, + { + "name": "headStart", + "nativeSrc": "351:9:51", + "nodeType": "YulIdentifier", + "src": "351:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "338:3:51", + "nodeType": "YulIdentifier", + "src": "338:3:51" + }, + "nativeSrc": "338:23:51", + "nodeType": "YulFunctionCall", + "src": "338:23:51" + }, + { + "kind": "number", + "nativeSrc": "363:2:51", + "nodeType": "YulLiteral", + "src": "363:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "334:3:51", + "nodeType": "YulIdentifier", + "src": "334:3:51" + }, + "nativeSrc": "334:32:51", + "nodeType": "YulFunctionCall", + "src": "334:32:51" + }, + "nativeSrc": "331:52:51", + "nodeType": "YulIf", + "src": "331:52:51" + }, + { + "nativeSrc": "392:29:51", + "nodeType": "YulVariableDeclaration", + "src": "392:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "411:9:51", + "nodeType": "YulIdentifier", + "src": "411:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "405:5:51", + "nodeType": "YulIdentifier", + "src": "405:5:51" + }, + "nativeSrc": "405:16:51", + "nodeType": "YulFunctionCall", + "src": "405:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "396:5:51", + "nodeType": "YulTypedName", + "src": "396:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "455:5:51", + "nodeType": "YulIdentifier", + "src": "455:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "430:24:51", + "nodeType": "YulIdentifier", + "src": "430:24:51" + }, + "nativeSrc": "430:31:51", + "nodeType": "YulFunctionCall", + "src": "430:31:51" + }, + "nativeSrc": "430:31:51", + "nodeType": "YulExpressionStatement", + "src": "430:31:51" + }, + { + "nativeSrc": "470:15:51", + "nodeType": "YulAssignment", + "src": "470:15:51", + "value": { + "name": "value", + "nativeSrc": "480:5:51", + "nodeType": "YulIdentifier", + "src": "480:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "470:6:51", + "nodeType": "YulIdentifier", + "src": "470:6:51" + } + ] + }, + { + "nativeSrc": "494:40:51", + "nodeType": "YulVariableDeclaration", + "src": "494:40:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "519:9:51", + "nodeType": "YulIdentifier", + "src": "519:9:51" + }, + { + "kind": "number", + "nativeSrc": "530:2:51", + "nodeType": "YulLiteral", + "src": "530:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "515:3:51", + "nodeType": "YulIdentifier", + "src": "515:3:51" + }, + "nativeSrc": "515:18:51", + "nodeType": "YulFunctionCall", + "src": "515:18:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "509:5:51", + "nodeType": "YulIdentifier", + "src": "509:5:51" + }, + "nativeSrc": "509:25:51", + "nodeType": "YulFunctionCall", + "src": "509:25:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "498:7:51", + "nodeType": "YulTypedName", + "src": "498:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "568:7:51", + "nodeType": "YulIdentifier", + "src": "568:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "543:24:51", + "nodeType": "YulIdentifier", + "src": "543:24:51" + }, + "nativeSrc": "543:33:51", + "nodeType": "YulFunctionCall", + "src": "543:33:51" + }, + "nativeSrc": "543:33:51", + "nodeType": "YulExpressionStatement", + "src": "543:33:51" + }, + { + "nativeSrc": "585:17:51", + "nodeType": "YulAssignment", + "src": "585:17:51", + "value": { + "name": "value_1", + "nativeSrc": "595:7:51", + "nodeType": "YulIdentifier", + "src": "595:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "585:6:51", + "nodeType": "YulIdentifier", + "src": "585:6:51" + } + ] + }, + { + "nativeSrc": "611:40:51", + "nodeType": "YulVariableDeclaration", + "src": "611:40:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "636:9:51", + "nodeType": "YulIdentifier", + "src": "636:9:51" + }, + { + "kind": "number", + "nativeSrc": "647:2:51", + "nodeType": "YulLiteral", + "src": "647:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "632:3:51", + "nodeType": "YulIdentifier", + "src": "632:3:51" + }, + "nativeSrc": "632:18:51", + "nodeType": "YulFunctionCall", + "src": "632:18:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "626:5:51", + "nodeType": "YulIdentifier", + "src": "626:5:51" + }, + "nativeSrc": "626:25:51", + "nodeType": "YulFunctionCall", + "src": "626:25:51" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "615:7:51", + "nodeType": "YulTypedName", + "src": "615:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "685:7:51", + "nodeType": "YulIdentifier", + "src": "685:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "660:24:51", + "nodeType": "YulIdentifier", + "src": "660:24:51" + }, + "nativeSrc": "660:33:51", + "nodeType": "YulFunctionCall", + "src": "660:33:51" + }, + "nativeSrc": "660:33:51", + "nodeType": "YulExpressionStatement", + "src": "660:33:51" + }, + { + "nativeSrc": "702:17:51", + "nodeType": "YulAssignment", + "src": "702:17:51", + "value": { + "name": "value_2", + "nativeSrc": "712:7:51", + "nodeType": "YulIdentifier", + "src": "712:7:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "702:6:51", + "nodeType": "YulIdentifier", + "src": "702:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_contract$_IRegistry_$11628t_contract$_AddOnlyAppWhitelistRegistry_$12170_fromMemory", + "nativeSrc": "150:575:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "271:9:51", + "nodeType": "YulTypedName", + "src": "271:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "282:7:51", + "nodeType": "YulTypedName", + "src": "282:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "294:6:51", + "nodeType": "YulTypedName", + "src": "294:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "302:6:51", + "nodeType": "YulTypedName", + "src": "302:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "310:6:51", + "nodeType": "YulTypedName", + "src": "310:6:51", + "type": "" + } + ], + "src": "150:575:51" + }, + { + "body": { + "nativeSrc": "829:101:51", + "nodeType": "YulBlock", + "src": "829:101:51", + "statements": [ + { + "nativeSrc": "839:26:51", + "nodeType": "YulAssignment", + "src": "839:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "851:9:51", + "nodeType": "YulIdentifier", + "src": "851:9:51" + }, + { + "kind": "number", + "nativeSrc": "862:2:51", + "nodeType": "YulLiteral", + "src": "862:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "847:3:51", + "nodeType": "YulIdentifier", + "src": "847:3:51" + }, + "nativeSrc": "847:18:51", + "nodeType": "YulFunctionCall", + "src": "847:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "839:4:51", + "nodeType": "YulIdentifier", + "src": "839:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "881:9:51", + "nodeType": "YulIdentifier", + "src": "881:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "896:6:51", + "nodeType": "YulIdentifier", + "src": "896:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "912:2:51", + "nodeType": "YulLiteral", + "src": "912:2:51", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "916:1:51", + "nodeType": "YulLiteral", + "src": "916:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "908:3:51", + "nodeType": "YulIdentifier", + "src": "908:3:51" + }, + "nativeSrc": "908:10:51", + "nodeType": "YulFunctionCall", + "src": "908:10:51" + }, + { + "kind": "number", + "nativeSrc": "920:1:51", + "nodeType": "YulLiteral", + "src": "920:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "904:3:51", + "nodeType": "YulIdentifier", + "src": "904:3:51" + }, + "nativeSrc": "904:18:51", + "nodeType": "YulFunctionCall", + "src": "904:18:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "892:3:51", + "nodeType": "YulIdentifier", + "src": "892:3:51" + }, + "nativeSrc": "892:31:51", + "nodeType": "YulFunctionCall", + "src": "892:31:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "874:6:51", + "nodeType": "YulIdentifier", + "src": "874:6:51" + }, + "nativeSrc": "874:50:51", + "nodeType": "YulFunctionCall", + "src": "874:50:51" + }, + "nativeSrc": "874:50:51", + "nodeType": "YulExpressionStatement", + "src": "874:50:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "730:200:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "798:9:51", + "nodeType": "YulTypedName", + "src": "798:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "809:6:51", + "nodeType": "YulTypedName", + "src": "809:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "820:4:51", + "nodeType": "YulTypedName", + "src": "820:4:51", + "type": "" + } + ], + "src": "730:200:51" + } + ] + }, + "contents": "{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_contract$_IRegistry_$11628t_contract$_AddOnlyAppWhitelistRegistry_$12170_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := mload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\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": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60e06040523480156200001157600080fd5b50604051620049a2380380620049a283398101604081905262000034916200012e565b6001600160a01b0383166080526200004b62000064565b6001600160a01b0391821660c0521660a0525062000182565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000b55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001155780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6001600160a01b03811681146200011557600080fd5b6000806000606084860312156200014457600080fd5b8351620001518162000118565b6020850151909350620001648162000118565b6040850151909250620001778162000118565b809150509250925092565b60805160a05160c0516147956200020d60003960008181610b960152818161144f01528181611c5201528181611cf101528181611d920152611f8c0152600081816104ca0152610b0b015260008181610ff9015281816115af01528181611e3001528181611fea015281816122b7015281816124fe01528181612ab20152612cf001526147956000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c63430008180033", + "opcodes": "PUSH1 0xE0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x49A2 CODESIZE SUB DUP1 PUSH3 0x49A2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x12E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x80 MSTORE PUSH3 0x4B PUSH3 0x64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0xC0 MSTORE AND PUSH1 0xA0 MSTORE POP PUSH3 0x182 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0xB5 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 PUSH3 0x115 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 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH3 0x151 DUP2 PUSH3 0x118 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x164 DUP2 PUSH3 0x118 JUMP JUMPDEST PUSH1 0x40 DUP6 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x177 DUP2 PUSH3 0x118 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH2 0x4795 PUSH3 0x20D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0xB96 ADD MSTORE DUP2 DUP2 PUSH2 0x144F ADD MSTORE DUP2 DUP2 PUSH2 0x1C52 ADD MSTORE DUP2 DUP2 PUSH2 0x1CF1 ADD MSTORE DUP2 DUP2 PUSH2 0x1D92 ADD MSTORE PUSH2 0x1F8C ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x4CA ADD MSTORE PUSH2 0xB0B ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0xFF9 ADD MSTORE DUP2 DUP2 PUSH2 0x15AF ADD MSTORE DUP2 DUP2 PUSH2 0x1E30 ADD MSTORE DUP2 DUP2 PUSH2 0x1FEA ADD MSTORE DUP2 DUP2 PUSH2 0x22B7 ADD MSTORE DUP2 DUP2 PUSH2 0x24FE ADD MSTORE DUP2 DUP2 PUSH2 0x2AB2 ADD MSTORE PUSH2 0x2CF0 ADD MSTORE PUSH2 0x4795 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 0x27F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8129FC1C GT PUSH2 0x15C JUMPI DUP1 PUSH4 0xD0B06C66 GT PUSH2 0xCE JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x70F JUMPI DUP1 PUSH4 0xEA46D1AA EQ PUSH2 0x722 JUMPI DUP1 PUSH4 0xF4C0FAB4 EQ PUSH2 0x767 JUMPI DUP1 PUSH4 0xFE4C31A4 EQ PUSH2 0x787 JUMPI DUP1 PUSH4 0xFF19D9DF EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0xFF811F60 EQ PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD0B06C66 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xD3C52389 EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0xD835C337 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xDC30B8FC EQ PUSH2 0x687 JUMPI DUP1 PUSH4 0xDFE0BC11 EQ PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x120 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x598 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5A0 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x5D3 JUMPI DUP1 PUSH4 0xC3533BA2 EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x628 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0x8F4FFCB1 EQ PUSH2 0x540 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x553 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x9A82C2BD EQ PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x4B2 JUMPI DUP1 PUSH4 0x4AFECAFF EQ PUSH2 0x4C5 JUMPI DUP1 PUSH4 0x53574F9E EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x4FF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x512 JUMPI DUP1 PUSH4 0x72D570CE EQ PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0x328CB1F7 EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x479 JUMPI DUP1 PUSH4 0x40E6158D EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB9F187B GT PUSH2 0x247 JUMPI DUP1 PUSH4 0xB9F187B EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x185E4E8D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x2069E953 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D0B634 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2C1 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x301 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x297 PUSH2 0x292 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x7C0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2AC PUSH2 0x2A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3550 JUMP JUMPDEST PUSH2 0x836 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C9 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x35BD JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x35E9 JUMP JUMPDEST PUSH2 0x900 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x36A0 JUMP JUMPDEST PUSH2 0x90F JUMP JUMPDEST PUSH2 0x33A PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x36E8 JUMP JUMPDEST PUSH2 0x92B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x93C JUMP JUMPDEST PUSH2 0x379 PUSH2 0x374 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x395 CALLDATASIZE PUSH1 0x4 PUSH2 0x3767 JUMP JUMPDEST PUSH2 0x9D9 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x3BB CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x467 PUSH2 0x3CE CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP1 DUP3 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV PUSH5 0xFFFFFFFFFF AND DUP3 DUP8 ADD MSTORE DUP7 MLOAD DUP1 DUP9 ADD SWAP1 SWAP8 MSTORE PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP9 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV SWAP1 SWAP5 AND SWAP5 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP1 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP4 PUSH1 0x1 PUSH1 0xA0 SHL DUP4 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP4 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 SWAP4 DIV SWAP1 SWAP3 AND SWAP2 SWAP1 DUP7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x37D8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x487 CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x3853 JUMP JUMPDEST PUSH2 0xADA JUMP JUMPDEST PUSH2 0x297 PUSH2 0x4AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3767 JUMP JUMPDEST PUSH2 0xD34 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x2E9 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x4FA CALLDATASIZE PUSH1 0x4 PUSH2 0x38AA JUMP JUMPDEST PUSH2 0xD5B JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0xD67 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x520 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST PUSH2 0x297 PUSH2 0xE47 JUMP JUMPDEST PUSH2 0x2AC PUSH2 0x54E CALLDATASIZE PUSH1 0x4 PUSH2 0x38EA JUMP JUMPDEST PUSH2 0xFEC JUMP JUMPDEST PUSH2 0x2AC PUSH2 0x561 CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0x116E JUMP JUMPDEST PUSH2 0x2C9 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x581 PUSH2 0x57C CALLDATASIZE PUSH1 0x4 PUSH2 0x39FD JUMP JUMPDEST PUSH2 0x11E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x379 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x5AE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A41 JUMP JUMPDEST PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0x5C6 PUSH2 0x5C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x1204 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x3AE3 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x5E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x36E8 JUMP JUMPDEST PUSH2 0x12EB JUMP JUMPDEST PUSH2 0x581 PUSH2 0x5F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH6 0xFFFFFFFFFFFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C9 PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x649 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x1377 JUMP JUMPDEST PUSH2 0x581 PUSH2 0x65C CALLDATASIZE PUSH1 0x4 PUSH2 0x3B47 JUMP JUMPDEST PUSH2 0x1505 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0x1512 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x682 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B6B JUMP JUMPDEST PUSH2 0x152E JUMP JUMPDEST PUSH2 0x297 PUSH2 0x695 CALLDATASIZE PUSH1 0x4 PUSH2 0x3BB9 JUMP JUMPDEST PUSH2 0x1675 JUMP JUMPDEST PUSH2 0x700 PUSH2 0x6A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP2 AND DUP6 MSTORE PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3BE7 JUMP JUMPDEST PUSH2 0x2AC PUSH2 0x71D CALLDATASIZE PUSH1 0x4 PUSH2 0x3C23 JUMP JUMPDEST PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x581 PUSH2 0x730 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH6 0xFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x775 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x795 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x17F0 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x7A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C69 JUMP JUMPDEST PUSH2 0x186F JUMP JUMPDEST PUSH2 0x297 PUSH2 0x7BB CALLDATASIZE PUSH1 0x4 PUSH2 0x3C8D JUMP JUMPDEST PUSH2 0x18C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x7E3 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x3FB0561A34A824AD00E49427875F49120AEBA57A15999BAEF5FBAE14E664D972 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x841 DUP3 PUSH2 0x19C1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x867 SWAP1 PUSH2 0x3CBA 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 0x893 SWAP1 PUSH2 0x3CBA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8E0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8B5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8E0 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 0x8C3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F6 DUP3 PUSH2 0x19E6 JUMP JUMPDEST POP PUSH2 0x841 DUP3 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 CALLER PUSH2 0x1A58 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91A DUP2 PUSH2 0x1A65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x926 DUP4 DUP3 PUSH2 0x3D36 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x95F DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH14 0xFFFFFFFFFF000000000000000000 NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xB76A4377A20C8298064CD897C0095E802F478CCB93D1150D391A2DD268D7E5FB SWAP2 ADD PUSH2 0x829 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD PUSH2 0x9C8 SWAP1 PUSH2 0x3E0B JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP1 POP PUSH2 0x841 DUP4 DUP3 PUSH2 0x1A6F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA08 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA15 DUP4 DUP4 CALLER PUSH2 0x1A89 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA63 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9FF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xA94 DUP3 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0xA9D DUP2 PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0x1B05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xAD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x926 DUP3 DUP3 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xAE3 DUP4 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xAEC DUP3 PUSH2 0x1C2D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB52 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 0xB76 SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x42842E0E SWAP1 DUP3 SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE5 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 0xC09 SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 DUP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP7 DUP9 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE DUP8 DUP2 SSTORE DUP8 DUP5 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 SWAP3 SWAP1 SWAP2 PUSH2 0xCC6 SWAP1 DUP5 SWAP1 PUSH2 0x3E41 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0xCD6 SWAP1 POP DUP4 DUP4 PUSH2 0x1E1A JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP4 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x701E4990DF91F34F0C6E42C039715E077AA32F81AF006F9F5E8165CBDA0FDDDD SWAP1 PUSH1 0x80 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0x926 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x12EB JUMP JUMPDEST PUSH2 0x90B PUSH1 0x0 DUP3 CALLER PUSH2 0x1A89 JUMP JUMPDEST PUSH2 0x926 DUP4 CALLER DUP5 DUP5 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x841 DUP3 PUSH2 0x19E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDAD JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xDF1 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xDFA DUP2 PUSH2 0x2141 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xD0 SHL NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x619BC890D3C88741CAABA887A528D314FE6FA1C2BA35730EB1DB180C8BDC1757 SWAP2 ADD PUSH2 0x829 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE51 PUSH2 0x217F 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 0xE78 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xE94 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xEA2 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xEC0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xEEA JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xF5E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6945786563204461746150726F746563746F7253686172696E67000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x69457865634461746150726F746563746F7253686172696E6700000000000000 DUP2 MSTORE POP PUSH2 0x21A8 JUMP JUMPDEST PUSH2 0xF66 PUSH2 0x21BA JUMP JUMPDEST PUSH2 0xF6E PUSH2 0x21BA JUMP JUMPDEST PUSH2 0xF79 PUSH1 0x0 CALLER PUSH2 0x1B05 JUMP JUMPDEST POP PUSH2 0xF9F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x69706673 PUSH1 0xE0 SHL DUP2 MSTORE POP PUSH2 0x90F JUMP JUMPDEST DUP4 ISZERO PUSH2 0xFE5 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 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCA41B301 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 SUB PUSH2 0x105B JUMPI PUSH1 0x40 MLOAD PUSH4 0x3E0F8361 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x106A PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0x3E54 JUMP JUMPDEST PUSH2 0x1073 SWAP2 PUSH2 0x3E7E JUMP JUMPDEST SWAP1 POP PUSH4 0x2C3ADC77 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND ADD PUSH2 0x10C6 JUMPI PUSH1 0x0 DUP1 PUSH2 0x109D DUP6 PUSH1 0x4 DUP2 DUP10 PUSH2 0x3E54 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x10AA SWAP2 SWAP1 PUSH2 0x3B47 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x10B9 DUP3 DUP11 DUP4 PUSH2 0x21C4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1165 JUMP JUMPDEST PUSH4 0x657D3D43 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND ADD PUSH2 0x110A JUMPI PUSH1 0x0 DUP1 PUSH2 0x10EE DUP6 PUSH1 0x4 DUP2 DUP10 PUSH2 0x3E54 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x10FB SWAP2 SWAP1 PUSH2 0x39FD JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x10B9 DUP3 DUP11 DUP4 PUSH2 0x23B6 JUMP JUMPDEST PUSH4 0x56545831 PUSH1 0xE1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND ADD PUSH2 0x115F JUMPI PUSH1 0x0 DUP1 DUP1 PUSH2 0x1133 DUP7 PUSH1 0x4 DUP2 DUP11 PUSH2 0x3E54 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x1140 SWAP2 SWAP1 PUSH2 0x38AA JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x1152 DUP4 DUP12 DUP5 DUP5 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x1165 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x867 SWAP1 PUSH2 0x3CBA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F2 DUP4 CALLER DUP5 PUSH2 0x23B6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x90B CALLER DUP4 DUP4 PUSH2 0x260E 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 0x122E JUMPI PUSH2 0x122E PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1261 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x124C JUMPI SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12E3 JUMPI PUSH2 0x12BE ADDRESS DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x1285 JUMPI PUSH2 0x1285 PUSH2 0x3EBF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1297 SWAP2 SWAP1 PUSH2 0x3ED5 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12AA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F22 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x26BF JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12D0 JUMPI PUSH2 0x12D0 PUSH2 0x3EBF JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1267 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12F6 DUP5 DUP5 DUP5 PUSH2 0x9D9 JUMP JUMPDEST PUSH2 0xA63 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x272C JUMP JUMPDEST PUSH1 0x60 PUSH2 0x130E DUP3 PUSH2 0x19E6 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1326 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1346 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x11F2 JUMP JUMPDEST DUP1 PUSH2 0x1350 DUP5 PUSH2 0x2856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1361 SWAP3 SWAP2 SWAP1 PUSH2 0x3F49 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1399 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x13A2 DUP2 PUSH2 0x2141 JUMP JUMPDEST PUSH2 0x13AB DUP3 PUSH2 0x28E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x4 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE DUP5 DUP5 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH2 0x141F SWAP1 DUP5 SWAP1 PUSH2 0x3EAC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1493 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x701E4990DF91F34F0C6E42C039715E077AA32F81AF006F9F5E8165CBDA0FDDDD SWAP3 POP PUSH1 0x80 ADD SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F2 DUP4 CALLER DUP5 PUSH2 0x21C4 JUMP JUMPDEST PUSH2 0x151B DUP3 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x1524 DUP2 PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x153B DUP6 DUP6 PUSH2 0x293E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP3 SWAP4 POP SWAP2 PUSH2 0x1568 SWAP2 DUP9 SWAP2 AND PUSH2 0x2A31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1575 DUP6 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1595 DUP9 DUP8 PUSH2 0x158B PUSH1 0x20 DUP12 ADD DUP12 PUSH2 0x351D JUMP JUMPDEST DUP11 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5586535 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x156194D4 SWAP1 PUSH2 0x15EA SWAP1 DUP6 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4283 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1609 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 0x162D SWAP2 SWAP1 PUSH2 0x42D0 JUMP JUMPDEST SWAP5 POP PUSH32 0x9BB563D4351A41CFCB2E1A9E3CAABD85077D013AFA5EF5B60CD460C56F7FF12 DUP6 DUP10 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1662 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x431D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1698 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x16A1 DUP5 PUSH2 0x28E8 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x16E0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x123C6C3B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND ISZERO PUSH2 0x1723 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E6991F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP6 AND PUSH2 0x100 MUL PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP2 AND OR PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xEC81370602852D2A562027F306877D179384B7DF480E4F2C68D233DE886CFD92 SWAP1 PUSH2 0xD26 SWAP1 DUP4 SWAP1 DUP8 SWAP1 DUP8 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1813 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x181C DUP4 PUSH2 0x2D6A JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xD0 SHL NOT AND PUSH1 0x1 PUSH1 0xD0 SHL OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x806E162C7EF4165A275B5DF55317F9F7BE1E2BB257C6CC87FBBB0FABB6B2F97B SWAP2 ADD PUSH2 0x829 JUMP JUMPDEST PUSH2 0x1878 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 PUSH1 0x2 ADD PUSH2 0x1895 DUP3 DUP3 PUSH2 0x43B2 JUMP JUMPDEST SWAP1 POP POP PUSH32 0xD33315CB494162D759F3AB7D813BE7D0A6E0E70F717FC31C258F84A729004F78 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x14F9 SWAP3 SWAP2 SWAP1 PUSH2 0x43F2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x18EC DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x18F5 DUP5 PUSH2 0x2D6A JUMP JUMPDEST PUSH2 0x1905 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x4406 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x1946 JUMPI PUSH2 0x1923 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x4406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2A94078B PUSH1 0xE0 SHL DUP2 MSTORE PUSH5 0xFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST DUP3 PUSH1 0x2 DUP4 ADD PUSH2 0x1955 DUP3 DUP3 PUSH2 0x43B2 JUMP JUMPDEST SWAP1 POP POP PUSH32 0x796FCA2DE82B5272091DDFD0AB5D10F279E96EB8F47150D0F63F8411399B32AC DUP2 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xD26 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4423 JUMP JUMPDEST PUSH2 0x199E PUSH2 0x1997 DUP3 PUSH2 0xD67 JUMP JUMPDEST CALLER DUP4 PUSH2 0x2DB2 JUMP JUMPDEST PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x73ED0187 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x841 JUMPI POP PUSH2 0x841 DUP3 PUSH2 0x2E17 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x19F2 DUP4 PUSH2 0x2E67 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x841 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x926 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2EA1 JUMP JUMPDEST PUSH2 0x19BE DUP2 CALLER PUSH2 0x2FB7 JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2FF0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x1AFA JUMPI DUP1 SLOAD ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x86ACF7FD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND GT ISZERO PUSH2 0x1AFA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4AEE26F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x1165 DUP6 DUP6 DUP6 PUSH2 0x3008 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1B20 DUP5 DUP5 PUSH2 0x116E JUMP JUMPDEST PUSH2 0x1BA0 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1B56 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x841 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x841 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1BCC DUP5 DUP5 PUSH2 0x116E JUMP JUMPDEST ISZERO PUSH2 0x1BA0 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD DUP2 SWAP1 MSTORE SWAP2 PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C99 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 0x1CBD SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x1D67 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x20604BF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x81812FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D38 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 0x1D5C SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 PUSH2 0x1DFD JUMPI POP PUSH1 0x40 MLOAD PUSH4 0xE985E9C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xE985E9C5 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DD9 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 0x1DFD SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST PUSH2 0x926 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEDE508E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E22 PUSH2 0x34AA JUMP JUMPDEST PUSH2 0x1E2C DUP4 DUP4 PUSH2 0x2A31 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4B747106 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1E81 JUMPI PUSH2 0x1E81 PUSH2 0x42E9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x1EB8 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EE6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1F11 DUP6 PUSH2 0x3112 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP4 DUP2 AND PUSH2 0x100 SWAP1 SWAP3 DIV AND EQ PUSH2 0x1F5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x553509 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FE4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP6 PUSH2 0x2025 DUP5 PUSH1 0x0 ADD SLOAD PUSH2 0xD67 JUMP JUMPDEST PUSH1 0x4 DUP6 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0xE0 DUP7 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH2 0x205B SWAP5 SWAP4 SWAP3 PUSH2 0x100 SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND SWAP2 ADD PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207A 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 0x209E SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE DUP8 AND DUP3 DUP3 ADD MSTORE MLOAD PUSH32 0x39E9DE3F8FB17AA9D0E1DF99A67605205F5E86D0AC765EE0299FB8EA4F2BAA21 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x4 ADD DUP1 SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4AEE26F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x21B0 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 PUSH2 0x317E JUMP JUMPDEST PUSH2 0x21C2 PUSH2 0x3159 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO DUP1 PUSH2 0x220D JUMPI POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x222F JUMPI DUP5 DUP4 PUSH1 0x40 MLOAD PUSH4 0x2441E4E3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FF SWAP3 SWAP2 SWAP1 PUSH2 0x44E5 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x224C SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x4513 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP5 ADD SLOAD SWAP3 SWAP5 POP PUSH2 0x2295 SWAP3 SWAP1 SWAP2 AND PUSH2 0x31AF JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP6 PUSH2 0x22EE DUP9 PUSH2 0xD67 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x231F SWAP4 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND SWAP1 PUSH1 0x4 ADD PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x233E 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 0x2362 SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH6 0xFFFFFFFFFFFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH32 0x2366234D2D402EFC07153C0D03FC5EC74A9EF5496E1ACCADC4B1AAF51D7F73B9 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP3 SUB PUSH2 0x240B JUMPI PUSH1 0x40 MLOAD PUSH4 0x14460185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ ISZERO DUP1 PUSH2 0x2446 JUMPI POP DUP3 MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x2468 JUMPI DUP5 DUP4 PUSH1 0x40 MLOAD PUSH4 0x46AA9515 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FF SWAP3 SWAP2 SWAP1 PUSH2 0x4532 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x2485 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x4513 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP5 ADD SLOAD SWAP3 SWAP5 POP PUSH2 0x24D6 SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND PUSH2 0x31AF JUMP JUMPDEST DUP2 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP6 PUSH2 0x2539 DUP5 PUSH1 0x0 ADD SLOAD PUSH2 0xD67 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x256A SWAP4 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND SWAP1 PUSH1 0x4 ADD PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2589 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 0x25AD SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE DUP7 AND DUP3 DUP3 ADD MSTORE PUSH6 0xFFFFFFFFFFFF DUP5 AND PUSH1 0x60 DUP4 ADD MSTORE MLOAD PUSH32 0xE2D5D453D44004623A821EF386E026D37FCCBAC3F56CEF0CB5918CAB5C11DC88 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x264F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x26DC SWAP2 SWAP1 PUSH2 0x4569 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2717 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 0x271C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1165 DUP6 DUP4 DUP4 PUSH2 0x31BF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xFE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x276E SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4585 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x27A9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x27A6 SWAP2 DUP2 ADD SWAP1 PUSH2 0x45B8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2812 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x27D7 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 0x27DC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x280A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x284E JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2863 DUP4 PUSH2 0x321B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2882 JUMPI PUSH2 0x2882 PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x28AC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x28B6 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV PUSH6 0xFFFFFFFFFFFF AND LT PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E448F1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD CALLDATALOAD ISZERO PUSH2 0x2965 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x85461E9B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FF SWAP2 SWAP1 PUSH2 0x45D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD CALLER DUP6 MSTORE PUSH1 0x3 DUP3 ADD SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT PUSH2 0x29AA JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x841 JUMP JUMPDEST DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x29C4 JUMPI POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST DUP1 ISZERO PUSH2 0x29F6 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST ISZERO PUSH2 0x2A06 JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE39D6B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x2A39 PUSH2 0x34AA JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 NOT DUP4 DUP6 ADD MSTORE PUSH1 0x3 PUSH1 0x60 DUP5 ADD MSTORE SWAP4 SWAP1 SWAP5 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE ADDRESS PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD SWAP1 MSTORE PUSH2 0x100 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x2AA5 PUSH2 0x34AA JUMP JUMPDEST PUSH2 0x2AAE DUP3 PUSH2 0x32F3 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB2B07E66 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2B03 JUMPI PUSH2 0x2B03 PUSH2 0x42E9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x2B3A SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x200 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xA0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xC0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xE0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x120 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x140 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x160 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x180 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x1A0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x1C0 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x1E0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x200 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 SHL DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2CA3 PUSH2 0x335B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2CB0 PUSH2 0x3383 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP5 MSTORE SWAP4 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD SWAP3 DUP4 MSTORE SWAP1 DUP3 ADD DUP2 MSTORE SWAP2 DUP3 ADD MSTORE MLOAD PUSH4 0x8DD971D5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8DD971D5 SWAP1 PUSH2 0x2D2D SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x45E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP SWAP2 MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x25E3E05D PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x934 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x2DEC JUMPI POP PUSH2 0x2DEC DUP5 DUP5 PUSH2 0x17A3 JUMP JUMPDEST DUP1 PUSH2 0x934 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E05 DUP4 PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2E48 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x841 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x841 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0x2EC4 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x0 PUSH2 0x2ED4 DUP6 PUSH2 0x19E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2F00 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2F13 JUMPI POP PUSH2 0x2F11 DUP2 DUP6 PUSH2 0x17A3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x2F3C JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST DUP3 ISZERO PUSH2 0x2F84 JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2FC1 DUP3 DUP3 PUSH2 0x116E JUMP JUMPDEST PUSH2 0x90B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x2FFA DUP4 DUP4 PUSH2 0x339E JUMP JUMPDEST PUSH2 0x926 CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0x272C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x3023 DUP6 PUSH2 0x2E67 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x303F JUMPI PUSH2 0x303F DUP2 DUP6 DUP8 PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x307F JUMPI PUSH2 0x305C PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0x2EA1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x30B0 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x46BB405D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x3161 PUSH2 0x3467 JUMP JUMPDEST PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3186 PUSH2 0x3159 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x31A0 DUP5 DUP3 PUSH2 0x3D36 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0xA63 DUP4 DUP3 PUSH2 0x3D36 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 XOR DUP3 DUP5 GT MUL DUP3 XOR PUSH2 0x11F2 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x31D4 JUMPI PUSH2 0x31CF DUP3 PUSH2 0x3481 JUMP JUMPDEST PUSH2 0x11F2 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x31EB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x3214 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST POP DUP1 PUSH2 0x11F2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x325A JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x3286 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x32A4 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x32BC JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x32D0 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x32E2 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x841 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x32FB PUSH2 0x34AA JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 NOT DUP5 DUP5 ADD MSTORE PUSH1 0x3 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP5 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xE0 DUP5 ADD DUP3 SWAP1 MSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE DUP2 ADD SWAP1 SWAP2 MSTORE PUSH2 0x100 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x336F SWAP2 SWAP1 PUSH2 0x4636 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP2 SLOAD PUSH2 0x3394 SWAP1 PUSH2 0x3E0B JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x33C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33D6 DUP4 DUP4 PUSH1 0x0 PUSH2 0x1A89 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x926 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x340E DUP4 DUP4 DUP4 PUSH2 0x2DB2 JUMP JUMPDEST PUSH2 0x926 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x343C JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3471 PUSH2 0x217F JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x3491 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 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xA0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xC0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xE0 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x100 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3518 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x352F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11F2 DUP2 PUSH2 0x34F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3562 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11F2 DUP2 PUSH2 0x353A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3588 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3570 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x35A9 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x356D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x35FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3607 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP5 GT ISZERO PUSH2 0x3645 JUMPI PUSH2 0x3645 PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP6 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x366D JUMPI PUSH2 0x366D PUSH2 0x3615 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP1 SWAP4 POP DUP6 DUP2 MSTORE DUP7 DUP7 DUP7 ADD GT ISZERO PUSH2 0x3686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP6 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP8 DUP4 ADD ADD MSTORE POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x36C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x36D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x934 DUP5 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x362B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x36FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3709 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3719 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x373B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x374C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x375B DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x362B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x377C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3787 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3797 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x34F8 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0xFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x100 DUP2 ADD PUSH2 0x382C PUSH1 0x80 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST DUP3 MLOAD ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0xE0 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x387A DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x388A DUP2 PUSH2 0x34F8 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x38BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x38CA DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x38DA DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x388A DUP2 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x390D DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x3924 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x3940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3954 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3975 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x39CF JUMPI PUSH2 0x39CF PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP3 CALLDATALOAD PUSH2 0x39E0 DUP2 PUSH2 0x3895 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x39F0 DUP2 PUSH2 0x3988 JUMP JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A1B DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x399B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A5F DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x3A33 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x3A99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3AAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3ABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x3AD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD PUSH1 0x20 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP PUSH1 0x20 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3B3A JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x3B28 DUP6 DUP4 MLOAD PUSH2 0x3591 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3B0C JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x399B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3B80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3B8B DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH2 0x160 DUP2 DUP8 SUB SLT ISZERO PUSH2 0x387A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3BCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3BD7 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x3895 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH6 0xFFFFFFFFFFFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x934 PUSH1 0x40 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3C41 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x34F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x3C51 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3CA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3CAB DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x3C51 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3CCE JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3C63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x926 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3D17 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x284E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D23 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D4F JUMPI PUSH2 0x3D4F PUSH2 0x3615 JUMP JUMPDEST PUSH2 0x3D63 DUP2 PUSH2 0x3D5D DUP5 SLOAD PUSH2 0x3CBA JUMP JUMPDEST DUP5 PUSH2 0x3CEE JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3D98 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3D80 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x284E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3DC7 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3DA8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3DE5 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x3E1D JUMPI PUSH2 0x3E1D PUSH2 0x3DF5 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11F2 DUP2 PUSH2 0x34F8 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x841 JUMPI PUSH2 0x841 PUSH2 0x3DF5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x3E64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x3E71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0x12E3 JUMPI PUSH1 0x4 SWAP5 SWAP1 SWAP5 SUB PUSH1 0x3 SHL DUP5 SWAP1 SHL AND SWAP1 SWAP3 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x841 JUMPI PUSH2 0x841 PUSH2 0x3DF5 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 0x3EEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x3F1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD PUSH1 0x0 DUP2 MSTORE DUP4 MLOAD PUSH2 0x3F3F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x356D JUMP JUMPDEST ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x3F5B DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x356D JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x3F6F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x356D JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND DUP5 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x3FC1 PUSH1 0x80 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x3FDC PUSH1 0xA0 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x3FF7 PUSH1 0xC0 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP3 DUP3 DUP8 ADD MSTORE PUSH2 0x401A DUP4 DUP8 ADD DUP3 PUSH2 0x3591 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x403B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x405A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x3F1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 PUSH2 0x40B1 DUP5 PUSH2 0x40A4 DUP6 PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x40EF PUSH1 0xC0 DUP5 ADD PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x4109 PUSH1 0xE0 DUP5 ADD PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 PUSH2 0x4125 DUP5 DUP3 ADD PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 ADD MSTORE PUSH2 0x120 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x140 PUSH2 0x414C DUP2 DUP6 ADD DUP6 PUSH2 0x4024 JUMP JUMPDEST DUP4 DUP4 DUP9 ADD MSTORE PUSH2 0x415E DUP5 DUP9 ADD DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x0 PUSH2 0x200 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x419F PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x41C4 PUSH1 0x80 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x41E9 PUSH1 0xC0 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xE0 DUP4 DUP2 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 DUP8 ADD MSTORE POP POP PUSH2 0x180 DUP4 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP7 DUP4 ADD MSTORE POP POP PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD DUP3 DUP3 DUP8 ADD MSTORE PUSH2 0x425B DUP4 DUP8 ADD DUP3 PUSH2 0x3591 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x1C0 DUP1 DUP5 ADD MLOAD DUP2 DUP7 ADD MSTORE POP PUSH2 0x1E0 DUP1 DUP5 ADD MLOAD DUP6 DUP4 SUB DUP3 DUP8 ADD MSTORE PUSH2 0x401A DUP4 DUP3 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4296 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3F78 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x42A8 DUP2 DUP8 PUSH2 0x3F78 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x42BC DUP2 DUP7 PUSH2 0x4092 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x415E DUP2 DUP6 PUSH2 0x4169 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD 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 0x2 DUP2 LT PUSH2 0x19BE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x433C DUP4 PUSH2 0x42FF JUMP JUMPDEST DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4355 DUP2 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP2 AND SWAP1 POP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB NOT DUP3 AND OR DUP4 SSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4380 DUP2 PUSH2 0x3988 JUMP JUMPDEST PUSH14 0xFFFFFFFFFF000000000000000000 DUP2 PUSH1 0x48 SHL AND DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP5 AND OR OR DUP5 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 PUSH2 0x434A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x43C7 DUP2 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 DUP2 ADD CALLDATALOAD PUSH2 0x43E0 DUP2 PUSH2 0x3988 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x43BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11F2 DUP2 PUSH2 0x3988 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x934 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x43BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11F2 DUP2 PUSH2 0x3A33 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x60 DUP5 MSTORE PUSH2 0x4478 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x3F78 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4488 DUP2 PUSH2 0x42FF JUMP JUMPDEST DUP1 PUSH1 0x20 DUP7 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1165 DUP3 DUP3 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4463 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 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x1BAA JUMPI PUSH2 0x1BAA PUSH2 0x3DF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x457B DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x356D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x401A SWAP1 DUP4 ADD DUP5 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11F2 DUP2 PUSH2 0x353A JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4092 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4604 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x4169 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x4614 DUP2 PUSH2 0x42FF JUMP JUMPDEST DUP1 PUSH1 0x40 DUP6 ADD MSTORE POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x1165 DUP3 DUP3 PUSH2 0x3591 JUMP JUMPDEST PUSH32 0x7B2269657865635F726573756C745F656E6372797074696F6E223A7472756500 DUP2 MSTORE PUSH32 0x2C2269657865635F726573756C745F73746F726167655F70726F766964657222 PUSH1 0x1F DUP3 ADD MSTORE PUSH2 0x1D11 PUSH1 0xF1 SHL PUSH1 0x3F DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x41 PUSH1 0x0 DUP5 SLOAD PUSH2 0x469B DUP2 PUSH2 0x3CBA JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x46B3 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46CE JUMPI PUSH2 0x4702 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND PUSH1 0x41 DUP10 ADD MSTORE PUSH1 0x41 DUP4 ISZERO ISZERO DUP5 MUL DUP10 ADD ADD SWAP5 POP PUSH2 0x4702 JUMP JUMPDEST DUP9 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x46F6 JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP11 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x46DB JUMP JUMPDEST POP POP POP PUSH1 0x41 DUP4 DUP10 ADD ADD SWAP5 POP JUMPDEST POP POP POP POP PUSH2 0x4714 DUP2 PUSH2 0x227D PUSH1 0xF0 SHL SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x2 ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB007930002DD7BC7DEC4DCEEDDA775E58DD541E0 DUP11 GT PUSH13 0x6C53815C0BD028192F7B626800 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MCOPY 0x4F ADDMOD 0xE2 0x22 0xEC BLOBBASEFEE PUSH7 0x7CAF0A065C5F78 0xC5 SWAP8 0xE4 0x26 0xB7 0xBA 0xD9 XOR LOG0 0x4F SELFBALANCE 0x2D PUSH3 0x4BBEC2 EXP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "2313:21145:35:-:0;;;3432:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2951:34:36;;;;3613:22:35::1;:20;:22::i;:::-;-1:-1:-1::0;;;;;3645:48:35;;::::1;;::::0;3703:62:::1;;::::0;-1:-1:-1;2313:21145:35;;7709:422:1;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:1;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:1;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:1;-1:-1:-1;;;;;8033:33:1;;;;;8085:29;;874:50:51;;;8085:29:1;;862:2:51;847:18;8085:29:1;;;;;;;7979:146;7758:373;7709:422::o;14:131:51:-;-1:-1:-1;;;;;89:31:51;;79:42;;69:70;;135:1;132;125:12;150:575;294:6;302;310;363:2;351:9;342:7;338:23;334:32;331:52;;;379:1;376;369:12;331:52;411:9;405:16;430:31;455:5;430:31;:::i;:::-;530:2;515:18;;509:25;480:5;;-1:-1:-1;543:33:51;509:25;543:33;:::i;:::-;647:2;632:18;;626:25;595:7;;-1:-1:-1;660:33:51;626:25;660:33;:::i;:::-;712:7;702:17;;;150:575;;;;;:::o;730:200::-;2313:21145:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@ADD_ONLY_APP_WHITELIST_REGISTRY_9280": { + "entryPoint": null, + "id": 9280, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@DEFAULT_ADMIN_ROLE_28": { + "entryPoint": null, + "id": 28, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__AccessControl_init_63": { + "entryPoint": null, + "id": 63, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__ERC721Burnable_init_1731": { + "entryPoint": 8634, + "id": 1731, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__ERC721_init_717": { + "entryPoint": 8616, + "id": 717, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__ERC721_init_unchained_745": { + "entryPoint": 12670, + "id": 745, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_approve_1561": { + "entryPoint": 6744, + "id": 1561, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1635": { + "entryPoint": 11937, + "id": 1635, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_901": { + "entryPoint": null, + "id": 901, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_buyProtectedData_10637": { + "entryPoint": 7920, + "id": 10637, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_checkAndGetConsumeProtectedDataMode_9571": { + "entryPoint": 10558, + "id": 9571, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_checkAuthorized_1181": { + "entryPoint": 13315, + "id": 1181, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkCollectionNotSubscribed_9442": { + "entryPoint": 8513, + "id": 9442, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkCollectionOperator_9374": { + "entryPoint": 6539, + "id": 9374, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkInitializing_538": { + "entryPoint": 12633, + "id": 538, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkProtectedDataForSale_9496": { + "entryPoint": 12562, + "id": 9496, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkProtectedDataNotForSale_9478": { + "entryPoint": 11626, + "id": 9478, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkProtectedDataNotRented_9461": { + "entryPoint": 10472, + "id": 9461, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkProtectedDataOperator_9423": { + "entryPoint": 7213, + "id": 9423, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_129": { + "entryPoint": 6757, + "id": 129, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkRole_150": { + "entryPoint": 12215, + "id": 150, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_contextSuffixLength_1800": { + "entryPoint": null, + "id": 1800, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_createAppOrder_10854": { + "entryPoint": 13043, + "id": 10854, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_createDatasetOrder_10925": { + "entryPoint": 10801, + "id": 10925, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_createPreSignAppOrder_10885": { + "entryPoint": 10909, + "id": 10885, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_createPreSignDatasetOrder_10959": { + "entryPoint": 7706, + "id": 10959, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_createPreSignRequestOrder_11030": { + "entryPoint": 11121, + "id": 11030, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_getAccessControlStorage_46": { + "entryPoint": null, + "id": 46, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getApproved_1108": { + "entryPoint": 6686, + "id": 1108, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getERC721Storage_701": { + "entryPoint": null, + "id": 701, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getInitializableStorage_629": { + "entryPoint": 8575, + "id": 629, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_grantRole_315": { + "entryPoint": 6917, + "id": 315, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_initializableStorageSlot_615": { + "entryPoint": null, + "id": 615, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isAuthorized_1144": { + "entryPoint": 11698, + "id": 1144, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_isInitializing_606": { + "entryPoint": 13415, + "id": 606, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_mint_1357": { + "entryPoint": 13214, + "id": 1357, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1783": { + "entryPoint": null, + "id": 1783, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1088": { + "entryPoint": 11879, + "id": 1088, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_rentProtectedData_10452": { + "entryPoint": 9142, + "id": 10452, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_requireOwned_1709": { + "entryPoint": 6630, + "id": 1709, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_revert_3820": { + "entryPoint": 13441, + "id": 3820, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_revokeRole_361": { + "entryPoint": 7089, + "id": 361, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_safeMint_1372": { + "entryPoint": 6767, + "id": 1372, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_1402": { + "entryPoint": 12272, + "id": 1402, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1680": { + "entryPoint": 9742, + "id": 1680, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_subscribeToCollection_10222": { + "entryPoint": 8644, + "id": 10222, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_update_1307": { + "entryPoint": 12296, + "id": 1307, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_update_9720": { + "entryPoint": 6793, + "id": 9720, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@addProtectedDataToCollection_10042": { + "entryPoint": 2778, + "id": 10042, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@approve_917": { + "entryPoint": 2304, + "id": 917, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_811": { + "entryPoint": 3442, + "id": 811, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@burn_1754": { + "entryPoint": 3407, + "id": 1754, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@buyProtectedData_10560": { + "entryPoint": 3419, + "id": 10560, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@checkOnERC721Received_3560": { + "entryPoint": 10028, + "id": 3560, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@collectionDetails_9299": { + "entryPoint": null, + "id": 9299, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@consumeProtectedData_9648": { + "entryPoint": 5422, + "id": 9648, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@createCollection_9937": { + "entryPoint": 2486, + "id": 9937, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@earning_9289": { + "entryPoint": null, + "id": 9289, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@functionDelegateCall_3738": { + "entryPoint": 9919, + "id": 3738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@generateParams_11057": { + "entryPoint": 13147, + "id": 11057, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getApproved_934": { + "entryPoint": 2283, + "id": 934, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getCollectionSubscriber_9756": { + "entryPoint": null, + "id": 9756, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getProtectedDataRenter_9738": { + "entryPoint": null, + "id": 9738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRoleAdmin_171": { + "entryPoint": 2665, + "id": 171, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getSalt_11042": { + "entryPoint": 13187, + "id": 11042, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@grantRole_190": { + "entryPoint": 2699, + "id": 190, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_116": { + "entryPoint": 4462, + "id": 116, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@initialize_9353": { + "entryPoint": 3655, + "id": 9353, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@isApprovedForAll_974": { + "entryPoint": 6051, + "id": 974, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_7015": { + "entryPoint": 12827, + "id": 7015, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@max_5870": { + "entryPoint": 12719, + "id": 5870, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@multicall_1903": { + "entryPoint": 4612, + "id": 1903, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@name_840": { + "entryPoint": 2119, + "id": 840, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@onERC721Received_3483": { + "entryPoint": 2347, + "id": 3483, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@ownerOf_824": { + "entryPoint": 3431, + "id": 824, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@protectedDataDetails_9294": { + "entryPoint": null, + "id": 9294, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@receiveApproval_9903": { + "entryPoint": 4076, + "id": 9903, + "parameterSlots": 5, + "returnSlots": 1 + }, + "@removeProtectedDataForSale_10745": { + "entryPoint": 1984, + "id": 10745, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@removeProtectedDataFromCollection_10108": { + "entryPoint": 4983, + "id": 10108, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@removeProtectedDataFromRenting_10541": { + "entryPoint": 2364, + "id": 10541, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@removeProtectedDataFromSubscription_10298": { + "entryPoint": 3534, + "id": 10298, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@renounceRole_232": { + "entryPoint": 2727, + "id": 232, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@rentProtectedData_10343": { + "entryPoint": 4581, + "id": 10343, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@revokeRole_209": { + "entryPoint": 5394, + "id": 209, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@safeTransferFrom_1038": { + "entryPoint": 3380, + "id": 1038, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1068": { + "entryPoint": 4843, + "id": 1068, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_950": { + "entryPoint": 4601, + "id": 950, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setProtectedDataForSale_10709": { + "entryPoint": 5749, + "id": 10709, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setProtectedDataToRenting_10505": { + "entryPoint": 6345, + "id": 10505, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setProtectedDataToSubscription_10260": { + "entryPoint": 6128, + "id": 10260, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setSubscriptionParams_10324": { + "entryPoint": 6255, + "id": 10324, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@subscribeToCollection_10127": { + "entryPoint": 5381, + "id": 10127, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@supportsInterface_1943": { + "entryPoint": null, + "id": 1943, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_776": { + "entryPoint": 11799, + "id": 776, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_91": { + "entryPoint": 6593, + "id": 91, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_9664": { + "entryPoint": 2102, + "id": 9664, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_856": { + "entryPoint": 4518, + "id": 856, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ternary_5851": { + "entryPoint": null, + "id": 5851, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@toString_4262": { + "entryPoint": 10326, + "id": 4262, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toUint_8947": { + "entryPoint": null, + "id": 8947, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_892": { + "entryPoint": 4867, + "id": 892, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1020": { + "entryPoint": 2521, + "id": 1020, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@updateEnv_9916": { + "entryPoint": 2319, + "id": 9916, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@verifyCallResultFromTarget_3778": { + "entryPoint": 12735, + "id": 3778, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_address": { + "entryPoint": 13581, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_available_length_string": { + "entryPoint": 13867, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_struct_RentingParams": { + "entryPoint": 14747, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_struct_SubscriptionParams_calldata": { + "entryPoint": 15441, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 13597, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 15908, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_payablet_address_payablet_uint72": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_address_payablet_struct$_RentingParams_$11666_memory_ptr": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 15395, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 14183, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 14056, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_addresst_uint72": { + "entryPoint": 14506, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 14913, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_struct$_RentingParams_$11666_calldata_ptr": { + "entryPoint": 15501, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_struct$_RentingParams_$11666_memory_ptr": { + "entryPoint": 14845, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_struct$_WorkerpoolOrder_$11503_calldata_ptrt_address": { + "entryPoint": 15211, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 13801, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr": { + "entryPoint": 14570, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_uint72": { + "entryPoint": 15289, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 14959, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 17478, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32_fromMemory": { + "entryPoint": 17104, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 14248, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 13648, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 17848, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 13984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 13776, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_address": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_addresst_contract$_IAddOnlyAppWhitelist_$11098": { + "entryPoint": 14419, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_uint256t_struct$_SubscriptionParams_$11831_calldata_ptr": { + "entryPoint": 15465, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_struct$_SubscriptionParams_$11831_memory_ptr": { + "entryPoint": 15175, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint40": { + "entryPoint": 17414, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_address": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_bytes_calldata": { + "entryPoint": 16489, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_string": { + "entryPoint": 13713, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_stringliteral_835b": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_encode_struct_AppOrder": { + "entryPoint": 16248, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_struct_DatasetOrderOperation": { + "entryPoint": 17507, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_struct_RentingParams": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_struct_RequestOrder": { + "entryPoint": 16745, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_struct_SubscriptionParams_calldata": { + "entryPoint": 17340, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_struct_WorkerpoolOrder_calldata": { + "entryPoint": 16530, + "id": null, + "parameterSlots": 2, + "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": 16162, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 17769, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 16201, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_stringliteral_de43f859c5b41ae763b3cf3079fdf2eb03404edf87902f203872493397b6d5eb_t_stringliteral_64a0632b25b099a8394a67910c746124d56bcfe74154e02a072981b112e5aafe_t_string_storage_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_bytes31_t_string_memory_ptr_t_string_memory_ptr_t_bytes2__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 17974, + "id": null, + "parameterSlots": 2, + "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": null, + "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_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 17797, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint72__to_t_address_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 17593, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_rational_0_by_1_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_address_t_struct$_RentingParams_$11666_memory_ptr__to_t_address_t_struct$_RentingParams_$11666_memory_ptr__fromStack_reversed": { + "entryPoint": 17714, + "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_address__to_t_address_t_uint256_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_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_address_t_uint72__to_t_address_t_uint72__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "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": 15075, + "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_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32_t_address_t_enum$_Mode_$11261__to_t_bytes32_t_address_t_uint8__fromStack_reversed": { + "entryPoint": 17181, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_AddOnlyAppWhitelistRegistry_$12170__to_t_address__fromStack_reversed": { + "entryPoint": null, + "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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13757, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_AppOrderOperation_$11545_memory_ptr__to_t_struct$_AppOrderOperation_$11545_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_AppOrder_$11461_memory_ptr_t_struct$_DatasetOrder_$11480_memory_ptr_t_struct$_WorkerpoolOrder_$11503_calldata_ptr_t_struct$_RequestOrder_$11536_memory_ptr__to_t_struct$_AppOrder_$11461_memory_ptr_t_struct$_DatasetOrder_$11480_memory_ptr_t_struct$_WorkerpoolOrder_$11503_memory_ptr_t_struct$_RequestOrder_$11536_memory_ptr__fromStack_reversed": { + "entryPoint": 17027, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_DatasetOrderOperation_$11554_memory_ptr__to_t_struct$_DatasetOrderOperation_$11554_memory_ptr__fromStack_reversed": { + "entryPoint": 17574, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_RequestOrderOperation_$11572_memory_ptr__to_t_struct$_RequestOrderOperation_$11572_memory_ptr__fromStack_reversed": { + "entryPoint": 17896, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_WorkerpoolOrder_$11503_calldata_ptr__to_t_struct$_WorkerpoolOrder_$11503_memory_ptr__fromStack_reversed": { + "entryPoint": 17877, + "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_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_address_t_address_t_uint48__to_t_uint256_t_address_t_address_t_uint48__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_address_t_struct$_RentingParams_$11666_calldata_ptr__to_t_uint256_t_address_t_struct$_RentingParams_$11666_memory_ptr__fromStack_reversed": { + "entryPoint": 17443, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_address_t_uint72__to_t_uint256_t_address_t_uint72__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_contract$_IAddOnlyAppWhitelist_$11098_t_uint48_t_bool_t_struct$_RentingParams_$11666_memory_ptr_t_struct$_SellingParams_$11746_memory_ptr__to_t_uint256_t_address_t_uint48_t_bool_t_struct$_RentingParams_$11666_memory_ptr_t_struct$_SellingParams_$11746_memory_ptr__fromStack_reversed": { + "entryPoint": 14296, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_struct$_SubscriptionParams_$11831_calldata_ptr__to_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed": { + "entryPoint": 17394, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__to_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed": { + "entryPoint": 17637, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint48__to_t_uint256_t_uint48__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint48_t_struct$_SubscriptionParams_$11831_memory_ptr__to_t_uint256_t_uint48_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed": { + "entryPoint": 15335, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint40__to_t_uint48__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_bytes_calldata_ptr": { + "entryPoint": 16085, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "array_dataslot_string_storage": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "calldata_access_bytes_calldata": { + "entryPoint": 16420, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "calldata_array_index_range_access_t_bytes_calldata_ptr": { + "entryPoint": 15956, + "id": null, + "parameterSlots": 4, + "returnSlots": 2 + }, + "checked_add_t_uint256": { + "entryPoint": 15937, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint48": { + "entryPoint": 17683, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 16044, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_string_storage": { + "entryPoint": 15598, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4": { + "entryPoint": 15998, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 15670, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 13677, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams": { + "entryPoint": 17226, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 15546, + "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": 15883, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 15861, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 17129, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 16063, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 13845, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "update_storage_value_offset_0t_struct$_RentingParams_$11666_calldata_ptr_to_t_struct$_RentingParams_$11666_storage": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "update_storage_value_offset_0t_struct$_SubscriptionParams_$11831_calldata_ptr_to_t_struct$_SubscriptionParams_$11831_storage": { + "entryPoint": 17330, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "validator_assert_enum_Mode": { + "entryPoint": 17151, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_address": { + "entryPoint": 13560, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_bool": { + "entryPoint": 14899, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_bytes4": { + "entryPoint": 13626, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_uint40": { + "entryPoint": 14728, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_uint72": { + "entryPoint": 14485, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:43455:51", + "nodeType": "YulBlock", + "src": "0:43455:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "59:86:51", + "nodeType": "YulBlock", + "src": "59:86:51", + "statements": [ + { + "body": { + "nativeSrc": "123:16:51", + "nodeType": "YulBlock", + "src": "123:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "132:1:51", + "nodeType": "YulLiteral", + "src": "132:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "135:1:51", + "nodeType": "YulLiteral", + "src": "135:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "125:6:51", + "nodeType": "YulIdentifier", + "src": "125:6:51" + }, + "nativeSrc": "125:12:51", + "nodeType": "YulFunctionCall", + "src": "125:12:51" + }, + "nativeSrc": "125:12:51", + "nodeType": "YulExpressionStatement", + "src": "125:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "82:5:51", + "nodeType": "YulIdentifier", + "src": "82:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:51", + "nodeType": "YulIdentifier", + "src": "93:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "108:3:51", + "nodeType": "YulLiteral", + "src": "108:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "113:1:51", + "nodeType": "YulLiteral", + "src": "113:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "104:3:51", + "nodeType": "YulIdentifier", + "src": "104:3:51" + }, + "nativeSrc": "104:11:51", + "nodeType": "YulFunctionCall", + "src": "104:11:51" + }, + { + "kind": "number", + "nativeSrc": "117:1:51", + "nodeType": "YulLiteral", + "src": "117:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "100:3:51", + "nodeType": "YulIdentifier", + "src": "100:3:51" + }, + "nativeSrc": "100:19:51", + "nodeType": "YulFunctionCall", + "src": "100:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "89:3:51", + "nodeType": "YulIdentifier", + "src": "89:3:51" + }, + "nativeSrc": "89:31:51", + "nodeType": "YulFunctionCall", + "src": "89:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "79:2:51", + "nodeType": "YulIdentifier", + "src": "79:2:51" + }, + "nativeSrc": "79:42:51", + "nodeType": "YulFunctionCall", + "src": "79:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "72:6:51", + "nodeType": "YulIdentifier", + "src": "72:6:51" + }, + "nativeSrc": "72:50:51", + "nodeType": "YulFunctionCall", + "src": "72:50:51" + }, + "nativeSrc": "69:70:51", + "nodeType": "YulIf", + "src": "69:70:51" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "14:131:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "48:5:51", + "nodeType": "YulTypedName", + "src": "48:5:51", + "type": "" + } + ], + "src": "14:131:51" + }, + { + "body": { + "nativeSrc": "199:85:51", + "nodeType": "YulBlock", + "src": "199:85:51", + "statements": [ + { + "nativeSrc": "209:29:51", + "nodeType": "YulAssignment", + "src": "209:29:51", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "231:6:51", + "nodeType": "YulIdentifier", + "src": "231:6:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "218:12:51", + "nodeType": "YulIdentifier", + "src": "218:12:51" + }, + "nativeSrc": "218:20:51", + "nodeType": "YulFunctionCall", + "src": "218:20:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "209:5:51", + "nodeType": "YulIdentifier", + "src": "209:5:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "272:5:51", + "nodeType": "YulIdentifier", + "src": "272:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "247:24:51", + "nodeType": "YulIdentifier", + "src": "247:24:51" + }, + "nativeSrc": "247:31:51", + "nodeType": "YulFunctionCall", + "src": "247:31:51" + }, + "nativeSrc": "247:31:51", + "nodeType": "YulExpressionStatement", + "src": "247:31:51" + } + ] + }, + "name": "abi_decode_address", + "nativeSrc": "150:134:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "178:6:51", + "nodeType": "YulTypedName", + "src": "178:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "189:5:51", + "nodeType": "YulTypedName", + "src": "189:5:51", + "type": "" + } + ], + "src": "150:134:51" + }, + { + "body": { + "nativeSrc": "359:177:51", + "nodeType": "YulBlock", + "src": "359:177:51", + "statements": [ + { + "body": { + "nativeSrc": "405:16:51", + "nodeType": "YulBlock", + "src": "405:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "414:1:51", + "nodeType": "YulLiteral", + "src": "414:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "417:1:51", + "nodeType": "YulLiteral", + "src": "417:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "407:6:51", + "nodeType": "YulIdentifier", + "src": "407:6:51" + }, + "nativeSrc": "407:12:51", + "nodeType": "YulFunctionCall", + "src": "407:12:51" + }, + "nativeSrc": "407:12:51", + "nodeType": "YulExpressionStatement", + "src": "407:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "380:7:51", + "nodeType": "YulIdentifier", + "src": "380:7:51" + }, + { + "name": "headStart", + "nativeSrc": "389:9:51", + "nodeType": "YulIdentifier", + "src": "389:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "376:3:51", + "nodeType": "YulIdentifier", + "src": "376:3:51" + }, + "nativeSrc": "376:23:51", + "nodeType": "YulFunctionCall", + "src": "376:23:51" + }, + { + "kind": "number", + "nativeSrc": "401:2:51", + "nodeType": "YulLiteral", + "src": "401:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "372:3:51", + "nodeType": "YulIdentifier", + "src": "372:3:51" + }, + "nativeSrc": "372:32:51", + "nodeType": "YulFunctionCall", + "src": "372:32:51" + }, + "nativeSrc": "369:52:51", + "nodeType": "YulIf", + "src": "369:52:51" + }, + { + "nativeSrc": "430:36:51", + "nodeType": "YulVariableDeclaration", + "src": "430:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "456:9:51", + "nodeType": "YulIdentifier", + "src": "456:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "443:12:51", + "nodeType": "YulIdentifier", + "src": "443:12:51" + }, + "nativeSrc": "443:23:51", + "nodeType": "YulFunctionCall", + "src": "443:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "434:5:51", + "nodeType": "YulTypedName", + "src": "434:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "500:5:51", + "nodeType": "YulIdentifier", + "src": "500:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "475:24:51", + "nodeType": "YulIdentifier", + "src": "475:24:51" + }, + "nativeSrc": "475:31:51", + "nodeType": "YulFunctionCall", + "src": "475:31:51" + }, + "nativeSrc": "475:31:51", + "nodeType": "YulExpressionStatement", + "src": "475:31:51" + }, + { + "nativeSrc": "515:15:51", + "nodeType": "YulAssignment", + "src": "515:15:51", + "value": { + "name": "value", + "nativeSrc": "525:5:51", + "nodeType": "YulIdentifier", + "src": "525:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "515:6:51", + "nodeType": "YulIdentifier", + "src": "515:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "289:247:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "325:9:51", + "nodeType": "YulTypedName", + "src": "325:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "336:7:51", + "nodeType": "YulTypedName", + "src": "336:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "348:6:51", + "nodeType": "YulTypedName", + "src": "348:6:51", + "type": "" + } + ], + "src": "289:247:51" + }, + { + "body": { + "nativeSrc": "585:87:51", + "nodeType": "YulBlock", + "src": "585:87:51", + "statements": [ + { + "body": { + "nativeSrc": "650:16:51", + "nodeType": "YulBlock", + "src": "650:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "659:1:51", + "nodeType": "YulLiteral", + "src": "659:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "662:1:51", + "nodeType": "YulLiteral", + "src": "662:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "652:6:51", + "nodeType": "YulIdentifier", + "src": "652:6:51" + }, + "nativeSrc": "652:12:51", + "nodeType": "YulFunctionCall", + "src": "652:12:51" + }, + "nativeSrc": "652:12:51", + "nodeType": "YulExpressionStatement", + "src": "652:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "608:5:51", + "nodeType": "YulIdentifier", + "src": "608:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "619:5:51", + "nodeType": "YulIdentifier", + "src": "619:5:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "630:3:51", + "nodeType": "YulLiteral", + "src": "630:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "635:10:51", + "nodeType": "YulLiteral", + "src": "635:10:51", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "626:3:51", + "nodeType": "YulIdentifier", + "src": "626:3:51" + }, + "nativeSrc": "626:20:51", + "nodeType": "YulFunctionCall", + "src": "626:20:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "615:3:51", + "nodeType": "YulIdentifier", + "src": "615:3:51" + }, + "nativeSrc": "615:32:51", + "nodeType": "YulFunctionCall", + "src": "615:32:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "605:2:51", + "nodeType": "YulIdentifier", + "src": "605:2:51" + }, + "nativeSrc": "605:43:51", + "nodeType": "YulFunctionCall", + "src": "605:43:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "598:6:51", + "nodeType": "YulIdentifier", + "src": "598:6:51" + }, + "nativeSrc": "598:51:51", + "nodeType": "YulFunctionCall", + "src": "598:51:51" + }, + "nativeSrc": "595:71:51", + "nodeType": "YulIf", + "src": "595:71:51" + } + ] + }, + "name": "validator_revert_bytes4", + "nativeSrc": "541:131:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "574:5:51", + "nodeType": "YulTypedName", + "src": "574:5:51", + "type": "" + } + ], + "src": "541:131:51" + }, + { + "body": { + "nativeSrc": "746:176:51", + "nodeType": "YulBlock", + "src": "746:176:51", + "statements": [ + { + "body": { + "nativeSrc": "792:16:51", + "nodeType": "YulBlock", + "src": "792:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "801:1:51", + "nodeType": "YulLiteral", + "src": "801:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "804:1:51", + "nodeType": "YulLiteral", + "src": "804:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "794:6:51", + "nodeType": "YulIdentifier", + "src": "794:6:51" + }, + "nativeSrc": "794:12:51", + "nodeType": "YulFunctionCall", + "src": "794:12:51" + }, + "nativeSrc": "794:12:51", + "nodeType": "YulExpressionStatement", + "src": "794:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "767:7:51", + "nodeType": "YulIdentifier", + "src": "767:7:51" + }, + { + "name": "headStart", + "nativeSrc": "776:9:51", + "nodeType": "YulIdentifier", + "src": "776:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "763:3:51", + "nodeType": "YulIdentifier", + "src": "763:3:51" + }, + "nativeSrc": "763:23:51", + "nodeType": "YulFunctionCall", + "src": "763:23:51" + }, + { + "kind": "number", + "nativeSrc": "788:2:51", + "nodeType": "YulLiteral", + "src": "788:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "759:3:51", + "nodeType": "YulIdentifier", + "src": "759:3:51" + }, + "nativeSrc": "759:32:51", + "nodeType": "YulFunctionCall", + "src": "759:32:51" + }, + "nativeSrc": "756:52:51", + "nodeType": "YulIf", + "src": "756:52:51" + }, + { + "nativeSrc": "817:36:51", + "nodeType": "YulVariableDeclaration", + "src": "817:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "843:9:51", + "nodeType": "YulIdentifier", + "src": "843:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "830:12:51", + "nodeType": "YulIdentifier", + "src": "830:12:51" + }, + "nativeSrc": "830:23:51", + "nodeType": "YulFunctionCall", + "src": "830:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "821:5:51", + "nodeType": "YulTypedName", + "src": "821:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "886:5:51", + "nodeType": "YulIdentifier", + "src": "886:5:51" + } + ], + "functionName": { + "name": "validator_revert_bytes4", + "nativeSrc": "862:23:51", + "nodeType": "YulIdentifier", + "src": "862:23:51" + }, + "nativeSrc": "862:30:51", + "nodeType": "YulFunctionCall", + "src": "862:30:51" + }, + "nativeSrc": "862:30:51", + "nodeType": "YulExpressionStatement", + "src": "862:30:51" + }, + { + "nativeSrc": "901:15:51", + "nodeType": "YulAssignment", + "src": "901:15:51", + "value": { + "name": "value", + "nativeSrc": "911:5:51", + "nodeType": "YulIdentifier", + "src": "911:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "901:6:51", + "nodeType": "YulIdentifier", + "src": "901:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "677:245:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "712:9:51", + "nodeType": "YulTypedName", + "src": "712:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "723:7:51", + "nodeType": "YulTypedName", + "src": "723:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "735:6:51", + "nodeType": "YulTypedName", + "src": "735:6:51", + "type": "" + } + ], + "src": "677:245:51" + }, + { + "body": { + "nativeSrc": "1022:92:51", + "nodeType": "YulBlock", + "src": "1022:92:51", + "statements": [ + { + "nativeSrc": "1032:26:51", + "nodeType": "YulAssignment", + "src": "1032:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1044:9:51", + "nodeType": "YulIdentifier", + "src": "1044:9:51" + }, + { + "kind": "number", + "nativeSrc": "1055:2:51", + "nodeType": "YulLiteral", + "src": "1055:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1040:3:51", + "nodeType": "YulIdentifier", + "src": "1040:3:51" + }, + "nativeSrc": "1040:18:51", + "nodeType": "YulFunctionCall", + "src": "1040:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1032:4:51", + "nodeType": "YulIdentifier", + "src": "1032:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1074:9:51", + "nodeType": "YulIdentifier", + "src": "1074:9:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1099:6:51", + "nodeType": "YulIdentifier", + "src": "1099:6:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1092:6:51", + "nodeType": "YulIdentifier", + "src": "1092:6:51" + }, + "nativeSrc": "1092:14:51", + "nodeType": "YulFunctionCall", + "src": "1092:14:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1085:6:51", + "nodeType": "YulIdentifier", + "src": "1085:6:51" + }, + "nativeSrc": "1085:22:51", + "nodeType": "YulFunctionCall", + "src": "1085:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1067:6:51", + "nodeType": "YulIdentifier", + "src": "1067:6:51" + }, + "nativeSrc": "1067:41:51", + "nodeType": "YulFunctionCall", + "src": "1067:41:51" + }, + "nativeSrc": "1067:41:51", + "nodeType": "YulExpressionStatement", + "src": "1067:41:51" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "927:187:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "991:9:51", + "nodeType": "YulTypedName", + "src": "991:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1002:6:51", + "nodeType": "YulTypedName", + "src": "1002:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1013:4:51", + "nodeType": "YulTypedName", + "src": "1013:4:51", + "type": "" + } + ], + "src": "927:187:51" + }, + { + "body": { + "nativeSrc": "1185:184:51", + "nodeType": "YulBlock", + "src": "1185:184:51", + "statements": [ + { + "nativeSrc": "1195:10:51", + "nodeType": "YulVariableDeclaration", + "src": "1195:10:51", + "value": { + "kind": "number", + "nativeSrc": "1204:1:51", + "nodeType": "YulLiteral", + "src": "1204:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1199:1:51", + "nodeType": "YulTypedName", + "src": "1199:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1264:63:51", + "nodeType": "YulBlock", + "src": "1264:63:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1289:3:51", + "nodeType": "YulIdentifier", + "src": "1289:3:51" + }, + { + "name": "i", + "nativeSrc": "1294:1:51", + "nodeType": "YulIdentifier", + "src": "1294:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1285:3:51", + "nodeType": "YulIdentifier", + "src": "1285:3:51" + }, + "nativeSrc": "1285:11:51", + "nodeType": "YulFunctionCall", + "src": "1285:11:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1308:3:51", + "nodeType": "YulIdentifier", + "src": "1308:3:51" + }, + { + "name": "i", + "nativeSrc": "1313:1:51", + "nodeType": "YulIdentifier", + "src": "1313:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1304:3:51", + "nodeType": "YulIdentifier", + "src": "1304:3:51" + }, + "nativeSrc": "1304:11:51", + "nodeType": "YulFunctionCall", + "src": "1304:11:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1298:5:51", + "nodeType": "YulIdentifier", + "src": "1298:5:51" + }, + "nativeSrc": "1298:18:51", + "nodeType": "YulFunctionCall", + "src": "1298:18:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1278:6:51", + "nodeType": "YulIdentifier", + "src": "1278:6:51" + }, + "nativeSrc": "1278:39:51", + "nodeType": "YulFunctionCall", + "src": "1278:39:51" + }, + "nativeSrc": "1278:39:51", + "nodeType": "YulExpressionStatement", + "src": "1278:39:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1225:1:51", + "nodeType": "YulIdentifier", + "src": "1225:1:51" + }, + { + "name": "length", + "nativeSrc": "1228:6:51", + "nodeType": "YulIdentifier", + "src": "1228:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1222:2:51", + "nodeType": "YulIdentifier", + "src": "1222:2:51" + }, + "nativeSrc": "1222:13:51", + "nodeType": "YulFunctionCall", + "src": "1222:13:51" + }, + "nativeSrc": "1214:113:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1236:19:51", + "nodeType": "YulBlock", + "src": "1236:19:51", + "statements": [ + { + "nativeSrc": "1238:15:51", + "nodeType": "YulAssignment", + "src": "1238:15:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1247:1:51", + "nodeType": "YulIdentifier", + "src": "1247:1:51" + }, + { + "kind": "number", + "nativeSrc": "1250:2:51", + "nodeType": "YulLiteral", + "src": "1250:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1243:3:51", + "nodeType": "YulIdentifier", + "src": "1243:3:51" + }, + "nativeSrc": "1243:10:51", + "nodeType": "YulFunctionCall", + "src": "1243:10:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1238:1:51", + "nodeType": "YulIdentifier", + "src": "1238:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1218:3:51", + "nodeType": "YulBlock", + "src": "1218:3:51", + "statements": [] + }, + "src": "1214:113:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1347:3:51", + "nodeType": "YulIdentifier", + "src": "1347:3:51" + }, + { + "name": "length", + "nativeSrc": "1352:6:51", + "nodeType": "YulIdentifier", + "src": "1352:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1343:3:51", + "nodeType": "YulIdentifier", + "src": "1343:3:51" + }, + "nativeSrc": "1343:16:51", + "nodeType": "YulFunctionCall", + "src": "1343:16:51" + }, + { + "kind": "number", + "nativeSrc": "1361:1:51", + "nodeType": "YulLiteral", + "src": "1361:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1336:6:51", + "nodeType": "YulIdentifier", + "src": "1336:6:51" + }, + "nativeSrc": "1336:27:51", + "nodeType": "YulFunctionCall", + "src": "1336:27:51" + }, + "nativeSrc": "1336:27:51", + "nodeType": "YulExpressionStatement", + "src": "1336:27:51" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1119:250:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "1163:3:51", + "nodeType": "YulTypedName", + "src": "1163:3:51", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "1168:3:51", + "nodeType": "YulTypedName", + "src": "1168:3:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "1173:6:51", + "nodeType": "YulTypedName", + "src": "1173:6:51", + "type": "" + } + ], + "src": "1119:250:51" + }, + { + "body": { + "nativeSrc": "1424:221:51", + "nodeType": "YulBlock", + "src": "1424:221:51", + "statements": [ + { + "nativeSrc": "1434:26:51", + "nodeType": "YulVariableDeclaration", + "src": "1434:26:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1454:5:51", + "nodeType": "YulIdentifier", + "src": "1454:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1448:5:51", + "nodeType": "YulIdentifier", + "src": "1448:5:51" + }, + "nativeSrc": "1448:12:51", + "nodeType": "YulFunctionCall", + "src": "1448:12:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1438:6:51", + "nodeType": "YulTypedName", + "src": "1438:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1476:3:51", + "nodeType": "YulIdentifier", + "src": "1476:3:51" + }, + { + "name": "length", + "nativeSrc": "1481:6:51", + "nodeType": "YulIdentifier", + "src": "1481:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1469:6:51", + "nodeType": "YulIdentifier", + "src": "1469:6:51" + }, + "nativeSrc": "1469:19:51", + "nodeType": "YulFunctionCall", + "src": "1469:19:51" + }, + "nativeSrc": "1469:19:51", + "nodeType": "YulExpressionStatement", + "src": "1469:19:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1536:5:51", + "nodeType": "YulIdentifier", + "src": "1536:5:51" + }, + { + "kind": "number", + "nativeSrc": "1543:4:51", + "nodeType": "YulLiteral", + "src": "1543:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1532:3:51", + "nodeType": "YulIdentifier", + "src": "1532:3:51" + }, + "nativeSrc": "1532:16:51", + "nodeType": "YulFunctionCall", + "src": "1532:16:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1554:3:51", + "nodeType": "YulIdentifier", + "src": "1554:3:51" + }, + { + "kind": "number", + "nativeSrc": "1559:4:51", + "nodeType": "YulLiteral", + "src": "1559:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1550:3:51", + "nodeType": "YulIdentifier", + "src": "1550:3:51" + }, + "nativeSrc": "1550:14:51", + "nodeType": "YulFunctionCall", + "src": "1550:14:51" + }, + { + "name": "length", + "nativeSrc": "1566:6:51", + "nodeType": "YulIdentifier", + "src": "1566:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1497:34:51", + "nodeType": "YulIdentifier", + "src": "1497:34:51" + }, + "nativeSrc": "1497:76:51", + "nodeType": "YulFunctionCall", + "src": "1497:76:51" + }, + "nativeSrc": "1497:76:51", + "nodeType": "YulExpressionStatement", + "src": "1497:76:51" + }, + { + "nativeSrc": "1582:57:51", + "nodeType": "YulAssignment", + "src": "1582:57:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1597:3:51", + "nodeType": "YulIdentifier", + "src": "1597:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "1610:6:51", + "nodeType": "YulIdentifier", + "src": "1610:6:51" + }, + { + "kind": "number", + "nativeSrc": "1618:2:51", + "nodeType": "YulLiteral", + "src": "1618:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1606:3:51", + "nodeType": "YulIdentifier", + "src": "1606:3:51" + }, + "nativeSrc": "1606:15:51", + "nodeType": "YulFunctionCall", + "src": "1606:15:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1627:2:51", + "nodeType": "YulLiteral", + "src": "1627:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1623:3:51", + "nodeType": "YulIdentifier", + "src": "1623:3:51" + }, + "nativeSrc": "1623:7:51", + "nodeType": "YulFunctionCall", + "src": "1623:7:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1602:3:51", + "nodeType": "YulIdentifier", + "src": "1602:3:51" + }, + "nativeSrc": "1602:29:51", + "nodeType": "YulFunctionCall", + "src": "1602:29:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1593:3:51", + "nodeType": "YulIdentifier", + "src": "1593:3:51" + }, + "nativeSrc": "1593:39:51", + "nodeType": "YulFunctionCall", + "src": "1593:39:51" + }, + { + "kind": "number", + "nativeSrc": "1634:4:51", + "nodeType": "YulLiteral", + "src": "1634:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1589:3:51", + "nodeType": "YulIdentifier", + "src": "1589:3:51" + }, + "nativeSrc": "1589:50:51", + "nodeType": "YulFunctionCall", + "src": "1589:50:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "1582:3:51", + "nodeType": "YulIdentifier", + "src": "1582:3:51" + } + ] + } + ] + }, + "name": "abi_encode_string", + "nativeSrc": "1374:271:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1401:5:51", + "nodeType": "YulTypedName", + "src": "1401:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1408:3:51", + "nodeType": "YulTypedName", + "src": "1408:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "1416:3:51", + "nodeType": "YulTypedName", + "src": "1416:3:51", + "type": "" + } + ], + "src": "1374:271:51" + }, + { + "body": { + "nativeSrc": "1771:99:51", + "nodeType": "YulBlock", + "src": "1771:99:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1788:9:51", + "nodeType": "YulIdentifier", + "src": "1788:9:51" + }, + { + "kind": "number", + "nativeSrc": "1799:2:51", + "nodeType": "YulLiteral", + "src": "1799:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1781:6:51", + "nodeType": "YulIdentifier", + "src": "1781:6:51" + }, + "nativeSrc": "1781:21:51", + "nodeType": "YulFunctionCall", + "src": "1781:21:51" + }, + "nativeSrc": "1781:21:51", + "nodeType": "YulExpressionStatement", + "src": "1781:21:51" + }, + { + "nativeSrc": "1811:53:51", + "nodeType": "YulAssignment", + "src": "1811:53:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1837:6:51", + "nodeType": "YulIdentifier", + "src": "1837:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1849:9:51", + "nodeType": "YulIdentifier", + "src": "1849:9:51" + }, + { + "kind": "number", + "nativeSrc": "1860:2:51", + "nodeType": "YulLiteral", + "src": "1860:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1845:3:51", + "nodeType": "YulIdentifier", + "src": "1845:3:51" + }, + "nativeSrc": "1845:18:51", + "nodeType": "YulFunctionCall", + "src": "1845:18:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "1819:17:51", + "nodeType": "YulIdentifier", + "src": "1819:17:51" + }, + "nativeSrc": "1819:45:51", + "nodeType": "YulFunctionCall", + "src": "1819:45:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1811:4:51", + "nodeType": "YulIdentifier", + "src": "1811:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "1650:220:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1740:9:51", + "nodeType": "YulTypedName", + "src": "1740:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1751:6:51", + "nodeType": "YulTypedName", + "src": "1751:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1762:4:51", + "nodeType": "YulTypedName", + "src": "1762:4:51", + "type": "" + } + ], + "src": "1650:220:51" + }, + { + "body": { + "nativeSrc": "1945:110:51", + "nodeType": "YulBlock", + "src": "1945:110:51", + "statements": [ + { + "body": { + "nativeSrc": "1991:16:51", + "nodeType": "YulBlock", + "src": "1991:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2000:1:51", + "nodeType": "YulLiteral", + "src": "2000:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2003:1:51", + "nodeType": "YulLiteral", + "src": "2003:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1993:6:51", + "nodeType": "YulIdentifier", + "src": "1993:6:51" + }, + "nativeSrc": "1993:12:51", + "nodeType": "YulFunctionCall", + "src": "1993:12:51" + }, + "nativeSrc": "1993:12:51", + "nodeType": "YulExpressionStatement", + "src": "1993:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1966:7:51", + "nodeType": "YulIdentifier", + "src": "1966:7:51" + }, + { + "name": "headStart", + "nativeSrc": "1975:9:51", + "nodeType": "YulIdentifier", + "src": "1975:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1962:3:51", + "nodeType": "YulIdentifier", + "src": "1962:3:51" + }, + "nativeSrc": "1962:23:51", + "nodeType": "YulFunctionCall", + "src": "1962:23:51" + }, + { + "kind": "number", + "nativeSrc": "1987:2:51", + "nodeType": "YulLiteral", + "src": "1987:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1958:3:51", + "nodeType": "YulIdentifier", + "src": "1958:3:51" + }, + "nativeSrc": "1958:32:51", + "nodeType": "YulFunctionCall", + "src": "1958:32:51" + }, + "nativeSrc": "1955:52:51", + "nodeType": "YulIf", + "src": "1955:52:51" + }, + { + "nativeSrc": "2016:33:51", + "nodeType": "YulAssignment", + "src": "2016:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2039:9:51", + "nodeType": "YulIdentifier", + "src": "2039:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2026:12:51", + "nodeType": "YulIdentifier", + "src": "2026:12:51" + }, + "nativeSrc": "2026:23:51", + "nodeType": "YulFunctionCall", + "src": "2026:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2016:6:51", + "nodeType": "YulIdentifier", + "src": "2016:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "1875:180:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1911:9:51", + "nodeType": "YulTypedName", + "src": "1911:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1922:7:51", + "nodeType": "YulTypedName", + "src": "1922:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1934:6:51", + "nodeType": "YulTypedName", + "src": "1934:6:51", + "type": "" + } + ], + "src": "1875:180:51" + }, + { + "body": { + "nativeSrc": "2104:60:51", + "nodeType": "YulBlock", + "src": "2104:60:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2121:3:51", + "nodeType": "YulIdentifier", + "src": "2121:3:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2130:5:51", + "nodeType": "YulIdentifier", + "src": "2130:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2145:3:51", + "nodeType": "YulLiteral", + "src": "2145:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2150:1:51", + "nodeType": "YulLiteral", + "src": "2150:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2141:3:51", + "nodeType": "YulIdentifier", + "src": "2141:3:51" + }, + "nativeSrc": "2141:11:51", + "nodeType": "YulFunctionCall", + "src": "2141:11:51" + }, + { + "kind": "number", + "nativeSrc": "2154:1:51", + "nodeType": "YulLiteral", + "src": "2154:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2137:3:51", + "nodeType": "YulIdentifier", + "src": "2137:3:51" + }, + "nativeSrc": "2137:19:51", + "nodeType": "YulFunctionCall", + "src": "2137:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2126:3:51", + "nodeType": "YulIdentifier", + "src": "2126:3:51" + }, + "nativeSrc": "2126:31:51", + "nodeType": "YulFunctionCall", + "src": "2126:31:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2114:6:51", + "nodeType": "YulIdentifier", + "src": "2114:6:51" + }, + "nativeSrc": "2114:44:51", + "nodeType": "YulFunctionCall", + "src": "2114:44:51" + }, + "nativeSrc": "2114:44:51", + "nodeType": "YulExpressionStatement", + "src": "2114:44:51" + } + ] + }, + "name": "abi_encode_address", + "nativeSrc": "2060:104:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2088:5:51", + "nodeType": "YulTypedName", + "src": "2088:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2095:3:51", + "nodeType": "YulTypedName", + "src": "2095:3:51", + "type": "" + } + ], + "src": "2060:104:51" + }, + { + "body": { + "nativeSrc": "2270:102:51", + "nodeType": "YulBlock", + "src": "2270:102:51", + "statements": [ + { + "nativeSrc": "2280:26:51", + "nodeType": "YulAssignment", + "src": "2280:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2292:9:51", + "nodeType": "YulIdentifier", + "src": "2292:9:51" + }, + { + "kind": "number", + "nativeSrc": "2303:2:51", + "nodeType": "YulLiteral", + "src": "2303:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2288:3:51", + "nodeType": "YulIdentifier", + "src": "2288:3:51" + }, + "nativeSrc": "2288:18:51", + "nodeType": "YulFunctionCall", + "src": "2288:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2280:4:51", + "nodeType": "YulIdentifier", + "src": "2280:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2322:9:51", + "nodeType": "YulIdentifier", + "src": "2322:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2337:6:51", + "nodeType": "YulIdentifier", + "src": "2337:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2353:3:51", + "nodeType": "YulLiteral", + "src": "2353:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2358:1:51", + "nodeType": "YulLiteral", + "src": "2358:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2349:3:51", + "nodeType": "YulIdentifier", + "src": "2349:3:51" + }, + "nativeSrc": "2349:11:51", + "nodeType": "YulFunctionCall", + "src": "2349:11:51" + }, + { + "kind": "number", + "nativeSrc": "2362:1:51", + "nodeType": "YulLiteral", + "src": "2362:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2345:3:51", + "nodeType": "YulIdentifier", + "src": "2345:3:51" + }, + "nativeSrc": "2345:19:51", + "nodeType": "YulFunctionCall", + "src": "2345:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2333:3:51", + "nodeType": "YulIdentifier", + "src": "2333:3:51" + }, + "nativeSrc": "2333:32:51", + "nodeType": "YulFunctionCall", + "src": "2333:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2315:6:51", + "nodeType": "YulIdentifier", + "src": "2315:6:51" + }, + "nativeSrc": "2315:51:51", + "nodeType": "YulFunctionCall", + "src": "2315:51:51" + }, + "nativeSrc": "2315:51:51", + "nodeType": "YulExpressionStatement", + "src": "2315:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "2169:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2239:9:51", + "nodeType": "YulTypedName", + "src": "2239:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2250:6:51", + "nodeType": "YulTypedName", + "src": "2250:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2261:4:51", + "nodeType": "YulTypedName", + "src": "2261:4:51", + "type": "" + } + ], + "src": "2169:203:51" + }, + { + "body": { + "nativeSrc": "2464:228:51", + "nodeType": "YulBlock", + "src": "2464:228:51", + "statements": [ + { + "body": { + "nativeSrc": "2510:16:51", + "nodeType": "YulBlock", + "src": "2510:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2519:1:51", + "nodeType": "YulLiteral", + "src": "2519:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2522:1:51", + "nodeType": "YulLiteral", + "src": "2522:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2512:6:51", + "nodeType": "YulIdentifier", + "src": "2512:6:51" + }, + "nativeSrc": "2512:12:51", + "nodeType": "YulFunctionCall", + "src": "2512:12:51" + }, + "nativeSrc": "2512:12:51", + "nodeType": "YulExpressionStatement", + "src": "2512:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2485:7:51", + "nodeType": "YulIdentifier", + "src": "2485:7:51" + }, + { + "name": "headStart", + "nativeSrc": "2494:9:51", + "nodeType": "YulIdentifier", + "src": "2494:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2481:3:51", + "nodeType": "YulIdentifier", + "src": "2481:3:51" + }, + "nativeSrc": "2481:23:51", + "nodeType": "YulFunctionCall", + "src": "2481:23:51" + }, + { + "kind": "number", + "nativeSrc": "2506:2:51", + "nodeType": "YulLiteral", + "src": "2506:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2477:3:51", + "nodeType": "YulIdentifier", + "src": "2477:3:51" + }, + "nativeSrc": "2477:32:51", + "nodeType": "YulFunctionCall", + "src": "2477:32:51" + }, + "nativeSrc": "2474:52:51", + "nodeType": "YulIf", + "src": "2474:52:51" + }, + { + "nativeSrc": "2535:36:51", + "nodeType": "YulVariableDeclaration", + "src": "2535:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2561:9:51", + "nodeType": "YulIdentifier", + "src": "2561:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2548:12:51", + "nodeType": "YulIdentifier", + "src": "2548:12:51" + }, + "nativeSrc": "2548:23:51", + "nodeType": "YulFunctionCall", + "src": "2548:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2539:5:51", + "nodeType": "YulTypedName", + "src": "2539:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2605:5:51", + "nodeType": "YulIdentifier", + "src": "2605:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "2580:24:51", + "nodeType": "YulIdentifier", + "src": "2580:24:51" + }, + "nativeSrc": "2580:31:51", + "nodeType": "YulFunctionCall", + "src": "2580:31:51" + }, + "nativeSrc": "2580:31:51", + "nodeType": "YulExpressionStatement", + "src": "2580:31:51" + }, + { + "nativeSrc": "2620:15:51", + "nodeType": "YulAssignment", + "src": "2620:15:51", + "value": { + "name": "value", + "nativeSrc": "2630:5:51", + "nodeType": "YulIdentifier", + "src": "2630:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2620:6:51", + "nodeType": "YulIdentifier", + "src": "2620:6:51" + } + ] + }, + { + "nativeSrc": "2644:42:51", + "nodeType": "YulAssignment", + "src": "2644:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2671:9:51", + "nodeType": "YulIdentifier", + "src": "2671:9:51" + }, + { + "kind": "number", + "nativeSrc": "2682:2:51", + "nodeType": "YulLiteral", + "src": "2682:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2667:3:51", + "nodeType": "YulIdentifier", + "src": "2667:3:51" + }, + "nativeSrc": "2667:18:51", + "nodeType": "YulFunctionCall", + "src": "2667:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2654:12:51", + "nodeType": "YulIdentifier", + "src": "2654:12:51" + }, + "nativeSrc": "2654:32:51", + "nodeType": "YulFunctionCall", + "src": "2654:32:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2644:6:51", + "nodeType": "YulIdentifier", + "src": "2644:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "2377:315:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2422:9:51", + "nodeType": "YulTypedName", + "src": "2422:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2433:7:51", + "nodeType": "YulTypedName", + "src": "2433:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2445:6:51", + "nodeType": "YulTypedName", + "src": "2445:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2453:6:51", + "nodeType": "YulTypedName", + "src": "2453:6:51", + "type": "" + } + ], + "src": "2377:315:51" + }, + { + "body": { + "nativeSrc": "2729:95:51", + "nodeType": "YulBlock", + "src": "2729:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2746:1:51", + "nodeType": "YulLiteral", + "src": "2746:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2753:3:51", + "nodeType": "YulLiteral", + "src": "2753:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "2758:10:51", + "nodeType": "YulLiteral", + "src": "2758:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2749:3:51", + "nodeType": "YulIdentifier", + "src": "2749:3:51" + }, + "nativeSrc": "2749:20:51", + "nodeType": "YulFunctionCall", + "src": "2749:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2739:6:51", + "nodeType": "YulIdentifier", + "src": "2739:6:51" + }, + "nativeSrc": "2739:31:51", + "nodeType": "YulFunctionCall", + "src": "2739:31:51" + }, + "nativeSrc": "2739:31:51", + "nodeType": "YulExpressionStatement", + "src": "2739:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2786:1:51", + "nodeType": "YulLiteral", + "src": "2786:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "2789:4:51", + "nodeType": "YulLiteral", + "src": "2789:4:51", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2779:6:51", + "nodeType": "YulIdentifier", + "src": "2779:6:51" + }, + "nativeSrc": "2779:15:51", + "nodeType": "YulFunctionCall", + "src": "2779:15:51" + }, + "nativeSrc": "2779:15:51", + "nodeType": "YulExpressionStatement", + "src": "2779:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2810:1:51", + "nodeType": "YulLiteral", + "src": "2810:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2813:4:51", + "nodeType": "YulLiteral", + "src": "2813:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2803:6:51", + "nodeType": "YulIdentifier", + "src": "2803:6:51" + }, + "nativeSrc": "2803:15:51", + "nodeType": "YulFunctionCall", + "src": "2803:15:51" + }, + "nativeSrc": "2803:15:51", + "nodeType": "YulExpressionStatement", + "src": "2803:15:51" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "2697:127:51", + "nodeType": "YulFunctionDefinition", + "src": "2697:127:51" + }, + { + "body": { + "nativeSrc": "2904:557:51", + "nodeType": "YulBlock", + "src": "2904:557:51", + "statements": [ + { + "nativeSrc": "2914:28:51", + "nodeType": "YulVariableDeclaration", + "src": "2914:28:51", + "value": { + "kind": "number", + "nativeSrc": "2924:18:51", + "nodeType": "YulLiteral", + "src": "2924:18:51", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "2918:2:51", + "nodeType": "YulTypedName", + "src": "2918:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2969:22:51", + "nodeType": "YulBlock", + "src": "2969:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "2971:16:51", + "nodeType": "YulIdentifier", + "src": "2971:16:51" + }, + "nativeSrc": "2971:18:51", + "nodeType": "YulFunctionCall", + "src": "2971:18:51" + }, + "nativeSrc": "2971:18:51", + "nodeType": "YulExpressionStatement", + "src": "2971:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "2957:6:51", + "nodeType": "YulIdentifier", + "src": "2957:6:51" + }, + { + "name": "_1", + "nativeSrc": "2965:2:51", + "nodeType": "YulIdentifier", + "src": "2965:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2954:2:51", + "nodeType": "YulIdentifier", + "src": "2954:2:51" + }, + "nativeSrc": "2954:14:51", + "nodeType": "YulFunctionCall", + "src": "2954:14:51" + }, + "nativeSrc": "2951:40:51", + "nodeType": "YulIf", + "src": "2951:40:51" + }, + { + "nativeSrc": "3000:17:51", + "nodeType": "YulVariableDeclaration", + "src": "3000:17:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3014:2:51", + "nodeType": "YulLiteral", + "src": "3014:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3010:3:51", + "nodeType": "YulIdentifier", + "src": "3010:3:51" + }, + "nativeSrc": "3010:7:51", + "nodeType": "YulFunctionCall", + "src": "3010:7:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "3004:2:51", + "nodeType": "YulTypedName", + "src": "3004:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "3026:23:51", + "nodeType": "YulVariableDeclaration", + "src": "3026:23:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3046:2:51", + "nodeType": "YulLiteral", + "src": "3046:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3040:5:51", + "nodeType": "YulIdentifier", + "src": "3040:5:51" + }, + "nativeSrc": "3040:9:51", + "nodeType": "YulFunctionCall", + "src": "3040:9:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "3030:6:51", + "nodeType": "YulTypedName", + "src": "3030:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "3058:73:51", + "nodeType": "YulVariableDeclaration", + "src": "3058:73:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "3080:6:51", + "nodeType": "YulIdentifier", + "src": "3080:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3104:6:51", + "nodeType": "YulIdentifier", + "src": "3104:6:51" + }, + { + "kind": "number", + "nativeSrc": "3112:2:51", + "nodeType": "YulLiteral", + "src": "3112:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3100:3:51", + "nodeType": "YulIdentifier", + "src": "3100:3:51" + }, + "nativeSrc": "3100:15:51", + "nodeType": "YulFunctionCall", + "src": "3100:15:51" + }, + { + "name": "_2", + "nativeSrc": "3117:2:51", + "nodeType": "YulIdentifier", + "src": "3117:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3096:3:51", + "nodeType": "YulIdentifier", + "src": "3096:3:51" + }, + "nativeSrc": "3096:24:51", + "nodeType": "YulFunctionCall", + "src": "3096:24:51" + }, + { + "kind": "number", + "nativeSrc": "3122:2:51", + "nodeType": "YulLiteral", + "src": "3122:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3092:3:51", + "nodeType": "YulIdentifier", + "src": "3092:3:51" + }, + "nativeSrc": "3092:33:51", + "nodeType": "YulFunctionCall", + "src": "3092:33:51" + }, + { + "name": "_2", + "nativeSrc": "3127:2:51", + "nodeType": "YulIdentifier", + "src": "3127:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3088:3:51", + "nodeType": "YulIdentifier", + "src": "3088:3:51" + }, + "nativeSrc": "3088:42:51", + "nodeType": "YulFunctionCall", + "src": "3088:42:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3076:3:51", + "nodeType": "YulIdentifier", + "src": "3076:3:51" + }, + "nativeSrc": "3076:55:51", + "nodeType": "YulFunctionCall", + "src": "3076:55:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "3062:10:51", + "nodeType": "YulTypedName", + "src": "3062:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3190:22:51", + "nodeType": "YulBlock", + "src": "3190:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "3192:16:51", + "nodeType": "YulIdentifier", + "src": "3192:16:51" + }, + "nativeSrc": "3192:18:51", + "nodeType": "YulFunctionCall", + "src": "3192:18:51" + }, + "nativeSrc": "3192:18:51", + "nodeType": "YulExpressionStatement", + "src": "3192:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "3149:10:51", + "nodeType": "YulIdentifier", + "src": "3149:10:51" + }, + { + "name": "_1", + "nativeSrc": "3161:2:51", + "nodeType": "YulIdentifier", + "src": "3161:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3146:2:51", + "nodeType": "YulIdentifier", + "src": "3146:2:51" + }, + "nativeSrc": "3146:18:51", + "nodeType": "YulFunctionCall", + "src": "3146:18:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "3169:10:51", + "nodeType": "YulIdentifier", + "src": "3169:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "3181:6:51", + "nodeType": "YulIdentifier", + "src": "3181:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3166:2:51", + "nodeType": "YulIdentifier", + "src": "3166:2:51" + }, + "nativeSrc": "3166:22:51", + "nodeType": "YulFunctionCall", + "src": "3166:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "3143:2:51", + "nodeType": "YulIdentifier", + "src": "3143:2:51" + }, + "nativeSrc": "3143:46:51", + "nodeType": "YulFunctionCall", + "src": "3143:46:51" + }, + "nativeSrc": "3140:72:51", + "nodeType": "YulIf", + "src": "3140:72:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3228:2:51", + "nodeType": "YulLiteral", + "src": "3228:2:51", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "3232:10:51", + "nodeType": "YulIdentifier", + "src": "3232:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3221:6:51", + "nodeType": "YulIdentifier", + "src": "3221:6:51" + }, + "nativeSrc": "3221:22:51", + "nodeType": "YulFunctionCall", + "src": "3221:22:51" + }, + "nativeSrc": "3221:22:51", + "nodeType": "YulExpressionStatement", + "src": "3221:22:51" + }, + { + "nativeSrc": "3252:15:51", + "nodeType": "YulAssignment", + "src": "3252:15:51", + "value": { + "name": "memPtr", + "nativeSrc": "3261:6:51", + "nodeType": "YulIdentifier", + "src": "3261:6:51" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "3252:5:51", + "nodeType": "YulIdentifier", + "src": "3252:5:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "3283:6:51", + "nodeType": "YulIdentifier", + "src": "3283:6:51" + }, + { + "name": "length", + "nativeSrc": "3291:6:51", + "nodeType": "YulIdentifier", + "src": "3291:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3276:6:51", + "nodeType": "YulIdentifier", + "src": "3276:6:51" + }, + "nativeSrc": "3276:22:51", + "nodeType": "YulFunctionCall", + "src": "3276:22:51" + }, + "nativeSrc": "3276:22:51", + "nodeType": "YulExpressionStatement", + "src": "3276:22:51" + }, + { + "body": { + "nativeSrc": "3336:16:51", + "nodeType": "YulBlock", + "src": "3336:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3345:1:51", + "nodeType": "YulLiteral", + "src": "3345:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3348:1:51", + "nodeType": "YulLiteral", + "src": "3348:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3338:6:51", + "nodeType": "YulIdentifier", + "src": "3338:6:51" + }, + "nativeSrc": "3338:12:51", + "nodeType": "YulFunctionCall", + "src": "3338:12:51" + }, + "nativeSrc": "3338:12:51", + "nodeType": "YulExpressionStatement", + "src": "3338:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "3317:3:51", + "nodeType": "YulIdentifier", + "src": "3317:3:51" + }, + { + "name": "length", + "nativeSrc": "3322:6:51", + "nodeType": "YulIdentifier", + "src": "3322:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3313:3:51", + "nodeType": "YulIdentifier", + "src": "3313:3:51" + }, + "nativeSrc": "3313:16:51", + "nodeType": "YulFunctionCall", + "src": "3313:16:51" + }, + { + "name": "end", + "nativeSrc": "3331:3:51", + "nodeType": "YulIdentifier", + "src": "3331:3:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3310:2:51", + "nodeType": "YulIdentifier", + "src": "3310:2:51" + }, + "nativeSrc": "3310:25:51", + "nodeType": "YulFunctionCall", + "src": "3310:25:51" + }, + "nativeSrc": "3307:45:51", + "nodeType": "YulIf", + "src": "3307:45:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "3378:6:51", + "nodeType": "YulIdentifier", + "src": "3378:6:51" + }, + { + "kind": "number", + "nativeSrc": "3386:4:51", + "nodeType": "YulLiteral", + "src": "3386:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3374:3:51", + "nodeType": "YulIdentifier", + "src": "3374:3:51" + }, + "nativeSrc": "3374:17:51", + "nodeType": "YulFunctionCall", + "src": "3374:17:51" + }, + { + "name": "src", + "nativeSrc": "3393:3:51", + "nodeType": "YulIdentifier", + "src": "3393:3:51" + }, + { + "name": "length", + "nativeSrc": "3398:6:51", + "nodeType": "YulIdentifier", + "src": "3398:6:51" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3361:12:51", + "nodeType": "YulIdentifier", + "src": "3361:12:51" + }, + "nativeSrc": "3361:44:51", + "nodeType": "YulFunctionCall", + "src": "3361:44:51" + }, + "nativeSrc": "3361:44:51", + "nodeType": "YulExpressionStatement", + "src": "3361:44:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "3429:6:51", + "nodeType": "YulIdentifier", + "src": "3429:6:51" + }, + { + "name": "length", + "nativeSrc": "3437:6:51", + "nodeType": "YulIdentifier", + "src": "3437:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3425:3:51", + "nodeType": "YulIdentifier", + "src": "3425:3:51" + }, + "nativeSrc": "3425:19:51", + "nodeType": "YulFunctionCall", + "src": "3425:19:51" + }, + { + "kind": "number", + "nativeSrc": "3446:4:51", + "nodeType": "YulLiteral", + "src": "3446:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3421:3:51", + "nodeType": "YulIdentifier", + "src": "3421:3:51" + }, + "nativeSrc": "3421:30:51", + "nodeType": "YulFunctionCall", + "src": "3421:30:51" + }, + { + "kind": "number", + "nativeSrc": "3453:1:51", + "nodeType": "YulLiteral", + "src": "3453:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3414:6:51", + "nodeType": "YulIdentifier", + "src": "3414:6:51" + }, + "nativeSrc": "3414:41:51", + "nodeType": "YulFunctionCall", + "src": "3414:41:51" + }, + "nativeSrc": "3414:41:51", + "nodeType": "YulExpressionStatement", + "src": "3414:41:51" + } + ] + }, + "name": "abi_decode_available_length_string", + "nativeSrc": "2829:632:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "2873:3:51", + "nodeType": "YulTypedName", + "src": "2873:3:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2878:6:51", + "nodeType": "YulTypedName", + "src": "2878:6:51", + "type": "" + }, + { + "name": "end", + "nativeSrc": "2886:3:51", + "nodeType": "YulTypedName", + "src": "2886:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2894:5:51", + "nodeType": "YulTypedName", + "src": "2894:5:51", + "type": "" + } + ], + "src": "2829:632:51" + }, + { + "body": { + "nativeSrc": "3546:371:51", + "nodeType": "YulBlock", + "src": "3546:371:51", + "statements": [ + { + "body": { + "nativeSrc": "3592:16:51", + "nodeType": "YulBlock", + "src": "3592:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3601:1:51", + "nodeType": "YulLiteral", + "src": "3601:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3604:1:51", + "nodeType": "YulLiteral", + "src": "3604:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3594:6:51", + "nodeType": "YulIdentifier", + "src": "3594:6:51" + }, + "nativeSrc": "3594:12:51", + "nodeType": "YulFunctionCall", + "src": "3594:12:51" + }, + "nativeSrc": "3594:12:51", + "nodeType": "YulExpressionStatement", + "src": "3594:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3567:7:51", + "nodeType": "YulIdentifier", + "src": "3567:7:51" + }, + { + "name": "headStart", + "nativeSrc": "3576:9:51", + "nodeType": "YulIdentifier", + "src": "3576:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3563:3:51", + "nodeType": "YulIdentifier", + "src": "3563:3:51" + }, + "nativeSrc": "3563:23:51", + "nodeType": "YulFunctionCall", + "src": "3563:23:51" + }, + { + "kind": "number", + "nativeSrc": "3588:2:51", + "nodeType": "YulLiteral", + "src": "3588:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3559:3:51", + "nodeType": "YulIdentifier", + "src": "3559:3:51" + }, + "nativeSrc": "3559:32:51", + "nodeType": "YulFunctionCall", + "src": "3559:32:51" + }, + "nativeSrc": "3556:52:51", + "nodeType": "YulIf", + "src": "3556:52:51" + }, + { + "nativeSrc": "3617:37:51", + "nodeType": "YulVariableDeclaration", + "src": "3617:37:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3644:9:51", + "nodeType": "YulIdentifier", + "src": "3644:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3631:12:51", + "nodeType": "YulIdentifier", + "src": "3631:12:51" + }, + "nativeSrc": "3631:23:51", + "nodeType": "YulFunctionCall", + "src": "3631:23:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3621:6:51", + "nodeType": "YulTypedName", + "src": "3621:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3697:16:51", + "nodeType": "YulBlock", + "src": "3697:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3706:1:51", + "nodeType": "YulLiteral", + "src": "3706:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3709:1:51", + "nodeType": "YulLiteral", + "src": "3709:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3699:6:51", + "nodeType": "YulIdentifier", + "src": "3699:6:51" + }, + "nativeSrc": "3699:12:51", + "nodeType": "YulFunctionCall", + "src": "3699:12:51" + }, + "nativeSrc": "3699:12:51", + "nodeType": "YulExpressionStatement", + "src": "3699:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3669:6:51", + "nodeType": "YulIdentifier", + "src": "3669:6:51" + }, + { + "kind": "number", + "nativeSrc": "3677:18:51", + "nodeType": "YulLiteral", + "src": "3677:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3666:2:51", + "nodeType": "YulIdentifier", + "src": "3666:2:51" + }, + "nativeSrc": "3666:30:51", + "nodeType": "YulFunctionCall", + "src": "3666:30:51" + }, + "nativeSrc": "3663:50:51", + "nodeType": "YulIf", + "src": "3663:50:51" + }, + { + "nativeSrc": "3722:32:51", + "nodeType": "YulVariableDeclaration", + "src": "3722:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3736:9:51", + "nodeType": "YulIdentifier", + "src": "3736:9:51" + }, + { + "name": "offset", + "nativeSrc": "3747:6:51", + "nodeType": "YulIdentifier", + "src": "3747:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3732:3:51", + "nodeType": "YulIdentifier", + "src": "3732:3:51" + }, + "nativeSrc": "3732:22:51", + "nodeType": "YulFunctionCall", + "src": "3732:22:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "3726:2:51", + "nodeType": "YulTypedName", + "src": "3726:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3802:16:51", + "nodeType": "YulBlock", + "src": "3802:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3811:1:51", + "nodeType": "YulLiteral", + "src": "3811:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3814:1:51", + "nodeType": "YulLiteral", + "src": "3814:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3804:6:51", + "nodeType": "YulIdentifier", + "src": "3804:6:51" + }, + "nativeSrc": "3804:12:51", + "nodeType": "YulFunctionCall", + "src": "3804:12:51" + }, + "nativeSrc": "3804:12:51", + "nodeType": "YulExpressionStatement", + "src": "3804:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "3781:2:51", + "nodeType": "YulIdentifier", + "src": "3781:2:51" + }, + { + "kind": "number", + "nativeSrc": "3785:4:51", + "nodeType": "YulLiteral", + "src": "3785:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3777:3:51", + "nodeType": "YulIdentifier", + "src": "3777:3:51" + }, + "nativeSrc": "3777:13:51", + "nodeType": "YulFunctionCall", + "src": "3777:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "3792:7:51", + "nodeType": "YulIdentifier", + "src": "3792:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3773:3:51", + "nodeType": "YulIdentifier", + "src": "3773:3:51" + }, + "nativeSrc": "3773:27:51", + "nodeType": "YulFunctionCall", + "src": "3773:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3766:6:51", + "nodeType": "YulIdentifier", + "src": "3766:6:51" + }, + "nativeSrc": "3766:35:51", + "nodeType": "YulFunctionCall", + "src": "3766:35:51" + }, + "nativeSrc": "3763:55:51", + "nodeType": "YulIf", + "src": "3763:55:51" + }, + { + "nativeSrc": "3827:84:51", + "nodeType": "YulAssignment", + "src": "3827:84:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "3876:2:51", + "nodeType": "YulIdentifier", + "src": "3876:2:51" + }, + { + "kind": "number", + "nativeSrc": "3880:2:51", + "nodeType": "YulLiteral", + "src": "3880:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3872:3:51", + "nodeType": "YulIdentifier", + "src": "3872:3:51" + }, + "nativeSrc": "3872:11:51", + "nodeType": "YulFunctionCall", + "src": "3872:11:51" + }, + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "3898:2:51", + "nodeType": "YulIdentifier", + "src": "3898:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3885:12:51", + "nodeType": "YulIdentifier", + "src": "3885:12:51" + }, + "nativeSrc": "3885:16:51", + "nodeType": "YulFunctionCall", + "src": "3885:16:51" + }, + { + "name": "dataEnd", + "nativeSrc": "3903:7:51", + "nodeType": "YulIdentifier", + "src": "3903:7:51" + } + ], + "functionName": { + "name": "abi_decode_available_length_string", + "nativeSrc": "3837:34:51", + "nodeType": "YulIdentifier", + "src": "3837:34:51" + }, + "nativeSrc": "3837:74:51", + "nodeType": "YulFunctionCall", + "src": "3837:74:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3827:6:51", + "nodeType": "YulIdentifier", + "src": "3827:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "3466:451:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3512:9:51", + "nodeType": "YulTypedName", + "src": "3512:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3523:7:51", + "nodeType": "YulTypedName", + "src": "3523:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3535:6:51", + "nodeType": "YulTypedName", + "src": "3535:6:51", + "type": "" + } + ], + "src": "3466:451:51" + }, + { + "body": { + "nativeSrc": "4052:665:51", + "nodeType": "YulBlock", + "src": "4052:665:51", + "statements": [ + { + "body": { + "nativeSrc": "4099:16:51", + "nodeType": "YulBlock", + "src": "4099:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4108:1:51", + "nodeType": "YulLiteral", + "src": "4108:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4111:1:51", + "nodeType": "YulLiteral", + "src": "4111:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4101:6:51", + "nodeType": "YulIdentifier", + "src": "4101:6:51" + }, + "nativeSrc": "4101:12:51", + "nodeType": "YulFunctionCall", + "src": "4101:12:51" + }, + "nativeSrc": "4101:12:51", + "nodeType": "YulExpressionStatement", + "src": "4101:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4073:7:51", + "nodeType": "YulIdentifier", + "src": "4073:7:51" + }, + { + "name": "headStart", + "nativeSrc": "4082:9:51", + "nodeType": "YulIdentifier", + "src": "4082:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4069:3:51", + "nodeType": "YulIdentifier", + "src": "4069:3:51" + }, + "nativeSrc": "4069:23:51", + "nodeType": "YulFunctionCall", + "src": "4069:23:51" + }, + { + "kind": "number", + "nativeSrc": "4094:3:51", + "nodeType": "YulLiteral", + "src": "4094:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4065:3:51", + "nodeType": "YulIdentifier", + "src": "4065:3:51" + }, + "nativeSrc": "4065:33:51", + "nodeType": "YulFunctionCall", + "src": "4065:33:51" + }, + "nativeSrc": "4062:53:51", + "nodeType": "YulIf", + "src": "4062:53:51" + }, + { + "nativeSrc": "4124:36:51", + "nodeType": "YulVariableDeclaration", + "src": "4124:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4150:9:51", + "nodeType": "YulIdentifier", + "src": "4150:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4137:12:51", + "nodeType": "YulIdentifier", + "src": "4137:12:51" + }, + "nativeSrc": "4137:23:51", + "nodeType": "YulFunctionCall", + "src": "4137:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4128:5:51", + "nodeType": "YulTypedName", + "src": "4128:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4194:5:51", + "nodeType": "YulIdentifier", + "src": "4194:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "4169:24:51", + "nodeType": "YulIdentifier", + "src": "4169:24:51" + }, + "nativeSrc": "4169:31:51", + "nodeType": "YulFunctionCall", + "src": "4169:31:51" + }, + "nativeSrc": "4169:31:51", + "nodeType": "YulExpressionStatement", + "src": "4169:31:51" + }, + { + "nativeSrc": "4209:15:51", + "nodeType": "YulAssignment", + "src": "4209:15:51", + "value": { + "name": "value", + "nativeSrc": "4219:5:51", + "nodeType": "YulIdentifier", + "src": "4219:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4209:6:51", + "nodeType": "YulIdentifier", + "src": "4209:6:51" + } + ] + }, + { + "nativeSrc": "4233:47:51", + "nodeType": "YulVariableDeclaration", + "src": "4233:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4265:9:51", + "nodeType": "YulIdentifier", + "src": "4265:9:51" + }, + { + "kind": "number", + "nativeSrc": "4276:2:51", + "nodeType": "YulLiteral", + "src": "4276:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4261:3:51", + "nodeType": "YulIdentifier", + "src": "4261:3:51" + }, + "nativeSrc": "4261:18:51", + "nodeType": "YulFunctionCall", + "src": "4261:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4248:12:51", + "nodeType": "YulIdentifier", + "src": "4248:12:51" + }, + "nativeSrc": "4248:32:51", + "nodeType": "YulFunctionCall", + "src": "4248:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "4237:7:51", + "nodeType": "YulTypedName", + "src": "4237:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "4314:7:51", + "nodeType": "YulIdentifier", + "src": "4314:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "4289:24:51", + "nodeType": "YulIdentifier", + "src": "4289:24:51" + }, + "nativeSrc": "4289:33:51", + "nodeType": "YulFunctionCall", + "src": "4289:33:51" + }, + "nativeSrc": "4289:33:51", + "nodeType": "YulExpressionStatement", + "src": "4289:33:51" + }, + { + "nativeSrc": "4331:17:51", + "nodeType": "YulAssignment", + "src": "4331:17:51", + "value": { + "name": "value_1", + "nativeSrc": "4341:7:51", + "nodeType": "YulIdentifier", + "src": "4341:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4331:6:51", + "nodeType": "YulIdentifier", + "src": "4331:6:51" + } + ] + }, + { + "nativeSrc": "4357:42:51", + "nodeType": "YulAssignment", + "src": "4357:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4384:9:51", + "nodeType": "YulIdentifier", + "src": "4384:9:51" + }, + { + "kind": "number", + "nativeSrc": "4395:2:51", + "nodeType": "YulLiteral", + "src": "4395:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4380:3:51", + "nodeType": "YulIdentifier", + "src": "4380:3:51" + }, + "nativeSrc": "4380:18:51", + "nodeType": "YulFunctionCall", + "src": "4380:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4367:12:51", + "nodeType": "YulIdentifier", + "src": "4367:12:51" + }, + "nativeSrc": "4367:32:51", + "nodeType": "YulFunctionCall", + "src": "4367:32:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4357:6:51", + "nodeType": "YulIdentifier", + "src": "4357:6:51" + } + ] + }, + { + "nativeSrc": "4408:46:51", + "nodeType": "YulVariableDeclaration", + "src": "4408:46:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4439:9:51", + "nodeType": "YulIdentifier", + "src": "4439:9:51" + }, + { + "kind": "number", + "nativeSrc": "4450:2:51", + "nodeType": "YulLiteral", + "src": "4450:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4435:3:51", + "nodeType": "YulIdentifier", + "src": "4435:3:51" + }, + "nativeSrc": "4435:18:51", + "nodeType": "YulFunctionCall", + "src": "4435:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4422:12:51", + "nodeType": "YulIdentifier", + "src": "4422:12:51" + }, + "nativeSrc": "4422:32:51", + "nodeType": "YulFunctionCall", + "src": "4422:32:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4412:6:51", + "nodeType": "YulTypedName", + "src": "4412:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4497:16:51", + "nodeType": "YulBlock", + "src": "4497:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4506:1:51", + "nodeType": "YulLiteral", + "src": "4506:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4509:1:51", + "nodeType": "YulLiteral", + "src": "4509:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4499:6:51", + "nodeType": "YulIdentifier", + "src": "4499:6:51" + }, + "nativeSrc": "4499:12:51", + "nodeType": "YulFunctionCall", + "src": "4499:12:51" + }, + "nativeSrc": "4499:12:51", + "nodeType": "YulExpressionStatement", + "src": "4499:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4469:6:51", + "nodeType": "YulIdentifier", + "src": "4469:6:51" + }, + { + "kind": "number", + "nativeSrc": "4477:18:51", + "nodeType": "YulLiteral", + "src": "4477:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4466:2:51", + "nodeType": "YulIdentifier", + "src": "4466:2:51" + }, + "nativeSrc": "4466:30:51", + "nodeType": "YulFunctionCall", + "src": "4466:30:51" + }, + "nativeSrc": "4463:50:51", + "nodeType": "YulIf", + "src": "4463:50:51" + }, + { + "nativeSrc": "4522:32:51", + "nodeType": "YulVariableDeclaration", + "src": "4522:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4536:9:51", + "nodeType": "YulIdentifier", + "src": "4536:9:51" + }, + { + "name": "offset", + "nativeSrc": "4547:6:51", + "nodeType": "YulIdentifier", + "src": "4547:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4532:3:51", + "nodeType": "YulIdentifier", + "src": "4532:3:51" + }, + "nativeSrc": "4532:22:51", + "nodeType": "YulFunctionCall", + "src": "4532:22:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "4526:2:51", + "nodeType": "YulTypedName", + "src": "4526:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4602:16:51", + "nodeType": "YulBlock", + "src": "4602:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4611:1:51", + "nodeType": "YulLiteral", + "src": "4611:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4614:1:51", + "nodeType": "YulLiteral", + "src": "4614:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4604:6:51", + "nodeType": "YulIdentifier", + "src": "4604:6:51" + }, + "nativeSrc": "4604:12:51", + "nodeType": "YulFunctionCall", + "src": "4604:12:51" + }, + "nativeSrc": "4604:12:51", + "nodeType": "YulExpressionStatement", + "src": "4604:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "4581:2:51", + "nodeType": "YulIdentifier", + "src": "4581:2:51" + }, + { + "kind": "number", + "nativeSrc": "4585:4:51", + "nodeType": "YulLiteral", + "src": "4585:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4577:3:51", + "nodeType": "YulIdentifier", + "src": "4577:3:51" + }, + "nativeSrc": "4577:13:51", + "nodeType": "YulFunctionCall", + "src": "4577:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "4592:7:51", + "nodeType": "YulIdentifier", + "src": "4592:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4573:3:51", + "nodeType": "YulIdentifier", + "src": "4573:3:51" + }, + "nativeSrc": "4573:27:51", + "nodeType": "YulFunctionCall", + "src": "4573:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4566:6:51", + "nodeType": "YulIdentifier", + "src": "4566:6:51" + }, + "nativeSrc": "4566:35:51", + "nodeType": "YulFunctionCall", + "src": "4566:35:51" + }, + "nativeSrc": "4563:55:51", + "nodeType": "YulIf", + "src": "4563:55:51" + }, + { + "nativeSrc": "4627:84:51", + "nodeType": "YulAssignment", + "src": "4627:84:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "4676:2:51", + "nodeType": "YulIdentifier", + "src": "4676:2:51" + }, + { + "kind": "number", + "nativeSrc": "4680:2:51", + "nodeType": "YulLiteral", + "src": "4680:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4672:3:51", + "nodeType": "YulIdentifier", + "src": "4672:3:51" + }, + "nativeSrc": "4672:11:51", + "nodeType": "YulFunctionCall", + "src": "4672:11:51" + }, + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "4698:2:51", + "nodeType": "YulIdentifier", + "src": "4698:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4685:12:51", + "nodeType": "YulIdentifier", + "src": "4685:12:51" + }, + "nativeSrc": "4685:16:51", + "nodeType": "YulFunctionCall", + "src": "4685:16:51" + }, + { + "name": "dataEnd", + "nativeSrc": "4703:7:51", + "nodeType": "YulIdentifier", + "src": "4703:7:51" + } + ], + "functionName": { + "name": "abi_decode_available_length_string", + "nativeSrc": "4637:34:51", + "nodeType": "YulIdentifier", + "src": "4637:34:51" + }, + "nativeSrc": "4637:74:51", + "nodeType": "YulFunctionCall", + "src": "4637:74:51" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "4627:6:51", + "nodeType": "YulIdentifier", + "src": "4627:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "3922:795:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3994:9:51", + "nodeType": "YulTypedName", + "src": "3994:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4005:7:51", + "nodeType": "YulTypedName", + "src": "4005:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4017:6:51", + "nodeType": "YulTypedName", + "src": "4017:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4025:6:51", + "nodeType": "YulTypedName", + "src": "4025:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4033:6:51", + "nodeType": "YulTypedName", + "src": "4033:6:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4041:6:51", + "nodeType": "YulTypedName", + "src": "4041:6:51", + "type": "" + } + ], + "src": "3922:795:51" + }, + { + "body": { + "nativeSrc": "4821:103:51", + "nodeType": "YulBlock", + "src": "4821:103:51", + "statements": [ + { + "nativeSrc": "4831:26:51", + "nodeType": "YulAssignment", + "src": "4831:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4843:9:51", + "nodeType": "YulIdentifier", + "src": "4843:9:51" + }, + { + "kind": "number", + "nativeSrc": "4854:2:51", + "nodeType": "YulLiteral", + "src": "4854:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4839:3:51", + "nodeType": "YulIdentifier", + "src": "4839:3:51" + }, + "nativeSrc": "4839:18:51", + "nodeType": "YulFunctionCall", + "src": "4839:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4831:4:51", + "nodeType": "YulIdentifier", + "src": "4831:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4873:9:51", + "nodeType": "YulIdentifier", + "src": "4873:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4888:6:51", + "nodeType": "YulIdentifier", + "src": "4888:6:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4900:3:51", + "nodeType": "YulLiteral", + "src": "4900:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "4905:10:51", + "nodeType": "YulLiteral", + "src": "4905:10:51", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4896:3:51", + "nodeType": "YulIdentifier", + "src": "4896:3:51" + }, + "nativeSrc": "4896:20:51", + "nodeType": "YulFunctionCall", + "src": "4896:20:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4884:3:51", + "nodeType": "YulIdentifier", + "src": "4884:3:51" + }, + "nativeSrc": "4884:33:51", + "nodeType": "YulFunctionCall", + "src": "4884:33:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4866:6:51", + "nodeType": "YulIdentifier", + "src": "4866:6:51" + }, + "nativeSrc": "4866:52:51", + "nodeType": "YulFunctionCall", + "src": "4866:52:51" + }, + "nativeSrc": "4866:52:51", + "nodeType": "YulExpressionStatement", + "src": "4866:52:51" + } + ] + }, + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nativeSrc": "4722:202:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4790:9:51", + "nodeType": "YulTypedName", + "src": "4790:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4801:6:51", + "nodeType": "YulTypedName", + "src": "4801:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4812:4:51", + "nodeType": "YulTypedName", + "src": "4812:4:51", + "type": "" + } + ], + "src": "4722:202:51" + }, + { + "body": { + "nativeSrc": "5030:76:51", + "nodeType": "YulBlock", + "src": "5030:76:51", + "statements": [ + { + "nativeSrc": "5040:26:51", + "nodeType": "YulAssignment", + "src": "5040:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5052:9:51", + "nodeType": "YulIdentifier", + "src": "5052:9:51" + }, + { + "kind": "number", + "nativeSrc": "5063:2:51", + "nodeType": "YulLiteral", + "src": "5063:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5048:3:51", + "nodeType": "YulIdentifier", + "src": "5048:3:51" + }, + "nativeSrc": "5048:18:51", + "nodeType": "YulFunctionCall", + "src": "5048:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5040:4:51", + "nodeType": "YulIdentifier", + "src": "5040:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5082:9:51", + "nodeType": "YulIdentifier", + "src": "5082:9:51" + }, + { + "name": "value0", + "nativeSrc": "5093:6:51", + "nodeType": "YulIdentifier", + "src": "5093:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5075:6:51", + "nodeType": "YulIdentifier", + "src": "5075:6:51" + }, + "nativeSrc": "5075:25:51", + "nodeType": "YulFunctionCall", + "src": "5075:25:51" + }, + "nativeSrc": "5075:25:51", + "nodeType": "YulExpressionStatement", + "src": "5075:25:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "4929:177:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4999:9:51", + "nodeType": "YulTypedName", + "src": "4999:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5010:6:51", + "nodeType": "YulTypedName", + "src": "5010:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5021:4:51", + "nodeType": "YulTypedName", + "src": "5021:4:51", + "type": "" + } + ], + "src": "4929:177:51" + }, + { + "body": { + "nativeSrc": "5215:352:51", + "nodeType": "YulBlock", + "src": "5215:352:51", + "statements": [ + { + "body": { + "nativeSrc": "5261:16:51", + "nodeType": "YulBlock", + "src": "5261:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5270:1:51", + "nodeType": "YulLiteral", + "src": "5270:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5273:1:51", + "nodeType": "YulLiteral", + "src": "5273:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5263:6:51", + "nodeType": "YulIdentifier", + "src": "5263:6:51" + }, + "nativeSrc": "5263:12:51", + "nodeType": "YulFunctionCall", + "src": "5263:12:51" + }, + "nativeSrc": "5263:12:51", + "nodeType": "YulExpressionStatement", + "src": "5263:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5236:7:51", + "nodeType": "YulIdentifier", + "src": "5236:7:51" + }, + { + "name": "headStart", + "nativeSrc": "5245:9:51", + "nodeType": "YulIdentifier", + "src": "5245:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5232:3:51", + "nodeType": "YulIdentifier", + "src": "5232:3:51" + }, + "nativeSrc": "5232:23:51", + "nodeType": "YulFunctionCall", + "src": "5232:23:51" + }, + { + "kind": "number", + "nativeSrc": "5257:2:51", + "nodeType": "YulLiteral", + "src": "5257:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5228:3:51", + "nodeType": "YulIdentifier", + "src": "5228:3:51" + }, + "nativeSrc": "5228:32:51", + "nodeType": "YulFunctionCall", + "src": "5228:32:51" + }, + "nativeSrc": "5225:52:51", + "nodeType": "YulIf", + "src": "5225:52:51" + }, + { + "nativeSrc": "5286:36:51", + "nodeType": "YulVariableDeclaration", + "src": "5286:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5312:9:51", + "nodeType": "YulIdentifier", + "src": "5312:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5299:12:51", + "nodeType": "YulIdentifier", + "src": "5299:12:51" + }, + "nativeSrc": "5299:23:51", + "nodeType": "YulFunctionCall", + "src": "5299:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5290:5:51", + "nodeType": "YulTypedName", + "src": "5290:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5356:5:51", + "nodeType": "YulIdentifier", + "src": "5356:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "5331:24:51", + "nodeType": "YulIdentifier", + "src": "5331:24:51" + }, + "nativeSrc": "5331:31:51", + "nodeType": "YulFunctionCall", + "src": "5331:31:51" + }, + "nativeSrc": "5331:31:51", + "nodeType": "YulExpressionStatement", + "src": "5331:31:51" + }, + { + "nativeSrc": "5371:15:51", + "nodeType": "YulAssignment", + "src": "5371:15:51", + "value": { + "name": "value", + "nativeSrc": "5381:5:51", + "nodeType": "YulIdentifier", + "src": "5381:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5371:6:51", + "nodeType": "YulIdentifier", + "src": "5371:6:51" + } + ] + }, + { + "nativeSrc": "5395:47:51", + "nodeType": "YulVariableDeclaration", + "src": "5395:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5427:9:51", + "nodeType": "YulIdentifier", + "src": "5427:9:51" + }, + { + "kind": "number", + "nativeSrc": "5438:2:51", + "nodeType": "YulLiteral", + "src": "5438:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5423:3:51", + "nodeType": "YulIdentifier", + "src": "5423:3:51" + }, + "nativeSrc": "5423:18:51", + "nodeType": "YulFunctionCall", + "src": "5423:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5410:12:51", + "nodeType": "YulIdentifier", + "src": "5410:12:51" + }, + "nativeSrc": "5410:32:51", + "nodeType": "YulFunctionCall", + "src": "5410:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "5399:7:51", + "nodeType": "YulTypedName", + "src": "5399:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "5476:7:51", + "nodeType": "YulIdentifier", + "src": "5476:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "5451:24:51", + "nodeType": "YulIdentifier", + "src": "5451:24:51" + }, + "nativeSrc": "5451:33:51", + "nodeType": "YulFunctionCall", + "src": "5451:33:51" + }, + "nativeSrc": "5451:33:51", + "nodeType": "YulExpressionStatement", + "src": "5451:33:51" + }, + { + "nativeSrc": "5493:17:51", + "nodeType": "YulAssignment", + "src": "5493:17:51", + "value": { + "name": "value_1", + "nativeSrc": "5503:7:51", + "nodeType": "YulIdentifier", + "src": "5503:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5493:6:51", + "nodeType": "YulIdentifier", + "src": "5493:6:51" + } + ] + }, + { + "nativeSrc": "5519:42:51", + "nodeType": "YulAssignment", + "src": "5519:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5546:9:51", + "nodeType": "YulIdentifier", + "src": "5546:9:51" + }, + { + "kind": "number", + "nativeSrc": "5557:2:51", + "nodeType": "YulLiteral", + "src": "5557:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5542:3:51", + "nodeType": "YulIdentifier", + "src": "5542:3:51" + }, + "nativeSrc": "5542:18:51", + "nodeType": "YulFunctionCall", + "src": "5542:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5529:12:51", + "nodeType": "YulIdentifier", + "src": "5529:12:51" + }, + "nativeSrc": "5529:32:51", + "nodeType": "YulFunctionCall", + "src": "5529:32:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5519:6:51", + "nodeType": "YulIdentifier", + "src": "5519:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "5111:456:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5165:9:51", + "nodeType": "YulTypedName", + "src": "5165:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5176:7:51", + "nodeType": "YulTypedName", + "src": "5176:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5188:6:51", + "nodeType": "YulTypedName", + "src": "5188:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5196:6:51", + "nodeType": "YulTypedName", + "src": "5196:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5204:6:51", + "nodeType": "YulTypedName", + "src": "5204:6:51", + "type": "" + } + ], + "src": "5111:456:51" + }, + { + "body": { + "nativeSrc": "5642:110:51", + "nodeType": "YulBlock", + "src": "5642:110:51", + "statements": [ + { + "body": { + "nativeSrc": "5688:16:51", + "nodeType": "YulBlock", + "src": "5688:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5697:1:51", + "nodeType": "YulLiteral", + "src": "5697:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5700:1:51", + "nodeType": "YulLiteral", + "src": "5700:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5690:6:51", + "nodeType": "YulIdentifier", + "src": "5690:6:51" + }, + "nativeSrc": "5690:12:51", + "nodeType": "YulFunctionCall", + "src": "5690:12:51" + }, + "nativeSrc": "5690:12:51", + "nodeType": "YulExpressionStatement", + "src": "5690:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5663:7:51", + "nodeType": "YulIdentifier", + "src": "5663:7:51" + }, + { + "name": "headStart", + "nativeSrc": "5672:9:51", + "nodeType": "YulIdentifier", + "src": "5672:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5659:3:51", + "nodeType": "YulIdentifier", + "src": "5659:3:51" + }, + "nativeSrc": "5659:23:51", + "nodeType": "YulFunctionCall", + "src": "5659:23:51" + }, + { + "kind": "number", + "nativeSrc": "5684:2:51", + "nodeType": "YulLiteral", + "src": "5684:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5655:3:51", + "nodeType": "YulIdentifier", + "src": "5655:3:51" + }, + "nativeSrc": "5655:32:51", + "nodeType": "YulFunctionCall", + "src": "5655:32:51" + }, + "nativeSrc": "5652:52:51", + "nodeType": "YulIf", + "src": "5652:52:51" + }, + { + "nativeSrc": "5713:33:51", + "nodeType": "YulAssignment", + "src": "5713:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5736:9:51", + "nodeType": "YulIdentifier", + "src": "5736:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5723:12:51", + "nodeType": "YulIdentifier", + "src": "5723:12:51" + }, + "nativeSrc": "5723:23:51", + "nodeType": "YulFunctionCall", + "src": "5723:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5713:6:51", + "nodeType": "YulIdentifier", + "src": "5713:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "5572:180:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5608:9:51", + "nodeType": "YulTypedName", + "src": "5608:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5619:7:51", + "nodeType": "YulTypedName", + "src": "5619:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5631:6:51", + "nodeType": "YulTypedName", + "src": "5631:6:51", + "type": "" + } + ], + "src": "5572:180:51" + }, + { + "body": { + "nativeSrc": "5858:76:51", + "nodeType": "YulBlock", + "src": "5858:76:51", + "statements": [ + { + "nativeSrc": "5868:26:51", + "nodeType": "YulAssignment", + "src": "5868:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5880:9:51", + "nodeType": "YulIdentifier", + "src": "5880:9:51" + }, + { + "kind": "number", + "nativeSrc": "5891:2:51", + "nodeType": "YulLiteral", + "src": "5891:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5876:3:51", + "nodeType": "YulIdentifier", + "src": "5876:3:51" + }, + "nativeSrc": "5876:18:51", + "nodeType": "YulFunctionCall", + "src": "5876:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5868:4:51", + "nodeType": "YulIdentifier", + "src": "5868:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5910:9:51", + "nodeType": "YulIdentifier", + "src": "5910:9:51" + }, + { + "name": "value0", + "nativeSrc": "5921:6:51", + "nodeType": "YulIdentifier", + "src": "5921:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5903:6:51", + "nodeType": "YulIdentifier", + "src": "5903:6:51" + }, + "nativeSrc": "5903:25:51", + "nodeType": "YulFunctionCall", + "src": "5903:25:51" + }, + "nativeSrc": "5903:25:51", + "nodeType": "YulExpressionStatement", + "src": "5903:25:51" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5757:177:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5827:9:51", + "nodeType": "YulTypedName", + "src": "5827:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5838:6:51", + "nodeType": "YulTypedName", + "src": "5838:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5849:4:51", + "nodeType": "YulTypedName", + "src": "5849:4:51", + "type": "" + } + ], + "src": "5757:177:51" + }, + { + "body": { + "nativeSrc": "6026:228:51", + "nodeType": "YulBlock", + "src": "6026:228:51", + "statements": [ + { + "body": { + "nativeSrc": "6072:16:51", + "nodeType": "YulBlock", + "src": "6072:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6081:1:51", + "nodeType": "YulLiteral", + "src": "6081:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6084:1:51", + "nodeType": "YulLiteral", + "src": "6084:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6074:6:51", + "nodeType": "YulIdentifier", + "src": "6074:6:51" + }, + "nativeSrc": "6074:12:51", + "nodeType": "YulFunctionCall", + "src": "6074:12:51" + }, + "nativeSrc": "6074:12:51", + "nodeType": "YulExpressionStatement", + "src": "6074:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6047:7:51", + "nodeType": "YulIdentifier", + "src": "6047:7:51" + }, + { + "name": "headStart", + "nativeSrc": "6056:9:51", + "nodeType": "YulIdentifier", + "src": "6056:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6043:3:51", + "nodeType": "YulIdentifier", + "src": "6043:3:51" + }, + "nativeSrc": "6043:23:51", + "nodeType": "YulFunctionCall", + "src": "6043:23:51" + }, + { + "kind": "number", + "nativeSrc": "6068:2:51", + "nodeType": "YulLiteral", + "src": "6068:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6039:3:51", + "nodeType": "YulIdentifier", + "src": "6039:3:51" + }, + "nativeSrc": "6039:32:51", + "nodeType": "YulFunctionCall", + "src": "6039:32:51" + }, + "nativeSrc": "6036:52:51", + "nodeType": "YulIf", + "src": "6036:52:51" + }, + { + "nativeSrc": "6097:33:51", + "nodeType": "YulAssignment", + "src": "6097:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6120:9:51", + "nodeType": "YulIdentifier", + "src": "6120:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6107:12:51", + "nodeType": "YulIdentifier", + "src": "6107:12:51" + }, + "nativeSrc": "6107:23:51", + "nodeType": "YulFunctionCall", + "src": "6107:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6097:6:51", + "nodeType": "YulIdentifier", + "src": "6097:6:51" + } + ] + }, + { + "nativeSrc": "6139:45:51", + "nodeType": "YulVariableDeclaration", + "src": "6139:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6169:9:51", + "nodeType": "YulIdentifier", + "src": "6169:9:51" + }, + { + "kind": "number", + "nativeSrc": "6180:2:51", + "nodeType": "YulLiteral", + "src": "6180:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6165:3:51", + "nodeType": "YulIdentifier", + "src": "6165:3:51" + }, + "nativeSrc": "6165:18:51", + "nodeType": "YulFunctionCall", + "src": "6165:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6152:12:51", + "nodeType": "YulIdentifier", + "src": "6152:12:51" + }, + "nativeSrc": "6152:32:51", + "nodeType": "YulFunctionCall", + "src": "6152:32:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "6143:5:51", + "nodeType": "YulTypedName", + "src": "6143:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6218:5:51", + "nodeType": "YulIdentifier", + "src": "6218:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "6193:24:51", + "nodeType": "YulIdentifier", + "src": "6193:24:51" + }, + "nativeSrc": "6193:31:51", + "nodeType": "YulFunctionCall", + "src": "6193:31:51" + }, + "nativeSrc": "6193:31:51", + "nodeType": "YulExpressionStatement", + "src": "6193:31:51" + }, + { + "nativeSrc": "6233:15:51", + "nodeType": "YulAssignment", + "src": "6233:15:51", + "value": { + "name": "value", + "nativeSrc": "6243:5:51", + "nodeType": "YulIdentifier", + "src": "6243:5:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6233:6:51", + "nodeType": "YulIdentifier", + "src": "6233:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "5939:315:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5984:9:51", + "nodeType": "YulTypedName", + "src": "5984:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5995:7:51", + "nodeType": "YulTypedName", + "src": "5995:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6007:6:51", + "nodeType": "YulTypedName", + "src": "6007:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6015:6:51", + "nodeType": "YulTypedName", + "src": "6015:6:51", + "type": "" + } + ], + "src": "5939:315:51" + }, + { + "body": { + "nativeSrc": "6316:143:51", + "nodeType": "YulBlock", + "src": "6316:143:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6333:3:51", + "nodeType": "YulIdentifier", + "src": "6333:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6348:5:51", + "nodeType": "YulIdentifier", + "src": "6348:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6342:5:51", + "nodeType": "YulIdentifier", + "src": "6342:5:51" + }, + "nativeSrc": "6342:12:51", + "nodeType": "YulFunctionCall", + "src": "6342:12:51" + }, + { + "kind": "number", + "nativeSrc": "6356:20:51", + "nodeType": "YulLiteral", + "src": "6356:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6338:3:51", + "nodeType": "YulIdentifier", + "src": "6338:3:51" + }, + "nativeSrc": "6338:39:51", + "nodeType": "YulFunctionCall", + "src": "6338:39:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6326:6:51", + "nodeType": "YulIdentifier", + "src": "6326:6:51" + }, + "nativeSrc": "6326:52:51", + "nodeType": "YulFunctionCall", + "src": "6326:52:51" + }, + "nativeSrc": "6326:52:51", + "nodeType": "YulExpressionStatement", + "src": "6326:52:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6398:3:51", + "nodeType": "YulIdentifier", + "src": "6398:3:51" + }, + { + "kind": "number", + "nativeSrc": "6403:4:51", + "nodeType": "YulLiteral", + "src": "6403:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6394:3:51", + "nodeType": "YulIdentifier", + "src": "6394:3:51" + }, + "nativeSrc": "6394:14:51", + "nodeType": "YulFunctionCall", + "src": "6394:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6424:5:51", + "nodeType": "YulIdentifier", + "src": "6424:5:51" + }, + { + "kind": "number", + "nativeSrc": "6431:4:51", + "nodeType": "YulLiteral", + "src": "6431:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6420:3:51", + "nodeType": "YulIdentifier", + "src": "6420:3:51" + }, + "nativeSrc": "6420:16:51", + "nodeType": "YulFunctionCall", + "src": "6420:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6414:5:51", + "nodeType": "YulIdentifier", + "src": "6414:5:51" + }, + "nativeSrc": "6414:23:51", + "nodeType": "YulFunctionCall", + "src": "6414:23:51" + }, + { + "kind": "number", + "nativeSrc": "6439:12:51", + "nodeType": "YulLiteral", + "src": "6439:12:51", + "type": "", + "value": "0xffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6410:3:51", + "nodeType": "YulIdentifier", + "src": "6410:3:51" + }, + "nativeSrc": "6410:42:51", + "nodeType": "YulFunctionCall", + "src": "6410:42:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6387:6:51", + "nodeType": "YulIdentifier", + "src": "6387:6:51" + }, + "nativeSrc": "6387:66:51", + "nodeType": "YulFunctionCall", + "src": "6387:66:51" + }, + "nativeSrc": "6387:66:51", + "nodeType": "YulExpressionStatement", + "src": "6387:66:51" + } + ] + }, + "name": "abi_encode_struct_RentingParams", + "nativeSrc": "6259:200:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6300:5:51", + "nodeType": "YulTypedName", + "src": "6300:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "6307:3:51", + "nodeType": "YulTypedName", + "src": "6307:3:51", + "type": "" + } + ], + "src": "6259:200:51" + }, + { + "body": { + "nativeSrc": "6855:492:51", + "nodeType": "YulBlock", + "src": "6855:492:51", + "statements": [ + { + "nativeSrc": "6865:27:51", + "nodeType": "YulAssignment", + "src": "6865:27:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6877:9:51", + "nodeType": "YulIdentifier", + "src": "6877:9:51" + }, + { + "kind": "number", + "nativeSrc": "6888:3:51", + "nodeType": "YulLiteral", + "src": "6888:3:51", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6873:3:51", + "nodeType": "YulIdentifier", + "src": "6873:3:51" + }, + "nativeSrc": "6873:19:51", + "nodeType": "YulFunctionCall", + "src": "6873:19:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6865:4:51", + "nodeType": "YulIdentifier", + "src": "6865:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6908:9:51", + "nodeType": "YulIdentifier", + "src": "6908:9:51" + }, + { + "name": "value0", + "nativeSrc": "6919:6:51", + "nodeType": "YulIdentifier", + "src": "6919:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6901:6:51", + "nodeType": "YulIdentifier", + "src": "6901:6:51" + }, + "nativeSrc": "6901:25:51", + "nodeType": "YulFunctionCall", + "src": "6901:25:51" + }, + "nativeSrc": "6901:25:51", + "nodeType": "YulExpressionStatement", + "src": "6901:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6946:9:51", + "nodeType": "YulIdentifier", + "src": "6946:9:51" + }, + { + "kind": "number", + "nativeSrc": "6957:2:51", + "nodeType": "YulLiteral", + "src": "6957:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6942:3:51", + "nodeType": "YulIdentifier", + "src": "6942:3:51" + }, + "nativeSrc": "6942:18:51", + "nodeType": "YulFunctionCall", + "src": "6942:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "6966:6:51", + "nodeType": "YulIdentifier", + "src": "6966:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6982:3:51", + "nodeType": "YulLiteral", + "src": "6982:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "6987:1:51", + "nodeType": "YulLiteral", + "src": "6987:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6978:3:51", + "nodeType": "YulIdentifier", + "src": "6978:3:51" + }, + "nativeSrc": "6978:11:51", + "nodeType": "YulFunctionCall", + "src": "6978:11:51" + }, + { + "kind": "number", + "nativeSrc": "6991:1:51", + "nodeType": "YulLiteral", + "src": "6991:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6974:3:51", + "nodeType": "YulIdentifier", + "src": "6974:3:51" + }, + "nativeSrc": "6974:19:51", + "nodeType": "YulFunctionCall", + "src": "6974:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6962:3:51", + "nodeType": "YulIdentifier", + "src": "6962:3:51" + }, + "nativeSrc": "6962:32:51", + "nodeType": "YulFunctionCall", + "src": "6962:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6935:6:51", + "nodeType": "YulIdentifier", + "src": "6935:6:51" + }, + "nativeSrc": "6935:60:51", + "nodeType": "YulFunctionCall", + "src": "6935:60:51" + }, + "nativeSrc": "6935:60:51", + "nodeType": "YulExpressionStatement", + "src": "6935:60:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7015:9:51", + "nodeType": "YulIdentifier", + "src": "7015:9:51" + }, + { + "kind": "number", + "nativeSrc": "7026:2:51", + "nodeType": "YulLiteral", + "src": "7026:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7011:3:51", + "nodeType": "YulIdentifier", + "src": "7011:3:51" + }, + "nativeSrc": "7011:18:51", + "nodeType": "YulFunctionCall", + "src": "7011:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "7035:6:51", + "nodeType": "YulIdentifier", + "src": "7035:6:51" + }, + { + "kind": "number", + "nativeSrc": "7043:14:51", + "nodeType": "YulLiteral", + "src": "7043:14:51", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7031:3:51", + "nodeType": "YulIdentifier", + "src": "7031:3:51" + }, + "nativeSrc": "7031:27:51", + "nodeType": "YulFunctionCall", + "src": "7031:27:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7004:6:51", + "nodeType": "YulIdentifier", + "src": "7004:6:51" + }, + "nativeSrc": "7004:55:51", + "nodeType": "YulFunctionCall", + "src": "7004:55:51" + }, + "nativeSrc": "7004:55:51", + "nodeType": "YulExpressionStatement", + "src": "7004:55:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7079:9:51", + "nodeType": "YulIdentifier", + "src": "7079:9:51" + }, + { + "kind": "number", + "nativeSrc": "7090:2:51", + "nodeType": "YulLiteral", + "src": "7090:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7075:3:51", + "nodeType": "YulIdentifier", + "src": "7075:3:51" + }, + "nativeSrc": "7075:18:51", + "nodeType": "YulFunctionCall", + "src": "7075:18:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "7109:6:51", + "nodeType": "YulIdentifier", + "src": "7109:6:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7102:6:51", + "nodeType": "YulIdentifier", + "src": "7102:6:51" + }, + "nativeSrc": "7102:14:51", + "nodeType": "YulFunctionCall", + "src": "7102:14:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7095:6:51", + "nodeType": "YulIdentifier", + "src": "7095:6:51" + }, + "nativeSrc": "7095:22:51", + "nodeType": "YulFunctionCall", + "src": "7095:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7068:6:51", + "nodeType": "YulIdentifier", + "src": "7068:6:51" + }, + "nativeSrc": "7068:50:51", + "nodeType": "YulFunctionCall", + "src": "7068:50:51" + }, + "nativeSrc": "7068:50:51", + "nodeType": "YulExpressionStatement", + "src": "7068:50:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "7159:6:51", + "nodeType": "YulIdentifier", + "src": "7159:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7171:9:51", + "nodeType": "YulIdentifier", + "src": "7171:9:51" + }, + { + "kind": "number", + "nativeSrc": "7182:3:51", + "nodeType": "YulLiteral", + "src": "7182:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7167:3:51", + "nodeType": "YulIdentifier", + "src": "7167:3:51" + }, + "nativeSrc": "7167:19:51", + "nodeType": "YulFunctionCall", + "src": "7167:19:51" + } + ], + "functionName": { + "name": "abi_encode_struct_RentingParams", + "nativeSrc": "7127:31:51", + "nodeType": "YulIdentifier", + "src": "7127:31:51" + }, + "nativeSrc": "7127:60:51", + "nodeType": "YulFunctionCall", + "src": "7127:60:51" + }, + "nativeSrc": "7127:60:51", + "nodeType": "YulExpressionStatement", + "src": "7127:60:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7207:9:51", + "nodeType": "YulIdentifier", + "src": "7207:9:51" + }, + { + "kind": "number", + "nativeSrc": "7218:3:51", + "nodeType": "YulLiteral", + "src": "7218:3:51", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7203:3:51", + "nodeType": "YulIdentifier", + "src": "7203:3:51" + }, + "nativeSrc": "7203:19:51", + "nodeType": "YulFunctionCall", + "src": "7203:19:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value5", + "nativeSrc": "7244:6:51", + "nodeType": "YulIdentifier", + "src": "7244:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7238:5:51", + "nodeType": "YulIdentifier", + "src": "7238:5:51" + }, + "nativeSrc": "7238:13:51", + "nodeType": "YulFunctionCall", + "src": "7238:13:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7231:6:51", + "nodeType": "YulIdentifier", + "src": "7231:6:51" + }, + "nativeSrc": "7231:21:51", + "nodeType": "YulFunctionCall", + "src": "7231:21:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7224:6:51", + "nodeType": "YulIdentifier", + "src": "7224:6:51" + }, + "nativeSrc": "7224:29:51", + "nodeType": "YulFunctionCall", + "src": "7224:29:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7196:6:51", + "nodeType": "YulIdentifier", + "src": "7196:6:51" + }, + "nativeSrc": "7196:58:51", + "nodeType": "YulFunctionCall", + "src": "7196:58:51" + }, + "nativeSrc": "7196:58:51", + "nodeType": "YulExpressionStatement", + "src": "7196:58:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7274:9:51", + "nodeType": "YulIdentifier", + "src": "7274:9:51" + }, + { + "kind": "number", + "nativeSrc": "7285:3:51", + "nodeType": "YulLiteral", + "src": "7285:3:51", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7270:3:51", + "nodeType": "YulIdentifier", + "src": "7270:3:51" + }, + "nativeSrc": "7270:19:51", + "nodeType": "YulFunctionCall", + "src": "7270:19:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value5", + "nativeSrc": "7305:6:51", + "nodeType": "YulIdentifier", + "src": "7305:6:51" + }, + { + "kind": "number", + "nativeSrc": "7313:2:51", + "nodeType": "YulLiteral", + "src": "7313:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7301:3:51", + "nodeType": "YulIdentifier", + "src": "7301:3:51" + }, + "nativeSrc": "7301:15:51", + "nodeType": "YulFunctionCall", + "src": "7301:15:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7295:5:51", + "nodeType": "YulIdentifier", + "src": "7295:5:51" + }, + "nativeSrc": "7295:22:51", + "nodeType": "YulFunctionCall", + "src": "7295:22:51" + }, + { + "kind": "number", + "nativeSrc": "7319:20:51", + "nodeType": "YulLiteral", + "src": "7319:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7291:3:51", + "nodeType": "YulIdentifier", + "src": "7291:3:51" + }, + "nativeSrc": "7291:49:51", + "nodeType": "YulFunctionCall", + "src": "7291:49:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7263:6:51", + "nodeType": "YulIdentifier", + "src": "7263:6:51" + }, + "nativeSrc": "7263:78:51", + "nodeType": "YulFunctionCall", + "src": "7263:78:51" + }, + "nativeSrc": "7263:78:51", + "nodeType": "YulExpressionStatement", + "src": "7263:78:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_contract$_IAddOnlyAppWhitelist_$11098_t_uint48_t_bool_t_struct$_RentingParams_$11666_memory_ptr_t_struct$_SellingParams_$11746_memory_ptr__to_t_uint256_t_address_t_uint48_t_bool_t_struct$_RentingParams_$11666_memory_ptr_t_struct$_SellingParams_$11746_memory_ptr__fromStack_reversed", + "nativeSrc": "6464:883:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6784:9:51", + "nodeType": "YulTypedName", + "src": "6784:9:51", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "6795:6:51", + "nodeType": "YulTypedName", + "src": "6795:6:51", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "6803:6:51", + "nodeType": "YulTypedName", + "src": "6803:6:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "6811:6:51", + "nodeType": "YulTypedName", + "src": "6811:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6819:6:51", + "nodeType": "YulTypedName", + "src": "6819:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6827:6:51", + "nodeType": "YulTypedName", + "src": "6827:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6835:6:51", + "nodeType": "YulTypedName", + "src": "6835:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6846:4:51", + "nodeType": "YulTypedName", + "src": "6846:4:51", + "type": "" + } + ], + "src": "6464:883:51" + }, + { + "body": { + "nativeSrc": "7486:352:51", + "nodeType": "YulBlock", + "src": "7486:352:51", + "statements": [ + { + "body": { + "nativeSrc": "7532:16:51", + "nodeType": "YulBlock", + "src": "7532:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7541:1:51", + "nodeType": "YulLiteral", + "src": "7541:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7544:1:51", + "nodeType": "YulLiteral", + "src": "7544:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7534:6:51", + "nodeType": "YulIdentifier", + "src": "7534:6:51" + }, + "nativeSrc": "7534:12:51", + "nodeType": "YulFunctionCall", + "src": "7534:12:51" + }, + "nativeSrc": "7534:12:51", + "nodeType": "YulExpressionStatement", + "src": "7534:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7507:7:51", + "nodeType": "YulIdentifier", + "src": "7507:7:51" + }, + { + "name": "headStart", + "nativeSrc": "7516:9:51", + "nodeType": "YulIdentifier", + "src": "7516:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7503:3:51", + "nodeType": "YulIdentifier", + "src": "7503:3:51" + }, + "nativeSrc": "7503:23:51", + "nodeType": "YulFunctionCall", + "src": "7503:23:51" + }, + { + "kind": "number", + "nativeSrc": "7528:2:51", + "nodeType": "YulLiteral", + "src": "7528:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7499:3:51", + "nodeType": "YulIdentifier", + "src": "7499:3:51" + }, + "nativeSrc": "7499:32:51", + "nodeType": "YulFunctionCall", + "src": "7499:32:51" + }, + "nativeSrc": "7496:52:51", + "nodeType": "YulIf", + "src": "7496:52:51" + }, + { + "nativeSrc": "7557:33:51", + "nodeType": "YulAssignment", + "src": "7557:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7580:9:51", + "nodeType": "YulIdentifier", + "src": "7580:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7567:12:51", + "nodeType": "YulIdentifier", + "src": "7567:12:51" + }, + "nativeSrc": "7567:23:51", + "nodeType": "YulFunctionCall", + "src": "7567:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7557:6:51", + "nodeType": "YulIdentifier", + "src": "7557:6:51" + } + ] + }, + { + "nativeSrc": "7599:45:51", + "nodeType": "YulVariableDeclaration", + "src": "7599:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7629:9:51", + "nodeType": "YulIdentifier", + "src": "7629:9:51" + }, + { + "kind": "number", + "nativeSrc": "7640:2:51", + "nodeType": "YulLiteral", + "src": "7640:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7625:3:51", + "nodeType": "YulIdentifier", + "src": "7625:3:51" + }, + "nativeSrc": "7625:18:51", + "nodeType": "YulFunctionCall", + "src": "7625:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7612:12:51", + "nodeType": "YulIdentifier", + "src": "7612:12:51" + }, + "nativeSrc": "7612:32:51", + "nodeType": "YulFunctionCall", + "src": "7612:32:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "7603:5:51", + "nodeType": "YulTypedName", + "src": "7603:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7678:5:51", + "nodeType": "YulIdentifier", + "src": "7678:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "7653:24:51", + "nodeType": "YulIdentifier", + "src": "7653:24:51" + }, + "nativeSrc": "7653:31:51", + "nodeType": "YulFunctionCall", + "src": "7653:31:51" + }, + "nativeSrc": "7653:31:51", + "nodeType": "YulExpressionStatement", + "src": "7653:31:51" + }, + { + "nativeSrc": "7693:15:51", + "nodeType": "YulAssignment", + "src": "7693:15:51", + "value": { + "name": "value", + "nativeSrc": "7703:5:51", + "nodeType": "YulIdentifier", + "src": "7703:5:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "7693:6:51", + "nodeType": "YulIdentifier", + "src": "7693:6:51" + } + ] + }, + { + "nativeSrc": "7717:47:51", + "nodeType": "YulVariableDeclaration", + "src": "7717:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7749:9:51", + "nodeType": "YulIdentifier", + "src": "7749:9:51" + }, + { + "kind": "number", + "nativeSrc": "7760:2:51", + "nodeType": "YulLiteral", + "src": "7760:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7745:3:51", + "nodeType": "YulIdentifier", + "src": "7745:3:51" + }, + "nativeSrc": "7745:18:51", + "nodeType": "YulFunctionCall", + "src": "7745:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7732:12:51", + "nodeType": "YulIdentifier", + "src": "7732:12:51" + }, + "nativeSrc": "7732:32:51", + "nodeType": "YulFunctionCall", + "src": "7732:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "7721:7:51", + "nodeType": "YulTypedName", + "src": "7721:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "7798:7:51", + "nodeType": "YulIdentifier", + "src": "7798:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "7773:24:51", + "nodeType": "YulIdentifier", + "src": "7773:24:51" + }, + "nativeSrc": "7773:33:51", + "nodeType": "YulFunctionCall", + "src": "7773:33:51" + }, + "nativeSrc": "7773:33:51", + "nodeType": "YulExpressionStatement", + "src": "7773:33:51" + }, + { + "nativeSrc": "7815:17:51", + "nodeType": "YulAssignment", + "src": "7815:17:51", + "value": { + "name": "value_1", + "nativeSrc": "7825:7:51", + "nodeType": "YulIdentifier", + "src": "7825:7:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "7815:6:51", + "nodeType": "YulIdentifier", + "src": "7815:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_addresst_contract$_IAddOnlyAppWhitelist_$11098", + "nativeSrc": "7352:486:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7436:9:51", + "nodeType": "YulTypedName", + "src": "7436:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7447:7:51", + "nodeType": "YulTypedName", + "src": "7447:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7459:6:51", + "nodeType": "YulTypedName", + "src": "7459:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7467:6:51", + "nodeType": "YulTypedName", + "src": "7467:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "7475:6:51", + "nodeType": "YulTypedName", + "src": "7475:6:51", + "type": "" + } + ], + "src": "7352:486:51" + }, + { + "body": { + "nativeSrc": "7981:102:51", + "nodeType": "YulBlock", + "src": "7981:102:51", + "statements": [ + { + "nativeSrc": "7991:26:51", + "nodeType": "YulAssignment", + "src": "7991:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8003:9:51", + "nodeType": "YulIdentifier", + "src": "8003:9:51" + }, + { + "kind": "number", + "nativeSrc": "8014:2:51", + "nodeType": "YulLiteral", + "src": "8014:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7999:3:51", + "nodeType": "YulIdentifier", + "src": "7999:3:51" + }, + "nativeSrc": "7999:18:51", + "nodeType": "YulFunctionCall", + "src": "7999:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7991:4:51", + "nodeType": "YulIdentifier", + "src": "7991:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8033:9:51", + "nodeType": "YulIdentifier", + "src": "8033:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "8048:6:51", + "nodeType": "YulIdentifier", + "src": "8048:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8064:3:51", + "nodeType": "YulLiteral", + "src": "8064:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "8069:1:51", + "nodeType": "YulLiteral", + "src": "8069:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "8060:3:51", + "nodeType": "YulIdentifier", + "src": "8060:3:51" + }, + "nativeSrc": "8060:11:51", + "nodeType": "YulFunctionCall", + "src": "8060:11:51" + }, + { + "kind": "number", + "nativeSrc": "8073:1:51", + "nodeType": "YulLiteral", + "src": "8073:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8056:3:51", + "nodeType": "YulIdentifier", + "src": "8056:3:51" + }, + "nativeSrc": "8056:19:51", + "nodeType": "YulFunctionCall", + "src": "8056:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8044:3:51", + "nodeType": "YulIdentifier", + "src": "8044:3:51" + }, + "nativeSrc": "8044:32:51", + "nodeType": "YulFunctionCall", + "src": "8044:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8026:6:51", + "nodeType": "YulIdentifier", + "src": "8026:6:51" + }, + "nativeSrc": "8026:51:51", + "nodeType": "YulFunctionCall", + "src": "8026:51:51" + }, + "nativeSrc": "8026:51:51", + "nodeType": "YulExpressionStatement", + "src": "8026:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_AddOnlyAppWhitelistRegistry_$12170__to_t_address__fromStack_reversed", + "nativeSrc": "7843:240:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7950:9:51", + "nodeType": "YulTypedName", + "src": "7950:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7961:6:51", + "nodeType": "YulTypedName", + "src": "7961:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7972:4:51", + "nodeType": "YulTypedName", + "src": "7972:4:51", + "type": "" + } + ], + "src": "7843:240:51" + }, + { + "body": { + "nativeSrc": "8132:87:51", + "nodeType": "YulBlock", + "src": "8132:87:51", + "statements": [ + { + "body": { + "nativeSrc": "8197:16:51", + "nodeType": "YulBlock", + "src": "8197:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8206:1:51", + "nodeType": "YulLiteral", + "src": "8206:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8209:1:51", + "nodeType": "YulLiteral", + "src": "8209:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8199:6:51", + "nodeType": "YulIdentifier", + "src": "8199:6:51" + }, + "nativeSrc": "8199:12:51", + "nodeType": "YulFunctionCall", + "src": "8199:12:51" + }, + "nativeSrc": "8199:12:51", + "nodeType": "YulExpressionStatement", + "src": "8199:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8155:5:51", + "nodeType": "YulIdentifier", + "src": "8155:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8166:5:51", + "nodeType": "YulIdentifier", + "src": "8166:5:51" + }, + { + "kind": "number", + "nativeSrc": "8173:20:51", + "nodeType": "YulLiteral", + "src": "8173:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8162:3:51", + "nodeType": "YulIdentifier", + "src": "8162:3:51" + }, + "nativeSrc": "8162:32:51", + "nodeType": "YulFunctionCall", + "src": "8162:32:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8152:2:51", + "nodeType": "YulIdentifier", + "src": "8152:2:51" + }, + "nativeSrc": "8152:43:51", + "nodeType": "YulFunctionCall", + "src": "8152:43:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8145:6:51", + "nodeType": "YulIdentifier", + "src": "8145:6:51" + }, + "nativeSrc": "8145:51:51", + "nodeType": "YulFunctionCall", + "src": "8145:51:51" + }, + "nativeSrc": "8142:71:51", + "nodeType": "YulIf", + "src": "8142:71:51" + } + ] + }, + "name": "validator_revert_uint72", + "nativeSrc": "8088:131:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8121:5:51", + "nodeType": "YulTypedName", + "src": "8121:5:51", + "type": "" + } + ], + "src": "8088:131:51" + }, + { + "body": { + "nativeSrc": "8327:424:51", + "nodeType": "YulBlock", + "src": "8327:424:51", + "statements": [ + { + "body": { + "nativeSrc": "8373:16:51", + "nodeType": "YulBlock", + "src": "8373:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8382:1:51", + "nodeType": "YulLiteral", + "src": "8382:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8385:1:51", + "nodeType": "YulLiteral", + "src": "8385:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8375:6:51", + "nodeType": "YulIdentifier", + "src": "8375:6:51" + }, + "nativeSrc": "8375:12:51", + "nodeType": "YulFunctionCall", + "src": "8375:12:51" + }, + "nativeSrc": "8375:12:51", + "nodeType": "YulExpressionStatement", + "src": "8375:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8348:7:51", + "nodeType": "YulIdentifier", + "src": "8348:7:51" + }, + { + "name": "headStart", + "nativeSrc": "8357:9:51", + "nodeType": "YulIdentifier", + "src": "8357:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8344:3:51", + "nodeType": "YulIdentifier", + "src": "8344:3:51" + }, + "nativeSrc": "8344:23:51", + "nodeType": "YulFunctionCall", + "src": "8344:23:51" + }, + { + "kind": "number", + "nativeSrc": "8369:2:51", + "nodeType": "YulLiteral", + "src": "8369:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8340:3:51", + "nodeType": "YulIdentifier", + "src": "8340:3:51" + }, + "nativeSrc": "8340:32:51", + "nodeType": "YulFunctionCall", + "src": "8340:32:51" + }, + "nativeSrc": "8337:52:51", + "nodeType": "YulIf", + "src": "8337:52:51" + }, + { + "nativeSrc": "8398:36:51", + "nodeType": "YulVariableDeclaration", + "src": "8398:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8424:9:51", + "nodeType": "YulIdentifier", + "src": "8424:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8411:12:51", + "nodeType": "YulIdentifier", + "src": "8411:12:51" + }, + "nativeSrc": "8411:23:51", + "nodeType": "YulFunctionCall", + "src": "8411:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8402:5:51", + "nodeType": "YulTypedName", + "src": "8402:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8468:5:51", + "nodeType": "YulIdentifier", + "src": "8468:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "8443:24:51", + "nodeType": "YulIdentifier", + "src": "8443:24:51" + }, + "nativeSrc": "8443:31:51", + "nodeType": "YulFunctionCall", + "src": "8443:31:51" + }, + "nativeSrc": "8443:31:51", + "nodeType": "YulExpressionStatement", + "src": "8443:31:51" + }, + { + "nativeSrc": "8483:15:51", + "nodeType": "YulAssignment", + "src": "8483:15:51", + "value": { + "name": "value", + "nativeSrc": "8493:5:51", + "nodeType": "YulIdentifier", + "src": "8493:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8483:6:51", + "nodeType": "YulIdentifier", + "src": "8483:6:51" + } + ] + }, + { + "nativeSrc": "8507:47:51", + "nodeType": "YulVariableDeclaration", + "src": "8507:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8539:9:51", + "nodeType": "YulIdentifier", + "src": "8539:9:51" + }, + { + "kind": "number", + "nativeSrc": "8550:2:51", + "nodeType": "YulLiteral", + "src": "8550:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8535:3:51", + "nodeType": "YulIdentifier", + "src": "8535:3:51" + }, + "nativeSrc": "8535:18:51", + "nodeType": "YulFunctionCall", + "src": "8535:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8522:12:51", + "nodeType": "YulIdentifier", + "src": "8522:12:51" + }, + "nativeSrc": "8522:32:51", + "nodeType": "YulFunctionCall", + "src": "8522:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "8511:7:51", + "nodeType": "YulTypedName", + "src": "8511:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "8588:7:51", + "nodeType": "YulIdentifier", + "src": "8588:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "8563:24:51", + "nodeType": "YulIdentifier", + "src": "8563:24:51" + }, + "nativeSrc": "8563:33:51", + "nodeType": "YulFunctionCall", + "src": "8563:33:51" + }, + "nativeSrc": "8563:33:51", + "nodeType": "YulExpressionStatement", + "src": "8563:33:51" + }, + { + "nativeSrc": "8605:17:51", + "nodeType": "YulAssignment", + "src": "8605:17:51", + "value": { + "name": "value_1", + "nativeSrc": "8615:7:51", + "nodeType": "YulIdentifier", + "src": "8615:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "8605:6:51", + "nodeType": "YulIdentifier", + "src": "8605:6:51" + } + ] + }, + { + "nativeSrc": "8631:47:51", + "nodeType": "YulVariableDeclaration", + "src": "8631:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8663:9:51", + "nodeType": "YulIdentifier", + "src": "8663:9:51" + }, + { + "kind": "number", + "nativeSrc": "8674:2:51", + "nodeType": "YulLiteral", + "src": "8674:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8659:3:51", + "nodeType": "YulIdentifier", + "src": "8659:3:51" + }, + "nativeSrc": "8659:18:51", + "nodeType": "YulFunctionCall", + "src": "8659:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8646:12:51", + "nodeType": "YulIdentifier", + "src": "8646:12:51" + }, + "nativeSrc": "8646:32:51", + "nodeType": "YulFunctionCall", + "src": "8646:32:51" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "8635:7:51", + "nodeType": "YulTypedName", + "src": "8635:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "8711:7:51", + "nodeType": "YulIdentifier", + "src": "8711:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint72", + "nativeSrc": "8687:23:51", + "nodeType": "YulIdentifier", + "src": "8687:23:51" + }, + "nativeSrc": "8687:32:51", + "nodeType": "YulFunctionCall", + "src": "8687:32:51" + }, + "nativeSrc": "8687:32:51", + "nodeType": "YulExpressionStatement", + "src": "8687:32:51" + }, + { + "nativeSrc": "8728:17:51", + "nodeType": "YulAssignment", + "src": "8728:17:51", + "value": { + "name": "value_2", + "nativeSrc": "8738:7:51", + "nodeType": "YulIdentifier", + "src": "8738:7:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "8728:6:51", + "nodeType": "YulIdentifier", + "src": "8728:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint72", + "nativeSrc": "8224:527:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8277:9:51", + "nodeType": "YulTypedName", + "src": "8277:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8288:7:51", + "nodeType": "YulTypedName", + "src": "8288:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8300:6:51", + "nodeType": "YulTypedName", + "src": "8300:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8308:6:51", + "nodeType": "YulTypedName", + "src": "8308:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "8316:6:51", + "nodeType": "YulTypedName", + "src": "8316:6:51", + "type": "" + } + ], + "src": "8224:527:51" + }, + { + "body": { + "nativeSrc": "8896:796:51", + "nodeType": "YulBlock", + "src": "8896:796:51", + "statements": [ + { + "body": { + "nativeSrc": "8943:16:51", + "nodeType": "YulBlock", + "src": "8943:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8952:1:51", + "nodeType": "YulLiteral", + "src": "8952:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8955:1:51", + "nodeType": "YulLiteral", + "src": "8955:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8945:6:51", + "nodeType": "YulIdentifier", + "src": "8945:6:51" + }, + "nativeSrc": "8945:12:51", + "nodeType": "YulFunctionCall", + "src": "8945:12:51" + }, + "nativeSrc": "8945:12:51", + "nodeType": "YulExpressionStatement", + "src": "8945:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8917:7:51", + "nodeType": "YulIdentifier", + "src": "8917:7:51" + }, + { + "name": "headStart", + "nativeSrc": "8926:9:51", + "nodeType": "YulIdentifier", + "src": "8926:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8913:3:51", + "nodeType": "YulIdentifier", + "src": "8913:3:51" + }, + "nativeSrc": "8913:23:51", + "nodeType": "YulFunctionCall", + "src": "8913:23:51" + }, + { + "kind": "number", + "nativeSrc": "8938:3:51", + "nodeType": "YulLiteral", + "src": "8938:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8909:3:51", + "nodeType": "YulIdentifier", + "src": "8909:3:51" + }, + "nativeSrc": "8909:33:51", + "nodeType": "YulFunctionCall", + "src": "8909:33:51" + }, + "nativeSrc": "8906:53:51", + "nodeType": "YulIf", + "src": "8906:53:51" + }, + { + "nativeSrc": "8968:36:51", + "nodeType": "YulVariableDeclaration", + "src": "8968:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8994:9:51", + "nodeType": "YulIdentifier", + "src": "8994:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8981:12:51", + "nodeType": "YulIdentifier", + "src": "8981:12:51" + }, + "nativeSrc": "8981:23:51", + "nodeType": "YulFunctionCall", + "src": "8981:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8972:5:51", + "nodeType": "YulTypedName", + "src": "8972:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9038:5:51", + "nodeType": "YulIdentifier", + "src": "9038:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "9013:24:51", + "nodeType": "YulIdentifier", + "src": "9013:24:51" + }, + "nativeSrc": "9013:31:51", + "nodeType": "YulFunctionCall", + "src": "9013:31:51" + }, + "nativeSrc": "9013:31:51", + "nodeType": "YulExpressionStatement", + "src": "9013:31:51" + }, + { + "nativeSrc": "9053:15:51", + "nodeType": "YulAssignment", + "src": "9053:15:51", + "value": { + "name": "value", + "nativeSrc": "9063:5:51", + "nodeType": "YulIdentifier", + "src": "9063:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9053:6:51", + "nodeType": "YulIdentifier", + "src": "9053:6:51" + } + ] + }, + { + "nativeSrc": "9077:42:51", + "nodeType": "YulAssignment", + "src": "9077:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9104:9:51", + "nodeType": "YulIdentifier", + "src": "9104:9:51" + }, + { + "kind": "number", + "nativeSrc": "9115:2:51", + "nodeType": "YulLiteral", + "src": "9115:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9100:3:51", + "nodeType": "YulIdentifier", + "src": "9100:3:51" + }, + "nativeSrc": "9100:18:51", + "nodeType": "YulFunctionCall", + "src": "9100:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9087:12:51", + "nodeType": "YulIdentifier", + "src": "9087:12:51" + }, + "nativeSrc": "9087:32:51", + "nodeType": "YulFunctionCall", + "src": "9087:32:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9077:6:51", + "nodeType": "YulIdentifier", + "src": "9077:6:51" + } + ] + }, + { + "nativeSrc": "9128:47:51", + "nodeType": "YulVariableDeclaration", + "src": "9128:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9160:9:51", + "nodeType": "YulIdentifier", + "src": "9160:9:51" + }, + { + "kind": "number", + "nativeSrc": "9171:2:51", + "nodeType": "YulLiteral", + "src": "9171:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9156:3:51", + "nodeType": "YulIdentifier", + "src": "9156:3:51" + }, + "nativeSrc": "9156:18:51", + "nodeType": "YulFunctionCall", + "src": "9156:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9143:12:51", + "nodeType": "YulIdentifier", + "src": "9143:12:51" + }, + "nativeSrc": "9143:32:51", + "nodeType": "YulFunctionCall", + "src": "9143:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "9132:7:51", + "nodeType": "YulTypedName", + "src": "9132:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "9209:7:51", + "nodeType": "YulIdentifier", + "src": "9209:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "9184:24:51", + "nodeType": "YulIdentifier", + "src": "9184:24:51" + }, + "nativeSrc": "9184:33:51", + "nodeType": "YulFunctionCall", + "src": "9184:33:51" + }, + "nativeSrc": "9184:33:51", + "nodeType": "YulExpressionStatement", + "src": "9184:33:51" + }, + { + "nativeSrc": "9226:17:51", + "nodeType": "YulAssignment", + "src": "9226:17:51", + "value": { + "name": "value_1", + "nativeSrc": "9236:7:51", + "nodeType": "YulIdentifier", + "src": "9236:7:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "9226:6:51", + "nodeType": "YulIdentifier", + "src": "9226:6:51" + } + ] + }, + { + "nativeSrc": "9252:46:51", + "nodeType": "YulVariableDeclaration", + "src": "9252:46:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9283:9:51", + "nodeType": "YulIdentifier", + "src": "9283:9:51" + }, + { + "kind": "number", + "nativeSrc": "9294:2:51", + "nodeType": "YulLiteral", + "src": "9294:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9279:3:51", + "nodeType": "YulIdentifier", + "src": "9279:3:51" + }, + "nativeSrc": "9279:18:51", + "nodeType": "YulFunctionCall", + "src": "9279:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9266:12:51", + "nodeType": "YulIdentifier", + "src": "9266:12:51" + }, + "nativeSrc": "9266:32:51", + "nodeType": "YulFunctionCall", + "src": "9266:32:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9256:6:51", + "nodeType": "YulTypedName", + "src": "9256:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "9307:28:51", + "nodeType": "YulVariableDeclaration", + "src": "9307:28:51", + "value": { + "kind": "number", + "nativeSrc": "9317:18:51", + "nodeType": "YulLiteral", + "src": "9317:18:51", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "9311:2:51", + "nodeType": "YulTypedName", + "src": "9311:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9362:16:51", + "nodeType": "YulBlock", + "src": "9362:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9371:1:51", + "nodeType": "YulLiteral", + "src": "9371:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9374:1:51", + "nodeType": "YulLiteral", + "src": "9374:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9364:6:51", + "nodeType": "YulIdentifier", + "src": "9364:6:51" + }, + "nativeSrc": "9364:12:51", + "nodeType": "YulFunctionCall", + "src": "9364:12:51" + }, + "nativeSrc": "9364:12:51", + "nodeType": "YulExpressionStatement", + "src": "9364:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9350:6:51", + "nodeType": "YulIdentifier", + "src": "9350:6:51" + }, + { + "name": "_1", + "nativeSrc": "9358:2:51", + "nodeType": "YulIdentifier", + "src": "9358:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9347:2:51", + "nodeType": "YulIdentifier", + "src": "9347:2:51" + }, + "nativeSrc": "9347:14:51", + "nodeType": "YulFunctionCall", + "src": "9347:14:51" + }, + "nativeSrc": "9344:34:51", + "nodeType": "YulIf", + "src": "9344:34:51" + }, + { + "nativeSrc": "9387:32:51", + "nodeType": "YulVariableDeclaration", + "src": "9387:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9401:9:51", + "nodeType": "YulIdentifier", + "src": "9401:9:51" + }, + { + "name": "offset", + "nativeSrc": "9412:6:51", + "nodeType": "YulIdentifier", + "src": "9412:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9397:3:51", + "nodeType": "YulIdentifier", + "src": "9397:3:51" + }, + "nativeSrc": "9397:22:51", + "nodeType": "YulFunctionCall", + "src": "9397:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "9391:2:51", + "nodeType": "YulTypedName", + "src": "9391:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9467:16:51", + "nodeType": "YulBlock", + "src": "9467:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9476:1:51", + "nodeType": "YulLiteral", + "src": "9476:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9479:1:51", + "nodeType": "YulLiteral", + "src": "9479:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9469:6:51", + "nodeType": "YulIdentifier", + "src": "9469:6:51" + }, + "nativeSrc": "9469:12:51", + "nodeType": "YulFunctionCall", + "src": "9469:12:51" + }, + "nativeSrc": "9469:12:51", + "nodeType": "YulExpressionStatement", + "src": "9469:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "9446:2:51", + "nodeType": "YulIdentifier", + "src": "9446:2:51" + }, + { + "kind": "number", + "nativeSrc": "9450:4:51", + "nodeType": "YulLiteral", + "src": "9450:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9442:3:51", + "nodeType": "YulIdentifier", + "src": "9442:3:51" + }, + "nativeSrc": "9442:13:51", + "nodeType": "YulFunctionCall", + "src": "9442:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "9457:7:51", + "nodeType": "YulIdentifier", + "src": "9457:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9438:3:51", + "nodeType": "YulIdentifier", + "src": "9438:3:51" + }, + "nativeSrc": "9438:27:51", + "nodeType": "YulFunctionCall", + "src": "9438:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9431:6:51", + "nodeType": "YulIdentifier", + "src": "9431:6:51" + }, + "nativeSrc": "9431:35:51", + "nodeType": "YulFunctionCall", + "src": "9431:35:51" + }, + "nativeSrc": "9428:55:51", + "nodeType": "YulIf", + "src": "9428:55:51" + }, + { + "nativeSrc": "9492:30:51", + "nodeType": "YulVariableDeclaration", + "src": "9492:30:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "9519:2:51", + "nodeType": "YulIdentifier", + "src": "9519:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9506:12:51", + "nodeType": "YulIdentifier", + "src": "9506:12:51" + }, + "nativeSrc": "9506:16:51", + "nodeType": "YulFunctionCall", + "src": "9506:16:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9496:6:51", + "nodeType": "YulTypedName", + "src": "9496:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9549:16:51", + "nodeType": "YulBlock", + "src": "9549:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9558:1:51", + "nodeType": "YulLiteral", + "src": "9558:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9561:1:51", + "nodeType": "YulLiteral", + "src": "9561:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9551:6:51", + "nodeType": "YulIdentifier", + "src": "9551:6:51" + }, + "nativeSrc": "9551:12:51", + "nodeType": "YulFunctionCall", + "src": "9551:12:51" + }, + "nativeSrc": "9551:12:51", + "nodeType": "YulExpressionStatement", + "src": "9551:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "9537:6:51", + "nodeType": "YulIdentifier", + "src": "9537:6:51" + }, + { + "name": "_1", + "nativeSrc": "9545:2:51", + "nodeType": "YulIdentifier", + "src": "9545:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9534:2:51", + "nodeType": "YulIdentifier", + "src": "9534:2:51" + }, + "nativeSrc": "9534:14:51", + "nodeType": "YulFunctionCall", + "src": "9534:14:51" + }, + "nativeSrc": "9531:34:51", + "nodeType": "YulIf", + "src": "9531:34:51" + }, + { + "body": { + "nativeSrc": "9615:16:51", + "nodeType": "YulBlock", + "src": "9615:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9624:1:51", + "nodeType": "YulLiteral", + "src": "9624:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9627:1:51", + "nodeType": "YulLiteral", + "src": "9627:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9617:6:51", + "nodeType": "YulIdentifier", + "src": "9617:6:51" + }, + "nativeSrc": "9617:12:51", + "nodeType": "YulFunctionCall", + "src": "9617:12:51" + }, + "nativeSrc": "9617:12:51", + "nodeType": "YulExpressionStatement", + "src": "9617:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "9588:2:51", + "nodeType": "YulIdentifier", + "src": "9588:2:51" + }, + { + "name": "length", + "nativeSrc": "9592:6:51", + "nodeType": "YulIdentifier", + "src": "9592:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9584:3:51", + "nodeType": "YulIdentifier", + "src": "9584:3:51" + }, + "nativeSrc": "9584:15:51", + "nodeType": "YulFunctionCall", + "src": "9584:15:51" + }, + { + "kind": "number", + "nativeSrc": "9601:2:51", + "nodeType": "YulLiteral", + "src": "9601:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9580:3:51", + "nodeType": "YulIdentifier", + "src": "9580:3:51" + }, + "nativeSrc": "9580:24:51", + "nodeType": "YulFunctionCall", + "src": "9580:24:51" + }, + { + "name": "dataEnd", + "nativeSrc": "9606:7:51", + "nodeType": "YulIdentifier", + "src": "9606:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9577:2:51", + "nodeType": "YulIdentifier", + "src": "9577:2:51" + }, + "nativeSrc": "9577:37:51", + "nodeType": "YulFunctionCall", + "src": "9577:37:51" + }, + "nativeSrc": "9574:57:51", + "nodeType": "YulIf", + "src": "9574:57:51" + }, + { + "nativeSrc": "9640:21:51", + "nodeType": "YulAssignment", + "src": "9640:21:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "9654:2:51", + "nodeType": "YulIdentifier", + "src": "9654:2:51" + }, + { + "kind": "number", + "nativeSrc": "9658:2:51", + "nodeType": "YulLiteral", + "src": "9658:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9650:3:51", + "nodeType": "YulIdentifier", + "src": "9650:3:51" + }, + "nativeSrc": "9650:11:51", + "nodeType": "YulFunctionCall", + "src": "9650:11:51" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "9640:6:51", + "nodeType": "YulIdentifier", + "src": "9640:6:51" + } + ] + }, + { + "nativeSrc": "9670:16:51", + "nodeType": "YulAssignment", + "src": "9670:16:51", + "value": { + "name": "length", + "nativeSrc": "9680:6:51", + "nodeType": "YulIdentifier", + "src": "9680:6:51" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "9670:6:51", + "nodeType": "YulIdentifier", + "src": "9670:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr", + "nativeSrc": "8756:936:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8830:9:51", + "nodeType": "YulTypedName", + "src": "8830:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8841:7:51", + "nodeType": "YulTypedName", + "src": "8841:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8853:6:51", + "nodeType": "YulTypedName", + "src": "8853:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8861:6:51", + "nodeType": "YulTypedName", + "src": "8861:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "8869:6:51", + "nodeType": "YulTypedName", + "src": "8869:6:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "8877:6:51", + "nodeType": "YulTypedName", + "src": "8877:6:51", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "8885:6:51", + "nodeType": "YulTypedName", + "src": "8885:6:51", + "type": "" + } + ], + "src": "8756:936:51" + }, + { + "body": { + "nativeSrc": "9741:79:51", + "nodeType": "YulBlock", + "src": "9741:79:51", + "statements": [ + { + "body": { + "nativeSrc": "9798:16:51", + "nodeType": "YulBlock", + "src": "9798:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9807:1:51", + "nodeType": "YulLiteral", + "src": "9807:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9810:1:51", + "nodeType": "YulLiteral", + "src": "9810:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9800:6:51", + "nodeType": "YulIdentifier", + "src": "9800:6:51" + }, + "nativeSrc": "9800:12:51", + "nodeType": "YulFunctionCall", + "src": "9800:12:51" + }, + "nativeSrc": "9800:12:51", + "nodeType": "YulExpressionStatement", + "src": "9800:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9764:5:51", + "nodeType": "YulIdentifier", + "src": "9764:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9775:5:51", + "nodeType": "YulIdentifier", + "src": "9775:5:51" + }, + { + "kind": "number", + "nativeSrc": "9782:12:51", + "nodeType": "YulLiteral", + "src": "9782:12:51", + "type": "", + "value": "0xffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9771:3:51", + "nodeType": "YulIdentifier", + "src": "9771:3:51" + }, + "nativeSrc": "9771:24:51", + "nodeType": "YulFunctionCall", + "src": "9771:24:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "9761:2:51", + "nodeType": "YulIdentifier", + "src": "9761:2:51" + }, + "nativeSrc": "9761:35:51", + "nodeType": "YulFunctionCall", + "src": "9761:35:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9754:6:51", + "nodeType": "YulIdentifier", + "src": "9754:6:51" + }, + "nativeSrc": "9754:43:51", + "nodeType": "YulFunctionCall", + "src": "9754:43:51" + }, + "nativeSrc": "9751:63:51", + "nodeType": "YulIf", + "src": "9751:63:51" + } + ] + }, + "name": "validator_revert_uint40", + "nativeSrc": "9697:123:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "9730:5:51", + "nodeType": "YulTypedName", + "src": "9730:5:51", + "type": "" + } + ], + "src": "9697:123:51" + }, + { + "body": { + "nativeSrc": "9895:556:51", + "nodeType": "YulBlock", + "src": "9895:556:51", + "statements": [ + { + "body": { + "nativeSrc": "9939:16:51", + "nodeType": "YulBlock", + "src": "9939:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9948:1:51", + "nodeType": "YulLiteral", + "src": "9948:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9951:1:51", + "nodeType": "YulLiteral", + "src": "9951:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9941:6:51", + "nodeType": "YulIdentifier", + "src": "9941:6:51" + }, + "nativeSrc": "9941:12:51", + "nodeType": "YulFunctionCall", + "src": "9941:12:51" + }, + "nativeSrc": "9941:12:51", + "nodeType": "YulExpressionStatement", + "src": "9941:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "9916:3:51", + "nodeType": "YulIdentifier", + "src": "9916:3:51" + }, + { + "name": "headStart", + "nativeSrc": "9921:9:51", + "nodeType": "YulIdentifier", + "src": "9921:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9912:3:51", + "nodeType": "YulIdentifier", + "src": "9912:3:51" + }, + "nativeSrc": "9912:19:51", + "nodeType": "YulFunctionCall", + "src": "9912:19:51" + }, + { + "kind": "number", + "nativeSrc": "9933:4:51", + "nodeType": "YulLiteral", + "src": "9933:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9908:3:51", + "nodeType": "YulIdentifier", + "src": "9908:3:51" + }, + "nativeSrc": "9908:30:51", + "nodeType": "YulFunctionCall", + "src": "9908:30:51" + }, + "nativeSrc": "9905:50:51", + "nodeType": "YulIf", + "src": "9905:50:51" + }, + { + "nativeSrc": "9964:25:51", + "nodeType": "YulVariableDeclaration", + "src": "9964:25:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9984:4:51", + "nodeType": "YulLiteral", + "src": "9984:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9978:5:51", + "nodeType": "YulIdentifier", + "src": "9978:5:51" + }, + "nativeSrc": "9978:11:51", + "nodeType": "YulFunctionCall", + "src": "9978:11:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "9968:6:51", + "nodeType": "YulTypedName", + "src": "9968:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "9998:35:51", + "nodeType": "YulVariableDeclaration", + "src": "9998:35:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10020:6:51", + "nodeType": "YulIdentifier", + "src": "10020:6:51" + }, + { + "kind": "number", + "nativeSrc": "10028:4:51", + "nodeType": "YulLiteral", + "src": "10028:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10016:3:51", + "nodeType": "YulIdentifier", + "src": "10016:3:51" + }, + "nativeSrc": "10016:17:51", + "nodeType": "YulFunctionCall", + "src": "10016:17:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "10002:10:51", + "nodeType": "YulTypedName", + "src": "10002:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10108:22:51", + "nodeType": "YulBlock", + "src": "10108:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "10110:16:51", + "nodeType": "YulIdentifier", + "src": "10110:16:51" + }, + "nativeSrc": "10110:18:51", + "nodeType": "YulFunctionCall", + "src": "10110:18:51" + }, + "nativeSrc": "10110:18:51", + "nodeType": "YulExpressionStatement", + "src": "10110:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "10051:10:51", + "nodeType": "YulIdentifier", + "src": "10051:10:51" + }, + { + "kind": "number", + "nativeSrc": "10063:18:51", + "nodeType": "YulLiteral", + "src": "10063:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10048:2:51", + "nodeType": "YulIdentifier", + "src": "10048:2:51" + }, + "nativeSrc": "10048:34:51", + "nodeType": "YulFunctionCall", + "src": "10048:34:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "10087:10:51", + "nodeType": "YulIdentifier", + "src": "10087:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "10099:6:51", + "nodeType": "YulIdentifier", + "src": "10099:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "10084:2:51", + "nodeType": "YulIdentifier", + "src": "10084:2:51" + }, + "nativeSrc": "10084:22:51", + "nodeType": "YulFunctionCall", + "src": "10084:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "10045:2:51", + "nodeType": "YulIdentifier", + "src": "10045:2:51" + }, + "nativeSrc": "10045:62:51", + "nodeType": "YulFunctionCall", + "src": "10045:62:51" + }, + "nativeSrc": "10042:88:51", + "nodeType": "YulIf", + "src": "10042:88:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10146:4:51", + "nodeType": "YulLiteral", + "src": "10146:4:51", + "type": "", + "value": "0x40" + }, + { + "name": "newFreePtr", + "nativeSrc": "10152:10:51", + "nodeType": "YulIdentifier", + "src": "10152:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10139:6:51", + "nodeType": "YulIdentifier", + "src": "10139:6:51" + }, + "nativeSrc": "10139:24:51", + "nodeType": "YulFunctionCall", + "src": "10139:24:51" + }, + "nativeSrc": "10139:24:51", + "nodeType": "YulExpressionStatement", + "src": "10139:24:51" + }, + { + "nativeSrc": "10172:15:51", + "nodeType": "YulAssignment", + "src": "10172:15:51", + "value": { + "name": "memPtr", + "nativeSrc": "10181:6:51", + "nodeType": "YulIdentifier", + "src": "10181:6:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "10172:5:51", + "nodeType": "YulIdentifier", + "src": "10172:5:51" + } + ] + }, + { + "nativeSrc": "10196:38:51", + "nodeType": "YulVariableDeclaration", + "src": "10196:38:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10224:9:51", + "nodeType": "YulIdentifier", + "src": "10224:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10211:12:51", + "nodeType": "YulIdentifier", + "src": "10211:12:51" + }, + "nativeSrc": "10211:23:51", + "nodeType": "YulFunctionCall", + "src": "10211:23:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "10200:7:51", + "nodeType": "YulTypedName", + "src": "10200:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "10267:7:51", + "nodeType": "YulIdentifier", + "src": "10267:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint72", + "nativeSrc": "10243:23:51", + "nodeType": "YulIdentifier", + "src": "10243:23:51" + }, + "nativeSrc": "10243:32:51", + "nodeType": "YulFunctionCall", + "src": "10243:32:51" + }, + "nativeSrc": "10243:32:51", + "nodeType": "YulExpressionStatement", + "src": "10243:32:51" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10291:6:51", + "nodeType": "YulIdentifier", + "src": "10291:6:51" + }, + { + "name": "value_1", + "nativeSrc": "10299:7:51", + "nodeType": "YulIdentifier", + "src": "10299:7:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10284:6:51", + "nodeType": "YulIdentifier", + "src": "10284:6:51" + }, + "nativeSrc": "10284:23:51", + "nodeType": "YulFunctionCall", + "src": "10284:23:51" + }, + "nativeSrc": "10284:23:51", + "nodeType": "YulExpressionStatement", + "src": "10284:23:51" + }, + { + "nativeSrc": "10316:47:51", + "nodeType": "YulVariableDeclaration", + "src": "10316:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10348:9:51", + "nodeType": "YulIdentifier", + "src": "10348:9:51" + }, + { + "kind": "number", + "nativeSrc": "10359:2:51", + "nodeType": "YulLiteral", + "src": "10359:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10344:3:51", + "nodeType": "YulIdentifier", + "src": "10344:3:51" + }, + "nativeSrc": "10344:18:51", + "nodeType": "YulFunctionCall", + "src": "10344:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10331:12:51", + "nodeType": "YulIdentifier", + "src": "10331:12:51" + }, + "nativeSrc": "10331:32:51", + "nodeType": "YulFunctionCall", + "src": "10331:32:51" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "10320:7:51", + "nodeType": "YulTypedName", + "src": "10320:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "10396:7:51", + "nodeType": "YulIdentifier", + "src": "10396:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint40", + "nativeSrc": "10372:23:51", + "nodeType": "YulIdentifier", + "src": "10372:23:51" + }, + "nativeSrc": "10372:32:51", + "nodeType": "YulFunctionCall", + "src": "10372:32:51" + }, + "nativeSrc": "10372:32:51", + "nodeType": "YulExpressionStatement", + "src": "10372:32:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "10424:6:51", + "nodeType": "YulIdentifier", + "src": "10424:6:51" + }, + { + "kind": "number", + "nativeSrc": "10432:2:51", + "nodeType": "YulLiteral", + "src": "10432:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10420:3:51", + "nodeType": "YulIdentifier", + "src": "10420:3:51" + }, + "nativeSrc": "10420:15:51", + "nodeType": "YulFunctionCall", + "src": "10420:15:51" + }, + { + "name": "value_2", + "nativeSrc": "10437:7:51", + "nodeType": "YulIdentifier", + "src": "10437:7:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10413:6:51", + "nodeType": "YulIdentifier", + "src": "10413:6:51" + }, + "nativeSrc": "10413:32:51", + "nodeType": "YulFunctionCall", + "src": "10413:32:51" + }, + "nativeSrc": "10413:32:51", + "nodeType": "YulExpressionStatement", + "src": "10413:32:51" + } + ] + }, + "name": "abi_decode_struct_RentingParams", + "nativeSrc": "9825:626:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9866:9:51", + "nodeType": "YulTypedName", + "src": "9866:9:51", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9877:3:51", + "nodeType": "YulTypedName", + "src": "9877:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "9885:5:51", + "nodeType": "YulTypedName", + "src": "9885:5:51", + "type": "" + } + ], + "src": "9825:626:51" + }, + { + "body": { + "nativeSrc": "10575:256:51", + "nodeType": "YulBlock", + "src": "10575:256:51", + "statements": [ + { + "body": { + "nativeSrc": "10621:16:51", + "nodeType": "YulBlock", + "src": "10621:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10630:1:51", + "nodeType": "YulLiteral", + "src": "10630:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10633:1:51", + "nodeType": "YulLiteral", + "src": "10633:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10623:6:51", + "nodeType": "YulIdentifier", + "src": "10623:6:51" + }, + "nativeSrc": "10623:12:51", + "nodeType": "YulFunctionCall", + "src": "10623:12:51" + }, + "nativeSrc": "10623:12:51", + "nodeType": "YulExpressionStatement", + "src": "10623:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10596:7:51", + "nodeType": "YulIdentifier", + "src": "10596:7:51" + }, + { + "name": "headStart", + "nativeSrc": "10605:9:51", + "nodeType": "YulIdentifier", + "src": "10605:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10592:3:51", + "nodeType": "YulIdentifier", + "src": "10592:3:51" + }, + "nativeSrc": "10592:23:51", + "nodeType": "YulFunctionCall", + "src": "10592:23:51" + }, + { + "kind": "number", + "nativeSrc": "10617:2:51", + "nodeType": "YulLiteral", + "src": "10617:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10588:3:51", + "nodeType": "YulIdentifier", + "src": "10588:3:51" + }, + "nativeSrc": "10588:32:51", + "nodeType": "YulFunctionCall", + "src": "10588:32:51" + }, + "nativeSrc": "10585:52:51", + "nodeType": "YulIf", + "src": "10585:52:51" + }, + { + "nativeSrc": "10646:36:51", + "nodeType": "YulVariableDeclaration", + "src": "10646:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10672:9:51", + "nodeType": "YulIdentifier", + "src": "10672:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10659:12:51", + "nodeType": "YulIdentifier", + "src": "10659:12:51" + }, + "nativeSrc": "10659:23:51", + "nodeType": "YulFunctionCall", + "src": "10659:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "10650:5:51", + "nodeType": "YulTypedName", + "src": "10650:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "10716:5:51", + "nodeType": "YulIdentifier", + "src": "10716:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "10691:24:51", + "nodeType": "YulIdentifier", + "src": "10691:24:51" + }, + "nativeSrc": "10691:31:51", + "nodeType": "YulFunctionCall", + "src": "10691:31:51" + }, + "nativeSrc": "10691:31:51", + "nodeType": "YulExpressionStatement", + "src": "10691:31:51" + }, + { + "nativeSrc": "10731:15:51", + "nodeType": "YulAssignment", + "src": "10731:15:51", + "value": { + "name": "value", + "nativeSrc": "10741:5:51", + "nodeType": "YulIdentifier", + "src": "10741:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10731:6:51", + "nodeType": "YulIdentifier", + "src": "10731:6:51" + } + ] + }, + { + "nativeSrc": "10755:70:51", + "nodeType": "YulAssignment", + "src": "10755:70:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10801:9:51", + "nodeType": "YulIdentifier", + "src": "10801:9:51" + }, + { + "kind": "number", + "nativeSrc": "10812:2:51", + "nodeType": "YulLiteral", + "src": "10812:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10797:3:51", + "nodeType": "YulIdentifier", + "src": "10797:3:51" + }, + "nativeSrc": "10797:18:51", + "nodeType": "YulFunctionCall", + "src": "10797:18:51" + }, + { + "name": "dataEnd", + "nativeSrc": "10817:7:51", + "nodeType": "YulIdentifier", + "src": "10817:7:51" + } + ], + "functionName": { + "name": "abi_decode_struct_RentingParams", + "nativeSrc": "10765:31:51", + "nodeType": "YulIdentifier", + "src": "10765:31:51" + }, + "nativeSrc": "10765:60:51", + "nodeType": "YulFunctionCall", + "src": "10765:60:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10755:6:51", + "nodeType": "YulIdentifier", + "src": "10755:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_struct$_RentingParams_$11666_memory_ptr", + "nativeSrc": "10456:375:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10533:9:51", + "nodeType": "YulTypedName", + "src": "10533:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10544:7:51", + "nodeType": "YulTypedName", + "src": "10544:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10556:6:51", + "nodeType": "YulTypedName", + "src": "10556:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10564:6:51", + "nodeType": "YulTypedName", + "src": "10564:6:51", + "type": "" + } + ], + "src": "10456:375:51" + }, + { + "body": { + "nativeSrc": "10935:97:51", + "nodeType": "YulBlock", + "src": "10935:97:51", + "statements": [ + { + "nativeSrc": "10945:26:51", + "nodeType": "YulAssignment", + "src": "10945:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10957:9:51", + "nodeType": "YulIdentifier", + "src": "10957:9:51" + }, + { + "kind": "number", + "nativeSrc": "10968:2:51", + "nodeType": "YulLiteral", + "src": "10968:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10953:3:51", + "nodeType": "YulIdentifier", + "src": "10953:3:51" + }, + "nativeSrc": "10953:18:51", + "nodeType": "YulFunctionCall", + "src": "10953:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10945:4:51", + "nodeType": "YulIdentifier", + "src": "10945:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10987:9:51", + "nodeType": "YulIdentifier", + "src": "10987:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11002:6:51", + "nodeType": "YulIdentifier", + "src": "11002:6:51" + }, + { + "kind": "number", + "nativeSrc": "11010:14:51", + "nodeType": "YulLiteral", + "src": "11010:14:51", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "10998:3:51", + "nodeType": "YulIdentifier", + "src": "10998:3:51" + }, + "nativeSrc": "10998:27:51", + "nodeType": "YulFunctionCall", + "src": "10998:27:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10980:6:51", + "nodeType": "YulIdentifier", + "src": "10980:6:51" + }, + "nativeSrc": "10980:46:51", + "nodeType": "YulFunctionCall", + "src": "10980:46:51" + }, + "nativeSrc": "10980:46:51", + "nodeType": "YulExpressionStatement", + "src": "10980:46:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed", + "nativeSrc": "10836:196:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10904:9:51", + "nodeType": "YulTypedName", + "src": "10904:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10915:6:51", + "nodeType": "YulTypedName", + "src": "10915:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10926:4:51", + "nodeType": "YulTypedName", + "src": "10926:4:51", + "type": "" + } + ], + "src": "10836:196:51" + }, + { + "body": { + "nativeSrc": "11079:76:51", + "nodeType": "YulBlock", + "src": "11079:76:51", + "statements": [ + { + "body": { + "nativeSrc": "11133:16:51", + "nodeType": "YulBlock", + "src": "11133:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11142:1:51", + "nodeType": "YulLiteral", + "src": "11142:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11145:1:51", + "nodeType": "YulLiteral", + "src": "11145:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11135:6:51", + "nodeType": "YulIdentifier", + "src": "11135:6:51" + }, + "nativeSrc": "11135:12:51", + "nodeType": "YulFunctionCall", + "src": "11135:12:51" + }, + "nativeSrc": "11135:12:51", + "nodeType": "YulExpressionStatement", + "src": "11135:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11102:5:51", + "nodeType": "YulIdentifier", + "src": "11102:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11123:5:51", + "nodeType": "YulIdentifier", + "src": "11123:5:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11116:6:51", + "nodeType": "YulIdentifier", + "src": "11116:6:51" + }, + "nativeSrc": "11116:13:51", + "nodeType": "YulFunctionCall", + "src": "11116:13:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11109:6:51", + "nodeType": "YulIdentifier", + "src": "11109:6:51" + }, + "nativeSrc": "11109:21:51", + "nodeType": "YulFunctionCall", + "src": "11109:21:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "11099:2:51", + "nodeType": "YulIdentifier", + "src": "11099:2:51" + }, + "nativeSrc": "11099:32:51", + "nodeType": "YulFunctionCall", + "src": "11099:32:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11092:6:51", + "nodeType": "YulIdentifier", + "src": "11092:6:51" + }, + "nativeSrc": "11092:40:51", + "nodeType": "YulFunctionCall", + "src": "11092:40:51" + }, + "nativeSrc": "11089:60:51", + "nodeType": "YulIf", + "src": "11089:60:51" + } + ] + }, + "name": "validator_revert_bool", + "nativeSrc": "11037:118:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11068:5:51", + "nodeType": "YulTypedName", + "src": "11068:5:51", + "type": "" + } + ], + "src": "11037:118:51" + }, + { + "body": { + "nativeSrc": "11244:298:51", + "nodeType": "YulBlock", + "src": "11244:298:51", + "statements": [ + { + "body": { + "nativeSrc": "11290:16:51", + "nodeType": "YulBlock", + "src": "11290:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11299:1:51", + "nodeType": "YulLiteral", + "src": "11299:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11302:1:51", + "nodeType": "YulLiteral", + "src": "11302:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11292:6:51", + "nodeType": "YulIdentifier", + "src": "11292:6:51" + }, + "nativeSrc": "11292:12:51", + "nodeType": "YulFunctionCall", + "src": "11292:12:51" + }, + "nativeSrc": "11292:12:51", + "nodeType": "YulExpressionStatement", + "src": "11292:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11265:7:51", + "nodeType": "YulIdentifier", + "src": "11265:7:51" + }, + { + "name": "headStart", + "nativeSrc": "11274:9:51", + "nodeType": "YulIdentifier", + "src": "11274:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11261:3:51", + "nodeType": "YulIdentifier", + "src": "11261:3:51" + }, + "nativeSrc": "11261:23:51", + "nodeType": "YulFunctionCall", + "src": "11261:23:51" + }, + { + "kind": "number", + "nativeSrc": "11286:2:51", + "nodeType": "YulLiteral", + "src": "11286:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11257:3:51", + "nodeType": "YulIdentifier", + "src": "11257:3:51" + }, + "nativeSrc": "11257:32:51", + "nodeType": "YulFunctionCall", + "src": "11257:32:51" + }, + "nativeSrc": "11254:52:51", + "nodeType": "YulIf", + "src": "11254:52:51" + }, + { + "nativeSrc": "11315:36:51", + "nodeType": "YulVariableDeclaration", + "src": "11315:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11341:9:51", + "nodeType": "YulIdentifier", + "src": "11341:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11328:12:51", + "nodeType": "YulIdentifier", + "src": "11328:12:51" + }, + "nativeSrc": "11328:23:51", + "nodeType": "YulFunctionCall", + "src": "11328:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "11319:5:51", + "nodeType": "YulTypedName", + "src": "11319:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "11385:5:51", + "nodeType": "YulIdentifier", + "src": "11385:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "11360:24:51", + "nodeType": "YulIdentifier", + "src": "11360:24:51" + }, + "nativeSrc": "11360:31:51", + "nodeType": "YulFunctionCall", + "src": "11360:31:51" + }, + "nativeSrc": "11360:31:51", + "nodeType": "YulExpressionStatement", + "src": "11360:31:51" + }, + { + "nativeSrc": "11400:15:51", + "nodeType": "YulAssignment", + "src": "11400:15:51", + "value": { + "name": "value", + "nativeSrc": "11410:5:51", + "nodeType": "YulIdentifier", + "src": "11410:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11400:6:51", + "nodeType": "YulIdentifier", + "src": "11400:6:51" + } + ] + }, + { + "nativeSrc": "11424:47:51", + "nodeType": "YulVariableDeclaration", + "src": "11424:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11456:9:51", + "nodeType": "YulIdentifier", + "src": "11456:9:51" + }, + { + "kind": "number", + "nativeSrc": "11467:2:51", + "nodeType": "YulLiteral", + "src": "11467:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11452:3:51", + "nodeType": "YulIdentifier", + "src": "11452:3:51" + }, + "nativeSrc": "11452:18:51", + "nodeType": "YulFunctionCall", + "src": "11452:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11439:12:51", + "nodeType": "YulIdentifier", + "src": "11439:12:51" + }, + "nativeSrc": "11439:32:51", + "nodeType": "YulFunctionCall", + "src": "11439:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "11428:7:51", + "nodeType": "YulTypedName", + "src": "11428:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "11502:7:51", + "nodeType": "YulIdentifier", + "src": "11502:7:51" + } + ], + "functionName": { + "name": "validator_revert_bool", + "nativeSrc": "11480:21:51", + "nodeType": "YulIdentifier", + "src": "11480:21:51" + }, + "nativeSrc": "11480:30:51", + "nodeType": "YulFunctionCall", + "src": "11480:30:51" + }, + "nativeSrc": "11480:30:51", + "nodeType": "YulExpressionStatement", + "src": "11480:30:51" + }, + { + "nativeSrc": "11519:17:51", + "nodeType": "YulAssignment", + "src": "11519:17:51", + "value": { + "name": "value_1", + "nativeSrc": "11529:7:51", + "nodeType": "YulIdentifier", + "src": "11529:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11519:6:51", + "nodeType": "YulIdentifier", + "src": "11519:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "11160:382:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11202:9:51", + "nodeType": "YulTypedName", + "src": "11202:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11213:7:51", + "nodeType": "YulTypedName", + "src": "11213:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11225:6:51", + "nodeType": "YulTypedName", + "src": "11225:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11233:6:51", + "nodeType": "YulTypedName", + "src": "11233:6:51", + "type": "" + } + ], + "src": "11160:382:51" + }, + { + "body": { + "nativeSrc": "11663:510:51", + "nodeType": "YulBlock", + "src": "11663:510:51", + "statements": [ + { + "body": { + "nativeSrc": "11709:16:51", + "nodeType": "YulBlock", + "src": "11709:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11718:1:51", + "nodeType": "YulLiteral", + "src": "11718:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11721:1:51", + "nodeType": "YulLiteral", + "src": "11721:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11711:6:51", + "nodeType": "YulIdentifier", + "src": "11711:6:51" + }, + "nativeSrc": "11711:12:51", + "nodeType": "YulFunctionCall", + "src": "11711:12:51" + }, + "nativeSrc": "11711:12:51", + "nodeType": "YulExpressionStatement", + "src": "11711:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11684:7:51", + "nodeType": "YulIdentifier", + "src": "11684:7:51" + }, + { + "name": "headStart", + "nativeSrc": "11693:9:51", + "nodeType": "YulIdentifier", + "src": "11693:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11680:3:51", + "nodeType": "YulIdentifier", + "src": "11680:3:51" + }, + "nativeSrc": "11680:23:51", + "nodeType": "YulFunctionCall", + "src": "11680:23:51" + }, + { + "kind": "number", + "nativeSrc": "11705:2:51", + "nodeType": "YulLiteral", + "src": "11705:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11676:3:51", + "nodeType": "YulIdentifier", + "src": "11676:3:51" + }, + "nativeSrc": "11676:32:51", + "nodeType": "YulFunctionCall", + "src": "11676:32:51" + }, + "nativeSrc": "11673:52:51", + "nodeType": "YulIf", + "src": "11673:52:51" + }, + { + "nativeSrc": "11734:37:51", + "nodeType": "YulVariableDeclaration", + "src": "11734:37:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11761:9:51", + "nodeType": "YulIdentifier", + "src": "11761:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11748:12:51", + "nodeType": "YulIdentifier", + "src": "11748:12:51" + }, + "nativeSrc": "11748:23:51", + "nodeType": "YulFunctionCall", + "src": "11748:23:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11738:6:51", + "nodeType": "YulTypedName", + "src": "11738:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "11780:28:51", + "nodeType": "YulVariableDeclaration", + "src": "11780:28:51", + "value": { + "kind": "number", + "nativeSrc": "11790:18:51", + "nodeType": "YulLiteral", + "src": "11790:18:51", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "11784:2:51", + "nodeType": "YulTypedName", + "src": "11784:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11835:16:51", + "nodeType": "YulBlock", + "src": "11835:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11844:1:51", + "nodeType": "YulLiteral", + "src": "11844:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11847:1:51", + "nodeType": "YulLiteral", + "src": "11847:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11837:6:51", + "nodeType": "YulIdentifier", + "src": "11837:6:51" + }, + "nativeSrc": "11837:12:51", + "nodeType": "YulFunctionCall", + "src": "11837:12:51" + }, + "nativeSrc": "11837:12:51", + "nodeType": "YulExpressionStatement", + "src": "11837:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11823:6:51", + "nodeType": "YulIdentifier", + "src": "11823:6:51" + }, + { + "name": "_1", + "nativeSrc": "11831:2:51", + "nodeType": "YulIdentifier", + "src": "11831:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11820:2:51", + "nodeType": "YulIdentifier", + "src": "11820:2:51" + }, + "nativeSrc": "11820:14:51", + "nodeType": "YulFunctionCall", + "src": "11820:14:51" + }, + "nativeSrc": "11817:34:51", + "nodeType": "YulIf", + "src": "11817:34:51" + }, + { + "nativeSrc": "11860:32:51", + "nodeType": "YulVariableDeclaration", + "src": "11860:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11874:9:51", + "nodeType": "YulIdentifier", + "src": "11874:9:51" + }, + { + "name": "offset", + "nativeSrc": "11885:6:51", + "nodeType": "YulIdentifier", + "src": "11885:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11870:3:51", + "nodeType": "YulIdentifier", + "src": "11870:3:51" + }, + "nativeSrc": "11870:22:51", + "nodeType": "YulFunctionCall", + "src": "11870:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "11864:2:51", + "nodeType": "YulTypedName", + "src": "11864:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11940:16:51", + "nodeType": "YulBlock", + "src": "11940:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11949:1:51", + "nodeType": "YulLiteral", + "src": "11949:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11952:1:51", + "nodeType": "YulLiteral", + "src": "11952:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11942:6:51", + "nodeType": "YulIdentifier", + "src": "11942:6:51" + }, + "nativeSrc": "11942:12:51", + "nodeType": "YulFunctionCall", + "src": "11942:12:51" + }, + "nativeSrc": "11942:12:51", + "nodeType": "YulExpressionStatement", + "src": "11942:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "11919:2:51", + "nodeType": "YulIdentifier", + "src": "11919:2:51" + }, + { + "kind": "number", + "nativeSrc": "11923:4:51", + "nodeType": "YulLiteral", + "src": "11923:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11915:3:51", + "nodeType": "YulIdentifier", + "src": "11915:3:51" + }, + "nativeSrc": "11915:13:51", + "nodeType": "YulFunctionCall", + "src": "11915:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "11930:7:51", + "nodeType": "YulIdentifier", + "src": "11930:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11911:3:51", + "nodeType": "YulIdentifier", + "src": "11911:3:51" + }, + "nativeSrc": "11911:27:51", + "nodeType": "YulFunctionCall", + "src": "11911:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11904:6:51", + "nodeType": "YulIdentifier", + "src": "11904:6:51" + }, + "nativeSrc": "11904:35:51", + "nodeType": "YulFunctionCall", + "src": "11904:35:51" + }, + "nativeSrc": "11901:55:51", + "nodeType": "YulIf", + "src": "11901:55:51" + }, + { + "nativeSrc": "11965:30:51", + "nodeType": "YulVariableDeclaration", + "src": "11965:30:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "11992:2:51", + "nodeType": "YulIdentifier", + "src": "11992:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11979:12:51", + "nodeType": "YulIdentifier", + "src": "11979:12:51" + }, + "nativeSrc": "11979:16:51", + "nodeType": "YulFunctionCall", + "src": "11979:16:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "11969:6:51", + "nodeType": "YulTypedName", + "src": "11969:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12022:16:51", + "nodeType": "YulBlock", + "src": "12022:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12031:1:51", + "nodeType": "YulLiteral", + "src": "12031:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12034:1:51", + "nodeType": "YulLiteral", + "src": "12034:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12024:6:51", + "nodeType": "YulIdentifier", + "src": "12024:6:51" + }, + "nativeSrc": "12024:12:51", + "nodeType": "YulFunctionCall", + "src": "12024:12:51" + }, + "nativeSrc": "12024:12:51", + "nodeType": "YulExpressionStatement", + "src": "12024:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12010:6:51", + "nodeType": "YulIdentifier", + "src": "12010:6:51" + }, + { + "name": "_1", + "nativeSrc": "12018:2:51", + "nodeType": "YulIdentifier", + "src": "12018:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12007:2:51", + "nodeType": "YulIdentifier", + "src": "12007:2:51" + }, + "nativeSrc": "12007:14:51", + "nodeType": "YulFunctionCall", + "src": "12007:14:51" + }, + "nativeSrc": "12004:34:51", + "nodeType": "YulIf", + "src": "12004:34:51" + }, + { + "body": { + "nativeSrc": "12096:16:51", + "nodeType": "YulBlock", + "src": "12096:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12105:1:51", + "nodeType": "YulLiteral", + "src": "12105:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12108:1:51", + "nodeType": "YulLiteral", + "src": "12108:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12098:6:51", + "nodeType": "YulIdentifier", + "src": "12098:6:51" + }, + "nativeSrc": "12098:12:51", + "nodeType": "YulFunctionCall", + "src": "12098:12:51" + }, + "nativeSrc": "12098:12:51", + "nodeType": "YulExpressionStatement", + "src": "12098:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "12061:2:51", + "nodeType": "YulIdentifier", + "src": "12061:2:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12069:1:51", + "nodeType": "YulLiteral", + "src": "12069:1:51", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "12072:6:51", + "nodeType": "YulIdentifier", + "src": "12072:6:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12065:3:51", + "nodeType": "YulIdentifier", + "src": "12065:3:51" + }, + "nativeSrc": "12065:14:51", + "nodeType": "YulFunctionCall", + "src": "12065:14:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12057:3:51", + "nodeType": "YulIdentifier", + "src": "12057:3:51" + }, + "nativeSrc": "12057:23:51", + "nodeType": "YulFunctionCall", + "src": "12057:23:51" + }, + { + "kind": "number", + "nativeSrc": "12082:2:51", + "nodeType": "YulLiteral", + "src": "12082:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12053:3:51", + "nodeType": "YulIdentifier", + "src": "12053:3:51" + }, + "nativeSrc": "12053:32:51", + "nodeType": "YulFunctionCall", + "src": "12053:32:51" + }, + { + "name": "dataEnd", + "nativeSrc": "12087:7:51", + "nodeType": "YulIdentifier", + "src": "12087:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12050:2:51", + "nodeType": "YulIdentifier", + "src": "12050:2:51" + }, + "nativeSrc": "12050:45:51", + "nodeType": "YulFunctionCall", + "src": "12050:45:51" + }, + "nativeSrc": "12047:65:51", + "nodeType": "YulIf", + "src": "12047:65:51" + }, + { + "nativeSrc": "12121:21:51", + "nodeType": "YulAssignment", + "src": "12121:21:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "12135:2:51", + "nodeType": "YulIdentifier", + "src": "12135:2:51" + }, + { + "kind": "number", + "nativeSrc": "12139:2:51", + "nodeType": "YulLiteral", + "src": "12139:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12131:3:51", + "nodeType": "YulIdentifier", + "src": "12131:3:51" + }, + "nativeSrc": "12131:11:51", + "nodeType": "YulFunctionCall", + "src": "12131:11:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12121:6:51", + "nodeType": "YulIdentifier", + "src": "12121:6:51" + } + ] + }, + { + "nativeSrc": "12151:16:51", + "nodeType": "YulAssignment", + "src": "12151:16:51", + "value": { + "name": "length", + "nativeSrc": "12161:6:51", + "nodeType": "YulIdentifier", + "src": "12161:6:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12151:6:51", + "nodeType": "YulIdentifier", + "src": "12151:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "11547:626:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11621:9:51", + "nodeType": "YulTypedName", + "src": "11621:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11632:7:51", + "nodeType": "YulTypedName", + "src": "11632:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11644:6:51", + "nodeType": "YulTypedName", + "src": "11644:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11652:6:51", + "nodeType": "YulTypedName", + "src": "11652:6:51", + "type": "" + } + ], + "src": "11547:626:51" + }, + { + "body": { + "nativeSrc": "12347:632:51", + "nodeType": "YulBlock", + "src": "12347:632:51", + "statements": [ + { + "nativeSrc": "12357:12:51", + "nodeType": "YulVariableDeclaration", + "src": "12357:12:51", + "value": { + "kind": "number", + "nativeSrc": "12367:2:51", + "nodeType": "YulLiteral", + "src": "12367:2:51", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "12361:2:51", + "nodeType": "YulTypedName", + "src": "12361:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "12378:32:51", + "nodeType": "YulVariableDeclaration", + "src": "12378:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12396:9:51", + "nodeType": "YulIdentifier", + "src": "12396:9:51" + }, + { + "kind": "number", + "nativeSrc": "12407:2:51", + "nodeType": "YulLiteral", + "src": "12407:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12392:3:51", + "nodeType": "YulIdentifier", + "src": "12392:3:51" + }, + "nativeSrc": "12392:18:51", + "nodeType": "YulFunctionCall", + "src": "12392:18:51" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "12382:6:51", + "nodeType": "YulTypedName", + "src": "12382:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12426:9:51", + "nodeType": "YulIdentifier", + "src": "12426:9:51" + }, + { + "kind": "number", + "nativeSrc": "12437:2:51", + "nodeType": "YulLiteral", + "src": "12437:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12419:6:51", + "nodeType": "YulIdentifier", + "src": "12419:6:51" + }, + "nativeSrc": "12419:21:51", + "nodeType": "YulFunctionCall", + "src": "12419:21:51" + }, + "nativeSrc": "12419:21:51", + "nodeType": "YulExpressionStatement", + "src": "12419:21:51" + }, + { + "nativeSrc": "12449:17:51", + "nodeType": "YulVariableDeclaration", + "src": "12449:17:51", + "value": { + "name": "tail_1", + "nativeSrc": "12460:6:51", + "nodeType": "YulIdentifier", + "src": "12460:6:51" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "12453:3:51", + "nodeType": "YulTypedName", + "src": "12453:3:51", + "type": "" + } + ] + }, + { + "nativeSrc": "12475:27:51", + "nodeType": "YulVariableDeclaration", + "src": "12475:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12495:6:51", + "nodeType": "YulIdentifier", + "src": "12495:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12489:5:51", + "nodeType": "YulIdentifier", + "src": "12489:5:51" + }, + "nativeSrc": "12489:13:51", + "nodeType": "YulFunctionCall", + "src": "12489:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "12479:6:51", + "nodeType": "YulTypedName", + "src": "12479:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "12518:6:51", + "nodeType": "YulIdentifier", + "src": "12518:6:51" + }, + { + "name": "length", + "nativeSrc": "12526:6:51", + "nodeType": "YulIdentifier", + "src": "12526:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12511:6:51", + "nodeType": "YulIdentifier", + "src": "12511:6:51" + }, + "nativeSrc": "12511:22:51", + "nodeType": "YulFunctionCall", + "src": "12511:22:51" + }, + "nativeSrc": "12511:22:51", + "nodeType": "YulExpressionStatement", + "src": "12511:22:51" + }, + { + "nativeSrc": "12542:25:51", + "nodeType": "YulAssignment", + "src": "12542:25:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12553:9:51", + "nodeType": "YulIdentifier", + "src": "12553:9:51" + }, + { + "kind": "number", + "nativeSrc": "12564:2:51", + "nodeType": "YulLiteral", + "src": "12564:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12549:3:51", + "nodeType": "YulIdentifier", + "src": "12549:3:51" + }, + "nativeSrc": "12549:18:51", + "nodeType": "YulFunctionCall", + "src": "12549:18:51" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12542:3:51", + "nodeType": "YulIdentifier", + "src": "12542:3:51" + } + ] + }, + { + "nativeSrc": "12576:53:51", + "nodeType": "YulVariableDeclaration", + "src": "12576:53:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12598:9:51", + "nodeType": "YulIdentifier", + "src": "12598:9:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12613:1:51", + "nodeType": "YulLiteral", + "src": "12613:1:51", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "12616:6:51", + "nodeType": "YulIdentifier", + "src": "12616:6:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12609:3:51", + "nodeType": "YulIdentifier", + "src": "12609:3:51" + }, + "nativeSrc": "12609:14:51", + "nodeType": "YulFunctionCall", + "src": "12609:14:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12594:3:51", + "nodeType": "YulIdentifier", + "src": "12594:3:51" + }, + "nativeSrc": "12594:30:51", + "nodeType": "YulFunctionCall", + "src": "12594:30:51" + }, + { + "kind": "number", + "nativeSrc": "12626:2:51", + "nodeType": "YulLiteral", + "src": "12626:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12590:3:51", + "nodeType": "YulIdentifier", + "src": "12590:3:51" + }, + "nativeSrc": "12590:39:51", + "nodeType": "YulFunctionCall", + "src": "12590:39:51" + }, + "variables": [ + { + "name": "tail_2", + "nativeSrc": "12580:6:51", + "nodeType": "YulTypedName", + "src": "12580:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "12638:29:51", + "nodeType": "YulVariableDeclaration", + "src": "12638:29:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12656:6:51", + "nodeType": "YulIdentifier", + "src": "12656:6:51" + }, + { + "kind": "number", + "nativeSrc": "12664:2:51", + "nodeType": "YulLiteral", + "src": "12664:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12652:3:51", + "nodeType": "YulIdentifier", + "src": "12652:3:51" + }, + "nativeSrc": "12652:15:51", + "nodeType": "YulFunctionCall", + "src": "12652:15:51" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "12642:6:51", + "nodeType": "YulTypedName", + "src": "12642:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "12676:10:51", + "nodeType": "YulVariableDeclaration", + "src": "12676:10:51", + "value": { + "kind": "number", + "nativeSrc": "12685:1:51", + "nodeType": "YulLiteral", + "src": "12685:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "12680:1:51", + "nodeType": "YulTypedName", + "src": "12680:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12744:206:51", + "nodeType": "YulBlock", + "src": "12744:206:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12765:3:51", + "nodeType": "YulIdentifier", + "src": "12765:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "12778:6:51", + "nodeType": "YulIdentifier", + "src": "12778:6:51" + }, + { + "name": "headStart", + "nativeSrc": "12786:9:51", + "nodeType": "YulIdentifier", + "src": "12786:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12774:3:51", + "nodeType": "YulIdentifier", + "src": "12774:3:51" + }, + "nativeSrc": "12774:22:51", + "nodeType": "YulFunctionCall", + "src": "12774:22:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12802:2:51", + "nodeType": "YulLiteral", + "src": "12802:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "12798:3:51", + "nodeType": "YulIdentifier", + "src": "12798:3:51" + }, + "nativeSrc": "12798:7:51", + "nodeType": "YulFunctionCall", + "src": "12798:7:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12770:3:51", + "nodeType": "YulIdentifier", + "src": "12770:3:51" + }, + "nativeSrc": "12770:36:51", + "nodeType": "YulFunctionCall", + "src": "12770:36:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12758:6:51", + "nodeType": "YulIdentifier", + "src": "12758:6:51" + }, + "nativeSrc": "12758:49:51", + "nodeType": "YulFunctionCall", + "src": "12758:49:51" + }, + "nativeSrc": "12758:49:51", + "nodeType": "YulExpressionStatement", + "src": "12758:49:51" + }, + { + "nativeSrc": "12820:50:51", + "nodeType": "YulAssignment", + "src": "12820:50:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "12854:6:51", + "nodeType": "YulIdentifier", + "src": "12854:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12848:5:51", + "nodeType": "YulIdentifier", + "src": "12848:5:51" + }, + "nativeSrc": "12848:13:51", + "nodeType": "YulFunctionCall", + "src": "12848:13:51" + }, + { + "name": "tail_2", + "nativeSrc": "12863:6:51", + "nodeType": "YulIdentifier", + "src": "12863:6:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "12830:17:51", + "nodeType": "YulIdentifier", + "src": "12830:17:51" + }, + "nativeSrc": "12830:40:51", + "nodeType": "YulFunctionCall", + "src": "12830:40:51" + }, + "variableNames": [ + { + "name": "tail_2", + "nativeSrc": "12820:6:51", + "nodeType": "YulIdentifier", + "src": "12820:6:51" + } + ] + }, + { + "nativeSrc": "12883:25:51", + "nodeType": "YulAssignment", + "src": "12883:25:51", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "12897:6:51", + "nodeType": "YulIdentifier", + "src": "12897:6:51" + }, + { + "name": "_1", + "nativeSrc": "12905:2:51", + "nodeType": "YulIdentifier", + "src": "12905:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12893:3:51", + "nodeType": "YulIdentifier", + "src": "12893:3:51" + }, + "nativeSrc": "12893:15:51", + "nodeType": "YulFunctionCall", + "src": "12893:15:51" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "12883:6:51", + "nodeType": "YulIdentifier", + "src": "12883:6:51" + } + ] + }, + { + "nativeSrc": "12921:19:51", + "nodeType": "YulAssignment", + "src": "12921:19:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12932:3:51", + "nodeType": "YulIdentifier", + "src": "12932:3:51" + }, + { + "name": "_1", + "nativeSrc": "12937:2:51", + "nodeType": "YulIdentifier", + "src": "12937:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12928:3:51", + "nodeType": "YulIdentifier", + "src": "12928:3:51" + }, + "nativeSrc": "12928:12:51", + "nodeType": "YulFunctionCall", + "src": "12928:12:51" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12921:3:51", + "nodeType": "YulIdentifier", + "src": "12921:3:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12706:1:51", + "nodeType": "YulIdentifier", + "src": "12706:1:51" + }, + { + "name": "length", + "nativeSrc": "12709:6:51", + "nodeType": "YulIdentifier", + "src": "12709:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12703:2:51", + "nodeType": "YulIdentifier", + "src": "12703:2:51" + }, + "nativeSrc": "12703:13:51", + "nodeType": "YulFunctionCall", + "src": "12703:13:51" + }, + "nativeSrc": "12695:255:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12717:18:51", + "nodeType": "YulBlock", + "src": "12717:18:51", + "statements": [ + { + "nativeSrc": "12719:14:51", + "nodeType": "YulAssignment", + "src": "12719:14:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12728:1:51", + "nodeType": "YulIdentifier", + "src": "12728:1:51" + }, + { + "kind": "number", + "nativeSrc": "12731:1:51", + "nodeType": "YulLiteral", + "src": "12731:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12724:3:51", + "nodeType": "YulIdentifier", + "src": "12724:3:51" + }, + "nativeSrc": "12724:9:51", + "nodeType": "YulFunctionCall", + "src": "12724:9:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "12719:1:51", + "nodeType": "YulIdentifier", + "src": "12719:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12699:3:51", + "nodeType": "YulBlock", + "src": "12699:3:51", + "statements": [] + }, + "src": "12695:255:51" + }, + { + "nativeSrc": "12959:14:51", + "nodeType": "YulAssignment", + "src": "12959:14:51", + "value": { + "name": "tail_2", + "nativeSrc": "12967:6:51", + "nodeType": "YulIdentifier", + "src": "12967:6:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12959:4:51", + "nodeType": "YulIdentifier", + "src": "12959:4:51" + } + ] + } + ] + }, + "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": "12178:801:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12316:9:51", + "nodeType": "YulTypedName", + "src": "12316:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12327:6:51", + "nodeType": "YulTypedName", + "src": "12327:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12338:4:51", + "nodeType": "YulTypedName", + "src": "12338:4:51", + "type": "" + } + ], + "src": "12178:801:51" + }, + { + "body": { + "nativeSrc": "13071:228:51", + "nodeType": "YulBlock", + "src": "13071:228:51", + "statements": [ + { + "body": { + "nativeSrc": "13117:16:51", + "nodeType": "YulBlock", + "src": "13117:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13126:1:51", + "nodeType": "YulLiteral", + "src": "13126:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13129:1:51", + "nodeType": "YulLiteral", + "src": "13129:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13119:6:51", + "nodeType": "YulIdentifier", + "src": "13119:6:51" + }, + "nativeSrc": "13119:12:51", + "nodeType": "YulFunctionCall", + "src": "13119:12:51" + }, + "nativeSrc": "13119:12:51", + "nodeType": "YulExpressionStatement", + "src": "13119:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13092:7:51", + "nodeType": "YulIdentifier", + "src": "13092:7:51" + }, + { + "name": "headStart", + "nativeSrc": "13101:9:51", + "nodeType": "YulIdentifier", + "src": "13101:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13088:3:51", + "nodeType": "YulIdentifier", + "src": "13088:3:51" + }, + "nativeSrc": "13088:23:51", + "nodeType": "YulFunctionCall", + "src": "13088:23:51" + }, + { + "kind": "number", + "nativeSrc": "13113:2:51", + "nodeType": "YulLiteral", + "src": "13113:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13084:3:51", + "nodeType": "YulIdentifier", + "src": "13084:3:51" + }, + "nativeSrc": "13084:32:51", + "nodeType": "YulFunctionCall", + "src": "13084:32:51" + }, + "nativeSrc": "13081:52:51", + "nodeType": "YulIf", + "src": "13081:52:51" + }, + { + "nativeSrc": "13142:33:51", + "nodeType": "YulAssignment", + "src": "13142:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13165:9:51", + "nodeType": "YulIdentifier", + "src": "13165:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13152:12:51", + "nodeType": "YulIdentifier", + "src": "13152:12:51" + }, + "nativeSrc": "13152:23:51", + "nodeType": "YulFunctionCall", + "src": "13152:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13142:6:51", + "nodeType": "YulIdentifier", + "src": "13142:6:51" + } + ] + }, + { + "nativeSrc": "13184:45:51", + "nodeType": "YulVariableDeclaration", + "src": "13184:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13214:9:51", + "nodeType": "YulIdentifier", + "src": "13214:9:51" + }, + { + "kind": "number", + "nativeSrc": "13225:2:51", + "nodeType": "YulLiteral", + "src": "13225:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13210:3:51", + "nodeType": "YulIdentifier", + "src": "13210:3:51" + }, + "nativeSrc": "13210:18:51", + "nodeType": "YulFunctionCall", + "src": "13210:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13197:12:51", + "nodeType": "YulIdentifier", + "src": "13197:12:51" + }, + "nativeSrc": "13197:32:51", + "nodeType": "YulFunctionCall", + "src": "13197:32:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "13188:5:51", + "nodeType": "YulTypedName", + "src": "13188:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13263:5:51", + "nodeType": "YulIdentifier", + "src": "13263:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "13238:24:51", + "nodeType": "YulIdentifier", + "src": "13238:24:51" + }, + "nativeSrc": "13238:31:51", + "nodeType": "YulFunctionCall", + "src": "13238:31:51" + }, + "nativeSrc": "13238:31:51", + "nodeType": "YulExpressionStatement", + "src": "13238:31:51" + }, + { + "nativeSrc": "13278:15:51", + "nodeType": "YulAssignment", + "src": "13278:15:51", + "value": { + "name": "value", + "nativeSrc": "13288:5:51", + "nodeType": "YulIdentifier", + "src": "13288:5:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "13278:6:51", + "nodeType": "YulIdentifier", + "src": "13278:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nativeSrc": "12984:315:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13029:9:51", + "nodeType": "YulTypedName", + "src": "13029:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13040:7:51", + "nodeType": "YulTypedName", + "src": "13040:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13052:6:51", + "nodeType": "YulTypedName", + "src": "13052:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13060:6:51", + "nodeType": "YulTypedName", + "src": "13060:6:51", + "type": "" + } + ], + "src": "12984:315:51" + }, + { + "body": { + "nativeSrc": "13428:189:51", + "nodeType": "YulBlock", + "src": "13428:189:51", + "statements": [ + { + "body": { + "nativeSrc": "13474:16:51", + "nodeType": "YulBlock", + "src": "13474:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13483:1:51", + "nodeType": "YulLiteral", + "src": "13483:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13486:1:51", + "nodeType": "YulLiteral", + "src": "13486:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13476:6:51", + "nodeType": "YulIdentifier", + "src": "13476:6:51" + }, + "nativeSrc": "13476:12:51", + "nodeType": "YulFunctionCall", + "src": "13476:12:51" + }, + "nativeSrc": "13476:12:51", + "nodeType": "YulExpressionStatement", + "src": "13476:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13449:7:51", + "nodeType": "YulIdentifier", + "src": "13449:7:51" + }, + { + "name": "headStart", + "nativeSrc": "13458:9:51", + "nodeType": "YulIdentifier", + "src": "13458:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13445:3:51", + "nodeType": "YulIdentifier", + "src": "13445:3:51" + }, + "nativeSrc": "13445:23:51", + "nodeType": "YulFunctionCall", + "src": "13445:23:51" + }, + { + "kind": "number", + "nativeSrc": "13470:2:51", + "nodeType": "YulLiteral", + "src": "13470:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13441:3:51", + "nodeType": "YulIdentifier", + "src": "13441:3:51" + }, + "nativeSrc": "13441:32:51", + "nodeType": "YulFunctionCall", + "src": "13441:32:51" + }, + "nativeSrc": "13438:52:51", + "nodeType": "YulIf", + "src": "13438:52:51" + }, + { + "nativeSrc": "13499:33:51", + "nodeType": "YulAssignment", + "src": "13499:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13522:9:51", + "nodeType": "YulIdentifier", + "src": "13522:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13509:12:51", + "nodeType": "YulIdentifier", + "src": "13509:12:51" + }, + "nativeSrc": "13509:23:51", + "nodeType": "YulFunctionCall", + "src": "13509:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13499:6:51", + "nodeType": "YulIdentifier", + "src": "13499:6:51" + } + ] + }, + { + "nativeSrc": "13541:70:51", + "nodeType": "YulAssignment", + "src": "13541:70:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13587:9:51", + "nodeType": "YulIdentifier", + "src": "13587:9:51" + }, + { + "kind": "number", + "nativeSrc": "13598:2:51", + "nodeType": "YulLiteral", + "src": "13598:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13583:3:51", + "nodeType": "YulIdentifier", + "src": "13583:3:51" + }, + "nativeSrc": "13583:18:51", + "nodeType": "YulFunctionCall", + "src": "13583:18:51" + }, + { + "name": "dataEnd", + "nativeSrc": "13603:7:51", + "nodeType": "YulIdentifier", + "src": "13603:7:51" + } + ], + "functionName": { + "name": "abi_decode_struct_RentingParams", + "nativeSrc": "13551:31:51", + "nodeType": "YulIdentifier", + "src": "13551:31:51" + }, + "nativeSrc": "13551:60:51", + "nodeType": "YulFunctionCall", + "src": "13551:60:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "13541:6:51", + "nodeType": "YulIdentifier", + "src": "13541:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_struct$_SubscriptionParams_$11831_memory_ptr", + "nativeSrc": "13304:313:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13386:9:51", + "nodeType": "YulTypedName", + "src": "13386:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13397:7:51", + "nodeType": "YulTypedName", + "src": "13397:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13409:6:51", + "nodeType": "YulTypedName", + "src": "13409:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13417:6:51", + "nodeType": "YulTypedName", + "src": "13417:6:51", + "type": "" + } + ], + "src": "13304:313:51" + }, + { + "body": { + "nativeSrc": "13762:532:51", + "nodeType": "YulBlock", + "src": "13762:532:51", + "statements": [ + { + "body": { + "nativeSrc": "13808:16:51", + "nodeType": "YulBlock", + "src": "13808:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13817:1:51", + "nodeType": "YulLiteral", + "src": "13817:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13820:1:51", + "nodeType": "YulLiteral", + "src": "13820:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13810:6:51", + "nodeType": "YulIdentifier", + "src": "13810:6:51" + }, + "nativeSrc": "13810:12:51", + "nodeType": "YulFunctionCall", + "src": "13810:12:51" + }, + "nativeSrc": "13810:12:51", + "nodeType": "YulExpressionStatement", + "src": "13810:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13783:7:51", + "nodeType": "YulIdentifier", + "src": "13783:7:51" + }, + { + "name": "headStart", + "nativeSrc": "13792:9:51", + "nodeType": "YulIdentifier", + "src": "13792:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13779:3:51", + "nodeType": "YulIdentifier", + "src": "13779:3:51" + }, + "nativeSrc": "13779:23:51", + "nodeType": "YulFunctionCall", + "src": "13779:23:51" + }, + { + "kind": "number", + "nativeSrc": "13804:2:51", + "nodeType": "YulLiteral", + "src": "13804:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13775:3:51", + "nodeType": "YulIdentifier", + "src": "13775:3:51" + }, + "nativeSrc": "13775:32:51", + "nodeType": "YulFunctionCall", + "src": "13775:32:51" + }, + "nativeSrc": "13772:52:51", + "nodeType": "YulIf", + "src": "13772:52:51" + }, + { + "nativeSrc": "13833:36:51", + "nodeType": "YulVariableDeclaration", + "src": "13833:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13859:9:51", + "nodeType": "YulIdentifier", + "src": "13859:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13846:12:51", + "nodeType": "YulIdentifier", + "src": "13846:12:51" + }, + "nativeSrc": "13846:23:51", + "nodeType": "YulFunctionCall", + "src": "13846:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "13837:5:51", + "nodeType": "YulTypedName", + "src": "13837:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "13903:5:51", + "nodeType": "YulIdentifier", + "src": "13903:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "13878:24:51", + "nodeType": "YulIdentifier", + "src": "13878:24:51" + }, + "nativeSrc": "13878:31:51", + "nodeType": "YulFunctionCall", + "src": "13878:31:51" + }, + "nativeSrc": "13878:31:51", + "nodeType": "YulExpressionStatement", + "src": "13878:31:51" + }, + { + "nativeSrc": "13918:15:51", + "nodeType": "YulAssignment", + "src": "13918:15:51", + "value": { + "name": "value", + "nativeSrc": "13928:5:51", + "nodeType": "YulIdentifier", + "src": "13928:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13918:6:51", + "nodeType": "YulIdentifier", + "src": "13918:6:51" + } + ] + }, + { + "nativeSrc": "13942:46:51", + "nodeType": "YulVariableDeclaration", + "src": "13942:46:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13973:9:51", + "nodeType": "YulIdentifier", + "src": "13973:9:51" + }, + { + "kind": "number", + "nativeSrc": "13984:2:51", + "nodeType": "YulLiteral", + "src": "13984:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13969:3:51", + "nodeType": "YulIdentifier", + "src": "13969:3:51" + }, + "nativeSrc": "13969:18:51", + "nodeType": "YulFunctionCall", + "src": "13969:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13956:12:51", + "nodeType": "YulIdentifier", + "src": "13956:12:51" + }, + "nativeSrc": "13956:32:51", + "nodeType": "YulFunctionCall", + "src": "13956:32:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "13946:6:51", + "nodeType": "YulTypedName", + "src": "13946:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14031:16:51", + "nodeType": "YulBlock", + "src": "14031:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14040:1:51", + "nodeType": "YulLiteral", + "src": "14040:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14043:1:51", + "nodeType": "YulLiteral", + "src": "14043:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14033:6:51", + "nodeType": "YulIdentifier", + "src": "14033:6:51" + }, + "nativeSrc": "14033:12:51", + "nodeType": "YulFunctionCall", + "src": "14033:12:51" + }, + "nativeSrc": "14033:12:51", + "nodeType": "YulExpressionStatement", + "src": "14033:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14003:6:51", + "nodeType": "YulIdentifier", + "src": "14003:6:51" + }, + { + "kind": "number", + "nativeSrc": "14011:18:51", + "nodeType": "YulLiteral", + "src": "14011:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14000:2:51", + "nodeType": "YulIdentifier", + "src": "14000:2:51" + }, + "nativeSrc": "14000:30:51", + "nodeType": "YulFunctionCall", + "src": "14000:30:51" + }, + "nativeSrc": "13997:50:51", + "nodeType": "YulIf", + "src": "13997:50:51" + }, + { + "nativeSrc": "14056:32:51", + "nodeType": "YulVariableDeclaration", + "src": "14056:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14070:9:51", + "nodeType": "YulIdentifier", + "src": "14070:9:51" + }, + { + "name": "offset", + "nativeSrc": "14081:6:51", + "nodeType": "YulIdentifier", + "src": "14081:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14066:3:51", + "nodeType": "YulIdentifier", + "src": "14066:3:51" + }, + "nativeSrc": "14066:22:51", + "nodeType": "YulFunctionCall", + "src": "14066:22:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "14060:2:51", + "nodeType": "YulTypedName", + "src": "14060:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14127:16:51", + "nodeType": "YulBlock", + "src": "14127:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14136:1:51", + "nodeType": "YulLiteral", + "src": "14136:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14139:1:51", + "nodeType": "YulLiteral", + "src": "14139:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14129:6:51", + "nodeType": "YulIdentifier", + "src": "14129:6:51" + }, + "nativeSrc": "14129:12:51", + "nodeType": "YulFunctionCall", + "src": "14129:12:51" + }, + "nativeSrc": "14129:12:51", + "nodeType": "YulExpressionStatement", + "src": "14129:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "14108:7:51", + "nodeType": "YulIdentifier", + "src": "14108:7:51" + }, + { + "name": "_1", + "nativeSrc": "14117:2:51", + "nodeType": "YulIdentifier", + "src": "14117:2:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14104:3:51", + "nodeType": "YulIdentifier", + "src": "14104:3:51" + }, + "nativeSrc": "14104:16:51", + "nodeType": "YulFunctionCall", + "src": "14104:16:51" + }, + { + "kind": "number", + "nativeSrc": "14122:3:51", + "nodeType": "YulLiteral", + "src": "14122:3:51", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14100:3:51", + "nodeType": "YulIdentifier", + "src": "14100:3:51" + }, + "nativeSrc": "14100:26:51", + "nodeType": "YulFunctionCall", + "src": "14100:26:51" + }, + "nativeSrc": "14097:46:51", + "nodeType": "YulIf", + "src": "14097:46:51" + }, + { + "nativeSrc": "14152:12:51", + "nodeType": "YulAssignment", + "src": "14152:12:51", + "value": { + "name": "_1", + "nativeSrc": "14162:2:51", + "nodeType": "YulIdentifier", + "src": "14162:2:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "14152:6:51", + "nodeType": "YulIdentifier", + "src": "14152:6:51" + } + ] + }, + { + "nativeSrc": "14173:47:51", + "nodeType": "YulVariableDeclaration", + "src": "14173:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14205:9:51", + "nodeType": "YulIdentifier", + "src": "14205:9:51" + }, + { + "kind": "number", + "nativeSrc": "14216:2:51", + "nodeType": "YulLiteral", + "src": "14216:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14201:3:51", + "nodeType": "YulIdentifier", + "src": "14201:3:51" + }, + "nativeSrc": "14201:18:51", + "nodeType": "YulFunctionCall", + "src": "14201:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14188:12:51", + "nodeType": "YulIdentifier", + "src": "14188:12:51" + }, + "nativeSrc": "14188:32:51", + "nodeType": "YulFunctionCall", + "src": "14188:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "14177:7:51", + "nodeType": "YulTypedName", + "src": "14177:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "14254:7:51", + "nodeType": "YulIdentifier", + "src": "14254:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "14229:24:51", + "nodeType": "YulIdentifier", + "src": "14229:24:51" + }, + "nativeSrc": "14229:33:51", + "nodeType": "YulFunctionCall", + "src": "14229:33:51" + }, + "nativeSrc": "14229:33:51", + "nodeType": "YulExpressionStatement", + "src": "14229:33:51" + }, + { + "nativeSrc": "14271:17:51", + "nodeType": "YulAssignment", + "src": "14271:17:51", + "value": { + "name": "value_1", + "nativeSrc": "14281:7:51", + "nodeType": "YulIdentifier", + "src": "14281:7:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "14271:6:51", + "nodeType": "YulIdentifier", + "src": "14271:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_struct$_WorkerpoolOrder_$11503_calldata_ptrt_address", + "nativeSrc": "13622:672:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13712:9:51", + "nodeType": "YulTypedName", + "src": "13712:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13723:7:51", + "nodeType": "YulTypedName", + "src": "13723:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13735:6:51", + "nodeType": "YulTypedName", + "src": "13735:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13743:6:51", + "nodeType": "YulTypedName", + "src": "13743:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13751:6:51", + "nodeType": "YulTypedName", + "src": "13751:6:51", + "type": "" + } + ], + "src": "13622:672:51" + }, + { + "body": { + "nativeSrc": "14385:300:51", + "nodeType": "YulBlock", + "src": "14385:300:51", + "statements": [ + { + "body": { + "nativeSrc": "14431:16:51", + "nodeType": "YulBlock", + "src": "14431:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14440:1:51", + "nodeType": "YulLiteral", + "src": "14440:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14443:1:51", + "nodeType": "YulLiteral", + "src": "14443:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14433:6:51", + "nodeType": "YulIdentifier", + "src": "14433:6:51" + }, + "nativeSrc": "14433:12:51", + "nodeType": "YulFunctionCall", + "src": "14433:12:51" + }, + "nativeSrc": "14433:12:51", + "nodeType": "YulExpressionStatement", + "src": "14433:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "14406:7:51", + "nodeType": "YulIdentifier", + "src": "14406:7:51" + }, + { + "name": "headStart", + "nativeSrc": "14415:9:51", + "nodeType": "YulIdentifier", + "src": "14415:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14402:3:51", + "nodeType": "YulIdentifier", + "src": "14402:3:51" + }, + "nativeSrc": "14402:23:51", + "nodeType": "YulFunctionCall", + "src": "14402:23:51" + }, + { + "kind": "number", + "nativeSrc": "14427:2:51", + "nodeType": "YulLiteral", + "src": "14427:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14398:3:51", + "nodeType": "YulIdentifier", + "src": "14398:3:51" + }, + "nativeSrc": "14398:32:51", + "nodeType": "YulFunctionCall", + "src": "14398:32:51" + }, + "nativeSrc": "14395:52:51", + "nodeType": "YulIf", + "src": "14395:52:51" + }, + { + "nativeSrc": "14456:36:51", + "nodeType": "YulVariableDeclaration", + "src": "14456:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14482:9:51", + "nodeType": "YulIdentifier", + "src": "14482:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14469:12:51", + "nodeType": "YulIdentifier", + "src": "14469:12:51" + }, + "nativeSrc": "14469:23:51", + "nodeType": "YulFunctionCall", + "src": "14469:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "14460:5:51", + "nodeType": "YulTypedName", + "src": "14460:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14526:5:51", + "nodeType": "YulIdentifier", + "src": "14526:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "14501:24:51", + "nodeType": "YulIdentifier", + "src": "14501:24:51" + }, + "nativeSrc": "14501:31:51", + "nodeType": "YulFunctionCall", + "src": "14501:31:51" + }, + "nativeSrc": "14501:31:51", + "nodeType": "YulExpressionStatement", + "src": "14501:31:51" + }, + { + "nativeSrc": "14541:15:51", + "nodeType": "YulAssignment", + "src": "14541:15:51", + "value": { + "name": "value", + "nativeSrc": "14551:5:51", + "nodeType": "YulIdentifier", + "src": "14551:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "14541:6:51", + "nodeType": "YulIdentifier", + "src": "14541:6:51" + } + ] + }, + { + "nativeSrc": "14565:47:51", + "nodeType": "YulVariableDeclaration", + "src": "14565:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14597:9:51", + "nodeType": "YulIdentifier", + "src": "14597:9:51" + }, + { + "kind": "number", + "nativeSrc": "14608:2:51", + "nodeType": "YulLiteral", + "src": "14608:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14593:3:51", + "nodeType": "YulIdentifier", + "src": "14593:3:51" + }, + "nativeSrc": "14593:18:51", + "nodeType": "YulFunctionCall", + "src": "14593:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14580:12:51", + "nodeType": "YulIdentifier", + "src": "14580:12:51" + }, + "nativeSrc": "14580:32:51", + "nodeType": "YulFunctionCall", + "src": "14580:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "14569:7:51", + "nodeType": "YulTypedName", + "src": "14569:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "14645:7:51", + "nodeType": "YulIdentifier", + "src": "14645:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint72", + "nativeSrc": "14621:23:51", + "nodeType": "YulIdentifier", + "src": "14621:23:51" + }, + "nativeSrc": "14621:32:51", + "nodeType": "YulFunctionCall", + "src": "14621:32:51" + }, + "nativeSrc": "14621:32:51", + "nodeType": "YulExpressionStatement", + "src": "14621:32:51" + }, + { + "nativeSrc": "14662:17:51", + "nodeType": "YulAssignment", + "src": "14662:17:51", + "value": { + "name": "value_1", + "nativeSrc": "14672:7:51", + "nodeType": "YulIdentifier", + "src": "14672:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "14662:6:51", + "nodeType": "YulIdentifier", + "src": "14662:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint72", + "nativeSrc": "14299:386:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14343:9:51", + "nodeType": "YulTypedName", + "src": "14343:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "14354:7:51", + "nodeType": "YulTypedName", + "src": "14354:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "14366:6:51", + "nodeType": "YulTypedName", + "src": "14366:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "14374:6:51", + "nodeType": "YulTypedName", + "src": "14374:6:51", + "type": "" + } + ], + "src": "14299:386:51" + }, + { + "body": { + "nativeSrc": "14919:209:51", + "nodeType": "YulBlock", + "src": "14919:209:51", + "statements": [ + { + "nativeSrc": "14929:27:51", + "nodeType": "YulAssignment", + "src": "14929:27:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14941:9:51", + "nodeType": "YulIdentifier", + "src": "14941:9:51" + }, + { + "kind": "number", + "nativeSrc": "14952:3:51", + "nodeType": "YulLiteral", + "src": "14952:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14937:3:51", + "nodeType": "YulIdentifier", + "src": "14937:3:51" + }, + "nativeSrc": "14937:19:51", + "nodeType": "YulFunctionCall", + "src": "14937:19:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14929:4:51", + "nodeType": "YulIdentifier", + "src": "14929:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14972:9:51", + "nodeType": "YulIdentifier", + "src": "14972:9:51" + }, + { + "name": "value0", + "nativeSrc": "14983:6:51", + "nodeType": "YulIdentifier", + "src": "14983:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14965:6:51", + "nodeType": "YulIdentifier", + "src": "14965:6:51" + }, + "nativeSrc": "14965:25:51", + "nodeType": "YulFunctionCall", + "src": "14965:25:51" + }, + "nativeSrc": "14965:25:51", + "nodeType": "YulExpressionStatement", + "src": "14965:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15010:9:51", + "nodeType": "YulIdentifier", + "src": "15010:9:51" + }, + { + "kind": "number", + "nativeSrc": "15021:2:51", + "nodeType": "YulLiteral", + "src": "15021:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15006:3:51", + "nodeType": "YulIdentifier", + "src": "15006:3:51" + }, + "nativeSrc": "15006:18:51", + "nodeType": "YulFunctionCall", + "src": "15006:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "15030:6:51", + "nodeType": "YulIdentifier", + "src": "15030:6:51" + }, + { + "kind": "number", + "nativeSrc": "15038:14:51", + "nodeType": "YulLiteral", + "src": "15038:14:51", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15026:3:51", + "nodeType": "YulIdentifier", + "src": "15026:3:51" + }, + "nativeSrc": "15026:27:51", + "nodeType": "YulFunctionCall", + "src": "15026:27:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14999:6:51", + "nodeType": "YulIdentifier", + "src": "14999:6:51" + }, + "nativeSrc": "14999:55:51", + "nodeType": "YulFunctionCall", + "src": "14999:55:51" + }, + "nativeSrc": "14999:55:51", + "nodeType": "YulExpressionStatement", + "src": "14999:55:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "15095:6:51", + "nodeType": "YulIdentifier", + "src": "15095:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15107:9:51", + "nodeType": "YulIdentifier", + "src": "15107:9:51" + }, + { + "kind": "number", + "nativeSrc": "15118:2:51", + "nodeType": "YulLiteral", + "src": "15118:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15103:3:51", + "nodeType": "YulIdentifier", + "src": "15103:3:51" + }, + "nativeSrc": "15103:18:51", + "nodeType": "YulFunctionCall", + "src": "15103:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_RentingParams", + "nativeSrc": "15063:31:51", + "nodeType": "YulIdentifier", + "src": "15063:31:51" + }, + "nativeSrc": "15063:59:51", + "nodeType": "YulFunctionCall", + "src": "15063:59:51" + }, + "nativeSrc": "15063:59:51", + "nodeType": "YulExpressionStatement", + "src": "15063:59:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint48_t_struct$_SubscriptionParams_$11831_memory_ptr__to_t_uint256_t_uint48_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed", + "nativeSrc": "14690:438:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14872:9:51", + "nodeType": "YulTypedName", + "src": "14872:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "14883:6:51", + "nodeType": "YulTypedName", + "src": "14883:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "14891:6:51", + "nodeType": "YulTypedName", + "src": "14891:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14899:6:51", + "nodeType": "YulTypedName", + "src": "14899:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14910:4:51", + "nodeType": "YulTypedName", + "src": "14910:4:51", + "type": "" + } + ], + "src": "14690:438:51" + }, + { + "body": { + "nativeSrc": "15220:301:51", + "nodeType": "YulBlock", + "src": "15220:301:51", + "statements": [ + { + "body": { + "nativeSrc": "15266:16:51", + "nodeType": "YulBlock", + "src": "15266:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15275:1:51", + "nodeType": "YulLiteral", + "src": "15275:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15278:1:51", + "nodeType": "YulLiteral", + "src": "15278:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15268:6:51", + "nodeType": "YulIdentifier", + "src": "15268:6:51" + }, + "nativeSrc": "15268:12:51", + "nodeType": "YulFunctionCall", + "src": "15268:12:51" + }, + "nativeSrc": "15268:12:51", + "nodeType": "YulExpressionStatement", + "src": "15268:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "15241:7:51", + "nodeType": "YulIdentifier", + "src": "15241:7:51" + }, + { + "name": "headStart", + "nativeSrc": "15250:9:51", + "nodeType": "YulIdentifier", + "src": "15250:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15237:3:51", + "nodeType": "YulIdentifier", + "src": "15237:3:51" + }, + "nativeSrc": "15237:23:51", + "nodeType": "YulFunctionCall", + "src": "15237:23:51" + }, + { + "kind": "number", + "nativeSrc": "15262:2:51", + "nodeType": "YulLiteral", + "src": "15262:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15233:3:51", + "nodeType": "YulIdentifier", + "src": "15233:3:51" + }, + "nativeSrc": "15233:32:51", + "nodeType": "YulFunctionCall", + "src": "15233:32:51" + }, + "nativeSrc": "15230:52:51", + "nodeType": "YulIf", + "src": "15230:52:51" + }, + { + "nativeSrc": "15291:36:51", + "nodeType": "YulVariableDeclaration", + "src": "15291:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15317:9:51", + "nodeType": "YulIdentifier", + "src": "15317:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15304:12:51", + "nodeType": "YulIdentifier", + "src": "15304:12:51" + }, + "nativeSrc": "15304:23:51", + "nodeType": "YulFunctionCall", + "src": "15304:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "15295:5:51", + "nodeType": "YulTypedName", + "src": "15295:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15361:5:51", + "nodeType": "YulIdentifier", + "src": "15361:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "15336:24:51", + "nodeType": "YulIdentifier", + "src": "15336:24:51" + }, + "nativeSrc": "15336:31:51", + "nodeType": "YulFunctionCall", + "src": "15336:31:51" + }, + "nativeSrc": "15336:31:51", + "nodeType": "YulExpressionStatement", + "src": "15336:31:51" + }, + { + "nativeSrc": "15376:15:51", + "nodeType": "YulAssignment", + "src": "15376:15:51", + "value": { + "name": "value", + "nativeSrc": "15386:5:51", + "nodeType": "YulIdentifier", + "src": "15386:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "15376:6:51", + "nodeType": "YulIdentifier", + "src": "15376:6:51" + } + ] + }, + { + "nativeSrc": "15400:47:51", + "nodeType": "YulVariableDeclaration", + "src": "15400:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15432:9:51", + "nodeType": "YulIdentifier", + "src": "15432:9:51" + }, + { + "kind": "number", + "nativeSrc": "15443:2:51", + "nodeType": "YulLiteral", + "src": "15443:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15428:3:51", + "nodeType": "YulIdentifier", + "src": "15428:3:51" + }, + "nativeSrc": "15428:18:51", + "nodeType": "YulFunctionCall", + "src": "15428:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15415:12:51", + "nodeType": "YulIdentifier", + "src": "15415:12:51" + }, + "nativeSrc": "15415:32:51", + "nodeType": "YulFunctionCall", + "src": "15415:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "15404:7:51", + "nodeType": "YulTypedName", + "src": "15404:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "15481:7:51", + "nodeType": "YulIdentifier", + "src": "15481:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "15456:24:51", + "nodeType": "YulIdentifier", + "src": "15456:24:51" + }, + "nativeSrc": "15456:33:51", + "nodeType": "YulFunctionCall", + "src": "15456:33:51" + }, + "nativeSrc": "15456:33:51", + "nodeType": "YulExpressionStatement", + "src": "15456:33:51" + }, + { + "nativeSrc": "15498:17:51", + "nodeType": "YulAssignment", + "src": "15498:17:51", + "value": { + "name": "value_1", + "nativeSrc": "15508:7:51", + "nodeType": "YulIdentifier", + "src": "15508:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "15498:6:51", + "nodeType": "YulIdentifier", + "src": "15498:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "15133:388:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15178:9:51", + "nodeType": "YulTypedName", + "src": "15178:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "15189:7:51", + "nodeType": "YulTypedName", + "src": "15189:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "15201:6:51", + "nodeType": "YulTypedName", + "src": "15201:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15209:6:51", + "nodeType": "YulTypedName", + "src": "15209:6:51", + "type": "" + } + ], + "src": "15133:388:51" + }, + { + "body": { + "nativeSrc": "15607:85:51", + "nodeType": "YulBlock", + "src": "15607:85:51", + "statements": [ + { + "body": { + "nativeSrc": "15646:16:51", + "nodeType": "YulBlock", + "src": "15646:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15655:1:51", + "nodeType": "YulLiteral", + "src": "15655:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15658:1:51", + "nodeType": "YulLiteral", + "src": "15658:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15648:6:51", + "nodeType": "YulIdentifier", + "src": "15648:6:51" + }, + "nativeSrc": "15648:12:51", + "nodeType": "YulFunctionCall", + "src": "15648:12:51" + }, + "nativeSrc": "15648:12:51", + "nodeType": "YulExpressionStatement", + "src": "15648:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "15628:3:51", + "nodeType": "YulIdentifier", + "src": "15628:3:51" + }, + { + "name": "offset", + "nativeSrc": "15633:6:51", + "nodeType": "YulIdentifier", + "src": "15633:6:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15624:3:51", + "nodeType": "YulIdentifier", + "src": "15624:3:51" + }, + "nativeSrc": "15624:16:51", + "nodeType": "YulFunctionCall", + "src": "15624:16:51" + }, + { + "kind": "number", + "nativeSrc": "15642:2:51", + "nodeType": "YulLiteral", + "src": "15642:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15620:3:51", + "nodeType": "YulIdentifier", + "src": "15620:3:51" + }, + "nativeSrc": "15620:25:51", + "nodeType": "YulFunctionCall", + "src": "15620:25:51" + }, + "nativeSrc": "15617:45:51", + "nodeType": "YulIf", + "src": "15617:45:51" + }, + { + "nativeSrc": "15671:15:51", + "nodeType": "YulAssignment", + "src": "15671:15:51", + "value": { + "name": "offset", + "nativeSrc": "15680:6:51", + "nodeType": "YulIdentifier", + "src": "15680:6:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "15671:5:51", + "nodeType": "YulIdentifier", + "src": "15671:5:51" + } + ] + } + ] + }, + "name": "abi_decode_struct_SubscriptionParams_calldata", + "nativeSrc": "15526:166:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "15581:6:51", + "nodeType": "YulTypedName", + "src": "15581:6:51", + "type": "" + }, + { + "name": "end", + "nativeSrc": "15589:3:51", + "nodeType": "YulTypedName", + "src": "15589:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "15597:5:51", + "nodeType": "YulTypedName", + "src": "15597:5:51", + "type": "" + } + ], + "src": "15526:166:51" + }, + { + "body": { + "nativeSrc": "15823:203:51", + "nodeType": "YulBlock", + "src": "15823:203:51", + "statements": [ + { + "body": { + "nativeSrc": "15869:16:51", + "nodeType": "YulBlock", + "src": "15869:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15878:1:51", + "nodeType": "YulLiteral", + "src": "15878:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15881:1:51", + "nodeType": "YulLiteral", + "src": "15881:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15871:6:51", + "nodeType": "YulIdentifier", + "src": "15871:6:51" + }, + "nativeSrc": "15871:12:51", + "nodeType": "YulFunctionCall", + "src": "15871:12:51" + }, + "nativeSrc": "15871:12:51", + "nodeType": "YulExpressionStatement", + "src": "15871:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "15844:7:51", + "nodeType": "YulIdentifier", + "src": "15844:7:51" + }, + { + "name": "headStart", + "nativeSrc": "15853:9:51", + "nodeType": "YulIdentifier", + "src": "15853:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15840:3:51", + "nodeType": "YulIdentifier", + "src": "15840:3:51" + }, + "nativeSrc": "15840:23:51", + "nodeType": "YulFunctionCall", + "src": "15840:23:51" + }, + { + "kind": "number", + "nativeSrc": "15865:2:51", + "nodeType": "YulLiteral", + "src": "15865:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15836:3:51", + "nodeType": "YulIdentifier", + "src": "15836:3:51" + }, + "nativeSrc": "15836:32:51", + "nodeType": "YulFunctionCall", + "src": "15836:32:51" + }, + "nativeSrc": "15833:52:51", + "nodeType": "YulIf", + "src": "15833:52:51" + }, + { + "nativeSrc": "15894:33:51", + "nodeType": "YulAssignment", + "src": "15894:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15917:9:51", + "nodeType": "YulIdentifier", + "src": "15917:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15904:12:51", + "nodeType": "YulIdentifier", + "src": "15904:12:51" + }, + "nativeSrc": "15904:23:51", + "nodeType": "YulFunctionCall", + "src": "15904:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "15894:6:51", + "nodeType": "YulIdentifier", + "src": "15894:6:51" + } + ] + }, + { + "nativeSrc": "15936:84:51", + "nodeType": "YulAssignment", + "src": "15936:84:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15996:9:51", + "nodeType": "YulIdentifier", + "src": "15996:9:51" + }, + { + "kind": "number", + "nativeSrc": "16007:2:51", + "nodeType": "YulLiteral", + "src": "16007:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15992:3:51", + "nodeType": "YulIdentifier", + "src": "15992:3:51" + }, + "nativeSrc": "15992:18:51", + "nodeType": "YulFunctionCall", + "src": "15992:18:51" + }, + { + "name": "dataEnd", + "nativeSrc": "16012:7:51", + "nodeType": "YulIdentifier", + "src": "16012:7:51" + } + ], + "functionName": { + "name": "abi_decode_struct_SubscriptionParams_calldata", + "nativeSrc": "15946:45:51", + "nodeType": "YulIdentifier", + "src": "15946:45:51" + }, + "nativeSrc": "15946:74:51", + "nodeType": "YulFunctionCall", + "src": "15946:74:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "15936:6:51", + "nodeType": "YulIdentifier", + "src": "15936:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_struct$_SubscriptionParams_$11831_calldata_ptr", + "nativeSrc": "15697:329:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15781:9:51", + "nodeType": "YulTypedName", + "src": "15781:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "15792:7:51", + "nodeType": "YulTypedName", + "src": "15792:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "15804:6:51", + "nodeType": "YulTypedName", + "src": "15804:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15812:6:51", + "nodeType": "YulTypedName", + "src": "15812:6:51", + "type": "" + } + ], + "src": "15697:329:51" + }, + { + "body": { + "nativeSrc": "16152:270:51", + "nodeType": "YulBlock", + "src": "16152:270:51", + "statements": [ + { + "body": { + "nativeSrc": "16198:16:51", + "nodeType": "YulBlock", + "src": "16198:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16207:1:51", + "nodeType": "YulLiteral", + "src": "16207:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16210:1:51", + "nodeType": "YulLiteral", + "src": "16210:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16200:6:51", + "nodeType": "YulIdentifier", + "src": "16200:6:51" + }, + "nativeSrc": "16200:12:51", + "nodeType": "YulFunctionCall", + "src": "16200:12:51" + }, + "nativeSrc": "16200:12:51", + "nodeType": "YulExpressionStatement", + "src": "16200:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "16173:7:51", + "nodeType": "YulIdentifier", + "src": "16173:7:51" + }, + { + "name": "headStart", + "nativeSrc": "16182:9:51", + "nodeType": "YulIdentifier", + "src": "16182:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16169:3:51", + "nodeType": "YulIdentifier", + "src": "16169:3:51" + }, + "nativeSrc": "16169:23:51", + "nodeType": "YulFunctionCall", + "src": "16169:23:51" + }, + { + "kind": "number", + "nativeSrc": "16194:2:51", + "nodeType": "YulLiteral", + "src": "16194:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "16165:3:51", + "nodeType": "YulIdentifier", + "src": "16165:3:51" + }, + "nativeSrc": "16165:32:51", + "nodeType": "YulFunctionCall", + "src": "16165:32:51" + }, + "nativeSrc": "16162:52:51", + "nodeType": "YulIf", + "src": "16162:52:51" + }, + { + "nativeSrc": "16223:36:51", + "nodeType": "YulVariableDeclaration", + "src": "16223:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16249:9:51", + "nodeType": "YulIdentifier", + "src": "16249:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16236:12:51", + "nodeType": "YulIdentifier", + "src": "16236:12:51" + }, + "nativeSrc": "16236:23:51", + "nodeType": "YulFunctionCall", + "src": "16236:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "16227:5:51", + "nodeType": "YulTypedName", + "src": "16227:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16293:5:51", + "nodeType": "YulIdentifier", + "src": "16293:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "16268:24:51", + "nodeType": "YulIdentifier", + "src": "16268:24:51" + }, + "nativeSrc": "16268:31:51", + "nodeType": "YulFunctionCall", + "src": "16268:31:51" + }, + "nativeSrc": "16268:31:51", + "nodeType": "YulExpressionStatement", + "src": "16268:31:51" + }, + { + "nativeSrc": "16308:15:51", + "nodeType": "YulAssignment", + "src": "16308:15:51", + "value": { + "name": "value", + "nativeSrc": "16318:5:51", + "nodeType": "YulIdentifier", + "src": "16318:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16308:6:51", + "nodeType": "YulIdentifier", + "src": "16308:6:51" + } + ] + }, + { + "nativeSrc": "16332:84:51", + "nodeType": "YulAssignment", + "src": "16332:84:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16392:9:51", + "nodeType": "YulIdentifier", + "src": "16392:9:51" + }, + { + "kind": "number", + "nativeSrc": "16403:2:51", + "nodeType": "YulLiteral", + "src": "16403:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16388:3:51", + "nodeType": "YulIdentifier", + "src": "16388:3:51" + }, + "nativeSrc": "16388:18:51", + "nodeType": "YulFunctionCall", + "src": "16388:18:51" + }, + { + "name": "dataEnd", + "nativeSrc": "16408:7:51", + "nodeType": "YulIdentifier", + "src": "16408:7:51" + } + ], + "functionName": { + "name": "abi_decode_struct_SubscriptionParams_calldata", + "nativeSrc": "16342:45:51", + "nodeType": "YulIdentifier", + "src": "16342:45:51" + }, + "nativeSrc": "16342:74:51", + "nodeType": "YulFunctionCall", + "src": "16342:74:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16332:6:51", + "nodeType": "YulIdentifier", + "src": "16332:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_struct$_RentingParams_$11666_calldata_ptr", + "nativeSrc": "16031:391:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16110:9:51", + "nodeType": "YulTypedName", + "src": "16110:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16121:7:51", + "nodeType": "YulTypedName", + "src": "16121:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16133:6:51", + "nodeType": "YulTypedName", + "src": "16133:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16141:6:51", + "nodeType": "YulTypedName", + "src": "16141:6:51", + "type": "" + } + ], + "src": "16031:391:51" + }, + { + "body": { + "nativeSrc": "16556:145:51", + "nodeType": "YulBlock", + "src": "16556:145:51", + "statements": [ + { + "nativeSrc": "16566:26:51", + "nodeType": "YulAssignment", + "src": "16566:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16578:9:51", + "nodeType": "YulIdentifier", + "src": "16578:9:51" + }, + { + "kind": "number", + "nativeSrc": "16589:2:51", + "nodeType": "YulLiteral", + "src": "16589:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16574:3:51", + "nodeType": "YulIdentifier", + "src": "16574:3:51" + }, + "nativeSrc": "16574:18:51", + "nodeType": "YulFunctionCall", + "src": "16574:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16566:4:51", + "nodeType": "YulIdentifier", + "src": "16566:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16608:9:51", + "nodeType": "YulIdentifier", + "src": "16608:9:51" + }, + { + "name": "value0", + "nativeSrc": "16619:6:51", + "nodeType": "YulIdentifier", + "src": "16619:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16601:6:51", + "nodeType": "YulIdentifier", + "src": "16601:6:51" + }, + "nativeSrc": "16601:25:51", + "nodeType": "YulFunctionCall", + "src": "16601:25:51" + }, + "nativeSrc": "16601:25:51", + "nodeType": "YulExpressionStatement", + "src": "16601:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16646:9:51", + "nodeType": "YulIdentifier", + "src": "16646:9:51" + }, + { + "kind": "number", + "nativeSrc": "16657:2:51", + "nodeType": "YulLiteral", + "src": "16657:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16642:3:51", + "nodeType": "YulIdentifier", + "src": "16642:3:51" + }, + "nativeSrc": "16642:18:51", + "nodeType": "YulFunctionCall", + "src": "16642:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "16666:6:51", + "nodeType": "YulIdentifier", + "src": "16666:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16682:3:51", + "nodeType": "YulLiteral", + "src": "16682:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "16687:1:51", + "nodeType": "YulLiteral", + "src": "16687:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16678:3:51", + "nodeType": "YulIdentifier", + "src": "16678:3:51" + }, + "nativeSrc": "16678:11:51", + "nodeType": "YulFunctionCall", + "src": "16678:11:51" + }, + { + "kind": "number", + "nativeSrc": "16691:1:51", + "nodeType": "YulLiteral", + "src": "16691:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16674:3:51", + "nodeType": "YulIdentifier", + "src": "16674:3:51" + }, + "nativeSrc": "16674:19:51", + "nodeType": "YulFunctionCall", + "src": "16674:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16662:3:51", + "nodeType": "YulIdentifier", + "src": "16662:3:51" + }, + "nativeSrc": "16662:32:51", + "nodeType": "YulFunctionCall", + "src": "16662:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16635:6:51", + "nodeType": "YulIdentifier", + "src": "16635:6:51" + }, + "nativeSrc": "16635:60:51", + "nodeType": "YulFunctionCall", + "src": "16635:60:51" + }, + "nativeSrc": "16635:60:51", + "nodeType": "YulExpressionStatement", + "src": "16635:60:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "16427:274:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16517:9:51", + "nodeType": "YulTypedName", + "src": "16517:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16528:6:51", + "nodeType": "YulTypedName", + "src": "16528:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16536:6:51", + "nodeType": "YulTypedName", + "src": "16536:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16547:4:51", + "nodeType": "YulTypedName", + "src": "16547:4:51", + "type": "" + } + ], + "src": "16427:274:51" + }, + { + "body": { + "nativeSrc": "16761:325:51", + "nodeType": "YulBlock", + "src": "16761:325:51", + "statements": [ + { + "nativeSrc": "16771:22:51", + "nodeType": "YulAssignment", + "src": "16771:22:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16785:1:51", + "nodeType": "YulLiteral", + "src": "16785:1:51", + "type": "", + "value": "1" + }, + { + "name": "data", + "nativeSrc": "16788:4:51", + "nodeType": "YulIdentifier", + "src": "16788:4:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "16781:3:51", + "nodeType": "YulIdentifier", + "src": "16781:3:51" + }, + "nativeSrc": "16781:12:51", + "nodeType": "YulFunctionCall", + "src": "16781:12:51" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "16771:6:51", + "nodeType": "YulIdentifier", + "src": "16771:6:51" + } + ] + }, + { + "nativeSrc": "16802:38:51", + "nodeType": "YulVariableDeclaration", + "src": "16802:38:51", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "16832:4:51", + "nodeType": "YulIdentifier", + "src": "16832:4:51" + }, + { + "kind": "number", + "nativeSrc": "16838:1:51", + "nodeType": "YulLiteral", + "src": "16838:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16828:3:51", + "nodeType": "YulIdentifier", + "src": "16828:3:51" + }, + "nativeSrc": "16828:12:51", + "nodeType": "YulFunctionCall", + "src": "16828:12:51" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16806:18:51", + "nodeType": "YulTypedName", + "src": "16806:18:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16879:31:51", + "nodeType": "YulBlock", + "src": "16879:31:51", + "statements": [ + { + "nativeSrc": "16881:27:51", + "nodeType": "YulAssignment", + "src": "16881:27:51", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "16895:6:51", + "nodeType": "YulIdentifier", + "src": "16895:6:51" + }, + { + "kind": "number", + "nativeSrc": "16903:4:51", + "nodeType": "YulLiteral", + "src": "16903:4:51", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16891:3:51", + "nodeType": "YulIdentifier", + "src": "16891:3:51" + }, + "nativeSrc": "16891:17:51", + "nodeType": "YulFunctionCall", + "src": "16891:17:51" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "16881:6:51", + "nodeType": "YulIdentifier", + "src": "16881:6:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16859:18:51", + "nodeType": "YulIdentifier", + "src": "16859:18:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16852:6:51", + "nodeType": "YulIdentifier", + "src": "16852:6:51" + }, + "nativeSrc": "16852:26:51", + "nodeType": "YulFunctionCall", + "src": "16852:26:51" + }, + "nativeSrc": "16849:61:51", + "nodeType": "YulIf", + "src": "16849:61:51" + }, + { + "body": { + "nativeSrc": "16969:111:51", + "nodeType": "YulBlock", + "src": "16969:111:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16990:1:51", + "nodeType": "YulLiteral", + "src": "16990:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16997:3:51", + "nodeType": "YulLiteral", + "src": "16997:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "17002:10:51", + "nodeType": "YulLiteral", + "src": "17002:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16993:3:51", + "nodeType": "YulIdentifier", + "src": "16993:3:51" + }, + "nativeSrc": "16993:20:51", + "nodeType": "YulFunctionCall", + "src": "16993:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16983:6:51", + "nodeType": "YulIdentifier", + "src": "16983:6:51" + }, + "nativeSrc": "16983:31:51", + "nodeType": "YulFunctionCall", + "src": "16983:31:51" + }, + "nativeSrc": "16983:31:51", + "nodeType": "YulExpressionStatement", + "src": "16983:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17034:1:51", + "nodeType": "YulLiteral", + "src": "17034:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "17037:4:51", + "nodeType": "YulLiteral", + "src": "17037:4:51", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17027:6:51", + "nodeType": "YulIdentifier", + "src": "17027:6:51" + }, + "nativeSrc": "17027:15:51", + "nodeType": "YulFunctionCall", + "src": "17027:15:51" + }, + "nativeSrc": "17027:15:51", + "nodeType": "YulExpressionStatement", + "src": "17027:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17062:1:51", + "nodeType": "YulLiteral", + "src": "17062:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17065:4:51", + "nodeType": "YulLiteral", + "src": "17065:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17055:6:51", + "nodeType": "YulIdentifier", + "src": "17055:6:51" + }, + "nativeSrc": "17055:15:51", + "nodeType": "YulFunctionCall", + "src": "17055:15:51" + }, + "nativeSrc": "17055:15:51", + "nodeType": "YulExpressionStatement", + "src": "17055:15:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "16925:18:51", + "nodeType": "YulIdentifier", + "src": "16925:18:51" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "16948:6:51", + "nodeType": "YulIdentifier", + "src": "16948:6:51" + }, + { + "kind": "number", + "nativeSrc": "16956:2:51", + "nodeType": "YulLiteral", + "src": "16956:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16945:2:51", + "nodeType": "YulIdentifier", + "src": "16945:2:51" + }, + "nativeSrc": "16945:14:51", + "nodeType": "YulFunctionCall", + "src": "16945:14:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "16922:2:51", + "nodeType": "YulIdentifier", + "src": "16922:2:51" + }, + "nativeSrc": "16922:38:51", + "nodeType": "YulFunctionCall", + "src": "16922:38:51" + }, + "nativeSrc": "16919:161:51", + "nodeType": "YulIf", + "src": "16919:161:51" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "16706:380:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "16741:4:51", + "nodeType": "YulTypedName", + "src": "16741:4:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "16750:6:51", + "nodeType": "YulTypedName", + "src": "16750:6:51", + "type": "" + } + ], + "src": "16706:380:51" + }, + { + "body": { + "nativeSrc": "17147:65:51", + "nodeType": "YulBlock", + "src": "17147:65:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17164:1:51", + "nodeType": "YulLiteral", + "src": "17164:1:51", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "17167:3:51", + "nodeType": "YulIdentifier", + "src": "17167:3:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17157:6:51", + "nodeType": "YulIdentifier", + "src": "17157:6:51" + }, + "nativeSrc": "17157:14:51", + "nodeType": "YulFunctionCall", + "src": "17157:14:51" + }, + "nativeSrc": "17157:14:51", + "nodeType": "YulExpressionStatement", + "src": "17157:14:51" + }, + { + "nativeSrc": "17180:26:51", + "nodeType": "YulAssignment", + "src": "17180:26:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17198:1:51", + "nodeType": "YulLiteral", + "src": "17198:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17201:4:51", + "nodeType": "YulLiteral", + "src": "17201:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "17188:9:51", + "nodeType": "YulIdentifier", + "src": "17188:9:51" + }, + "nativeSrc": "17188:18:51", + "nodeType": "YulFunctionCall", + "src": "17188:18:51" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "17180:4:51", + "nodeType": "YulIdentifier", + "src": "17180:4:51" + } + ] + } + ] + }, + "name": "array_dataslot_string_storage", + "nativeSrc": "17091:121:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "17130:3:51", + "nodeType": "YulTypedName", + "src": "17130:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "17138:4:51", + "nodeType": "YulTypedName", + "src": "17138:4:51", + "type": "" + } + ], + "src": "17091:121:51" + }, + { + "body": { + "nativeSrc": "17298:462:51", + "nodeType": "YulBlock", + "src": "17298:462:51", + "statements": [ + { + "body": { + "nativeSrc": "17331:423:51", + "nodeType": "YulBlock", + "src": "17331:423:51", + "statements": [ + { + "nativeSrc": "17345:11:51", + "nodeType": "YulVariableDeclaration", + "src": "17345:11:51", + "value": { + "kind": "number", + "nativeSrc": "17355:1:51", + "nodeType": "YulLiteral", + "src": "17355:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "17349:2:51", + "nodeType": "YulTypedName", + "src": "17349:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17376:1:51", + "nodeType": "YulLiteral", + "src": "17376:1:51", + "type": "", + "value": "0" + }, + { + "name": "array", + "nativeSrc": "17379:5:51", + "nodeType": "YulIdentifier", + "src": "17379:5:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17369:6:51", + "nodeType": "YulIdentifier", + "src": "17369:6:51" + }, + "nativeSrc": "17369:16:51", + "nodeType": "YulFunctionCall", + "src": "17369:16:51" + }, + "nativeSrc": "17369:16:51", + "nodeType": "YulExpressionStatement", + "src": "17369:16:51" + }, + { + "nativeSrc": "17398:30:51", + "nodeType": "YulVariableDeclaration", + "src": "17398:30:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17420:1:51", + "nodeType": "YulLiteral", + "src": "17420:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17423:4:51", + "nodeType": "YulLiteral", + "src": "17423:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "17410:9:51", + "nodeType": "YulIdentifier", + "src": "17410:9:51" + }, + "nativeSrc": "17410:18:51", + "nodeType": "YulFunctionCall", + "src": "17410:18:51" + }, + "variables": [ + { + "name": "data", + "nativeSrc": "17402:4:51", + "nodeType": "YulTypedName", + "src": "17402:4:51", + "type": "" + } + ] + }, + { + "nativeSrc": "17441:57:51", + "nodeType": "YulVariableDeclaration", + "src": "17441:57:51", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "17464:4:51", + "nodeType": "YulIdentifier", + "src": "17464:4:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17474:1:51", + "nodeType": "YulLiteral", + "src": "17474:1:51", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17481:10:51", + "nodeType": "YulIdentifier", + "src": "17481:10:51" + }, + { + "kind": "number", + "nativeSrc": "17493:2:51", + "nodeType": "YulLiteral", + "src": "17493:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17477:3:51", + "nodeType": "YulIdentifier", + "src": "17477:3:51" + }, + "nativeSrc": "17477:19:51", + "nodeType": "YulFunctionCall", + "src": "17477:19:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "17470:3:51", + "nodeType": "YulIdentifier", + "src": "17470:3:51" + }, + "nativeSrc": "17470:27:51", + "nodeType": "YulFunctionCall", + "src": "17470:27:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17460:3:51", + "nodeType": "YulIdentifier", + "src": "17460:3:51" + }, + "nativeSrc": "17460:38:51", + "nodeType": "YulFunctionCall", + "src": "17460:38:51" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "17445:11:51", + "nodeType": "YulTypedName", + "src": "17445:11:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17535:23:51", + "nodeType": "YulBlock", + "src": "17535:23:51", + "statements": [ + { + "nativeSrc": "17537:19:51", + "nodeType": "YulAssignment", + "src": "17537:19:51", + "value": { + "name": "data", + "nativeSrc": "17552:4:51", + "nodeType": "YulIdentifier", + "src": "17552:4:51" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "17537:11:51", + "nodeType": "YulIdentifier", + "src": "17537:11:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "17517:10:51", + "nodeType": "YulIdentifier", + "src": "17517:10:51" + }, + { + "kind": "number", + "nativeSrc": "17529:4:51", + "nodeType": "YulLiteral", + "src": "17529:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17514:2:51", + "nodeType": "YulIdentifier", + "src": "17514:2:51" + }, + "nativeSrc": "17514:20:51", + "nodeType": "YulFunctionCall", + "src": "17514:20:51" + }, + "nativeSrc": "17511:47:51", + "nodeType": "YulIf", + "src": "17511:47:51" + }, + { + "nativeSrc": "17571:41:51", + "nodeType": "YulVariableDeclaration", + "src": "17571:41:51", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "17585:4:51", + "nodeType": "YulIdentifier", + "src": "17585:4:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17595:1:51", + "nodeType": "YulLiteral", + "src": "17595:1:51", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "17602:3:51", + "nodeType": "YulIdentifier", + "src": "17602:3:51" + }, + { + "kind": "number", + "nativeSrc": "17607:2:51", + "nodeType": "YulLiteral", + "src": "17607:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17598:3:51", + "nodeType": "YulIdentifier", + "src": "17598:3:51" + }, + "nativeSrc": "17598:12:51", + "nodeType": "YulFunctionCall", + "src": "17598:12:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "17591:3:51", + "nodeType": "YulIdentifier", + "src": "17591:3:51" + }, + "nativeSrc": "17591:20:51", + "nodeType": "YulFunctionCall", + "src": "17591:20:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17581:3:51", + "nodeType": "YulIdentifier", + "src": "17581:3:51" + }, + "nativeSrc": "17581:31:51", + "nodeType": "YulFunctionCall", + "src": "17581:31:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "17575:2:51", + "nodeType": "YulTypedName", + "src": "17575:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "17625:24:51", + "nodeType": "YulVariableDeclaration", + "src": "17625:24:51", + "value": { + "name": "deleteStart", + "nativeSrc": "17638:11:51", + "nodeType": "YulIdentifier", + "src": "17638:11:51" + }, + "variables": [ + { + "name": "start", + "nativeSrc": "17629:5:51", + "nodeType": "YulTypedName", + "src": "17629:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17723:21:51", + "nodeType": "YulBlock", + "src": "17723:21:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17732:5:51", + "nodeType": "YulIdentifier", + "src": "17732:5:51" + }, + { + "name": "_1", + "nativeSrc": "17739:2:51", + "nodeType": "YulIdentifier", + "src": "17739:2:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "17725:6:51", + "nodeType": "YulIdentifier", + "src": "17725:6:51" + }, + "nativeSrc": "17725:17:51", + "nodeType": "YulFunctionCall", + "src": "17725:17:51" + }, + "nativeSrc": "17725:17:51", + "nodeType": "YulExpressionStatement", + "src": "17725:17:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17673:5:51", + "nodeType": "YulIdentifier", + "src": "17673:5:51" + }, + { + "name": "_2", + "nativeSrc": "17680:2:51", + "nodeType": "YulIdentifier", + "src": "17680:2:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17670:2:51", + "nodeType": "YulIdentifier", + "src": "17670:2:51" + }, + "nativeSrc": "17670:13:51", + "nodeType": "YulFunctionCall", + "src": "17670:13:51" + }, + "nativeSrc": "17662:82:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "17684:26:51", + "nodeType": "YulBlock", + "src": "17684:26:51", + "statements": [ + { + "nativeSrc": "17686:22:51", + "nodeType": "YulAssignment", + "src": "17686:22:51", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "17699:5:51", + "nodeType": "YulIdentifier", + "src": "17699:5:51" + }, + { + "kind": "number", + "nativeSrc": "17706:1:51", + "nodeType": "YulLiteral", + "src": "17706:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17695:3:51", + "nodeType": "YulIdentifier", + "src": "17695:3:51" + }, + "nativeSrc": "17695:13:51", + "nodeType": "YulFunctionCall", + "src": "17695:13:51" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "17686:5:51", + "nodeType": "YulIdentifier", + "src": "17686:5:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "17666:3:51", + "nodeType": "YulBlock", + "src": "17666:3:51", + "statements": [] + }, + "src": "17662:82:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "17314:3:51", + "nodeType": "YulIdentifier", + "src": "17314:3:51" + }, + { + "kind": "number", + "nativeSrc": "17319:2:51", + "nodeType": "YulLiteral", + "src": "17319:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17311:2:51", + "nodeType": "YulIdentifier", + "src": "17311:2:51" + }, + "nativeSrc": "17311:11:51", + "nodeType": "YulFunctionCall", + "src": "17311:11:51" + }, + "nativeSrc": "17308:446:51", + "nodeType": "YulIf", + "src": "17308:446:51" + } + ] + }, + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "17217:543:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "17270:5:51", + "nodeType": "YulTypedName", + "src": "17270:5:51", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17277:3:51", + "nodeType": "YulTypedName", + "src": "17277:3:51", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "17282:10:51", + "nodeType": "YulTypedName", + "src": "17282:10:51", + "type": "" + } + ], + "src": "17217:543:51" + }, + { + "body": { + "nativeSrc": "17850:81:51", + "nodeType": "YulBlock", + "src": "17850:81:51", + "statements": [ + { + "nativeSrc": "17860:65:51", + "nodeType": "YulAssignment", + "src": "17860:65:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nativeSrc": "17875:4:51", + "nodeType": "YulIdentifier", + "src": "17875:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17893:1:51", + "nodeType": "YulLiteral", + "src": "17893:1:51", + "type": "", + "value": "3" + }, + { + "name": "len", + "nativeSrc": "17896:3:51", + "nodeType": "YulIdentifier", + "src": "17896:3:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "17889:3:51", + "nodeType": "YulIdentifier", + "src": "17889:3:51" + }, + "nativeSrc": "17889:11:51", + "nodeType": "YulFunctionCall", + "src": "17889:11:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17906:1:51", + "nodeType": "YulLiteral", + "src": "17906:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "17902:3:51", + "nodeType": "YulIdentifier", + "src": "17902:3:51" + }, + "nativeSrc": "17902:6:51", + "nodeType": "YulFunctionCall", + "src": "17902:6:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "17885:3:51", + "nodeType": "YulIdentifier", + "src": "17885:3:51" + }, + "nativeSrc": "17885:24:51", + "nodeType": "YulFunctionCall", + "src": "17885:24:51" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "17881:3:51", + "nodeType": "YulIdentifier", + "src": "17881:3:51" + }, + "nativeSrc": "17881:29:51", + "nodeType": "YulFunctionCall", + "src": "17881:29:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17871:3:51", + "nodeType": "YulIdentifier", + "src": "17871:3:51" + }, + "nativeSrc": "17871:40:51", + "nodeType": "YulFunctionCall", + "src": "17871:40:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17917:1:51", + "nodeType": "YulLiteral", + "src": "17917:1:51", + "type": "", + "value": "1" + }, + { + "name": "len", + "nativeSrc": "17920:3:51", + "nodeType": "YulIdentifier", + "src": "17920:3:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "17913:3:51", + "nodeType": "YulIdentifier", + "src": "17913:3:51" + }, + "nativeSrc": "17913:11:51", + "nodeType": "YulFunctionCall", + "src": "17913:11:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "17868:2:51", + "nodeType": "YulIdentifier", + "src": "17868:2:51" + }, + "nativeSrc": "17868:57:51", + "nodeType": "YulFunctionCall", + "src": "17868:57:51" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "17860:4:51", + "nodeType": "YulIdentifier", + "src": "17860:4:51" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "17765:166:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "17827:4:51", + "nodeType": "YulTypedName", + "src": "17827:4:51", + "type": "" + }, + { + "name": "len", + "nativeSrc": "17833:3:51", + "nodeType": "YulTypedName", + "src": "17833:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "17841:4:51", + "nodeType": "YulTypedName", + "src": "17841:4:51", + "type": "" + } + ], + "src": "17765:166:51" + }, + { + "body": { + "nativeSrc": "18032:1249:51", + "nodeType": "YulBlock", + "src": "18032:1249:51", + "statements": [ + { + "nativeSrc": "18042:24:51", + "nodeType": "YulVariableDeclaration", + "src": "18042:24:51", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "18062:3:51", + "nodeType": "YulIdentifier", + "src": "18062:3:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18056:5:51", + "nodeType": "YulIdentifier", + "src": "18056:5:51" + }, + "nativeSrc": "18056:10:51", + "nodeType": "YulFunctionCall", + "src": "18056:10:51" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "18046:6:51", + "nodeType": "YulTypedName", + "src": "18046:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18109:22:51", + "nodeType": "YulBlock", + "src": "18109:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "18111:16:51", + "nodeType": "YulIdentifier", + "src": "18111:16:51" + }, + "nativeSrc": "18111:18:51", + "nodeType": "YulFunctionCall", + "src": "18111:18:51" + }, + "nativeSrc": "18111:18:51", + "nodeType": "YulExpressionStatement", + "src": "18111:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18081:6:51", + "nodeType": "YulIdentifier", + "src": "18081:6:51" + }, + { + "kind": "number", + "nativeSrc": "18089:18:51", + "nodeType": "YulLiteral", + "src": "18089:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18078:2:51", + "nodeType": "YulIdentifier", + "src": "18078:2:51" + }, + "nativeSrc": "18078:30:51", + "nodeType": "YulFunctionCall", + "src": "18078:30:51" + }, + "nativeSrc": "18075:56:51", + "nodeType": "YulIf", + "src": "18075:56:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18184:4:51", + "nodeType": "YulIdentifier", + "src": "18184:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18222:4:51", + "nodeType": "YulIdentifier", + "src": "18222:4:51" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18216:5:51", + "nodeType": "YulIdentifier", + "src": "18216:5:51" + }, + "nativeSrc": "18216:11:51", + "nodeType": "YulFunctionCall", + "src": "18216:11:51" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "18190:25:51", + "nodeType": "YulIdentifier", + "src": "18190:25:51" + }, + "nativeSrc": "18190:38:51", + "nodeType": "YulFunctionCall", + "src": "18190:38:51" + }, + { + "name": "newLen", + "nativeSrc": "18230:6:51", + "nodeType": "YulIdentifier", + "src": "18230:6:51" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "18140:43:51", + "nodeType": "YulIdentifier", + "src": "18140:43:51" + }, + "nativeSrc": "18140:97:51", + "nodeType": "YulFunctionCall", + "src": "18140:97:51" + }, + "nativeSrc": "18140:97:51", + "nodeType": "YulExpressionStatement", + "src": "18140:97:51" + }, + { + "nativeSrc": "18246:18:51", + "nodeType": "YulVariableDeclaration", + "src": "18246:18:51", + "value": { + "kind": "number", + "nativeSrc": "18263:1:51", + "nodeType": "YulLiteral", + "src": "18263:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "18250:9:51", + "nodeType": "YulTypedName", + "src": "18250:9:51", + "type": "" + } + ] + }, + { + "nativeSrc": "18273:23:51", + "nodeType": "YulVariableDeclaration", + "src": "18273:23:51", + "value": { + "kind": "number", + "nativeSrc": "18292:4:51", + "nodeType": "YulLiteral", + "src": "18292:4:51", + "type": "", + "value": "0x20" + }, + "variables": [ + { + "name": "srcOffset_1", + "nativeSrc": "18277:11:51", + "nodeType": "YulTypedName", + "src": "18277:11:51", + "type": "" + } + ] + }, + { + "nativeSrc": "18305:17:51", + "nodeType": "YulAssignment", + "src": "18305:17:51", + "value": { + "kind": "number", + "nativeSrc": "18318:4:51", + "nodeType": "YulLiteral", + "src": "18318:4:51", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "18305:9:51", + "nodeType": "YulIdentifier", + "src": "18305:9:51" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "18368:656:51", + "nodeType": "YulBlock", + "src": "18368:656:51", + "statements": [ + { + "nativeSrc": "18382:35:51", + "nodeType": "YulVariableDeclaration", + "src": "18382:35:51", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18401:6:51", + "nodeType": "YulIdentifier", + "src": "18401:6:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18413:2:51", + "nodeType": "YulLiteral", + "src": "18413:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18409:3:51", + "nodeType": "YulIdentifier", + "src": "18409:3:51" + }, + "nativeSrc": "18409:7:51", + "nodeType": "YulFunctionCall", + "src": "18409:7:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18397:3:51", + "nodeType": "YulIdentifier", + "src": "18397:3:51" + }, + "nativeSrc": "18397:20:51", + "nodeType": "YulFunctionCall", + "src": "18397:20:51" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "18386:7:51", + "nodeType": "YulTypedName", + "src": "18386:7:51", + "type": "" + } + ] + }, + { + "nativeSrc": "18430:49:51", + "nodeType": "YulVariableDeclaration", + "src": "18430:49:51", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18474:4:51", + "nodeType": "YulIdentifier", + "src": "18474:4:51" + } + ], + "functionName": { + "name": "array_dataslot_string_storage", + "nativeSrc": "18444:29:51", + "nodeType": "YulIdentifier", + "src": "18444:29:51" + }, + "nativeSrc": "18444:35:51", + "nodeType": "YulFunctionCall", + "src": "18444:35:51" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "18434:6:51", + "nodeType": "YulTypedName", + "src": "18434:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "18492:10:51", + "nodeType": "YulVariableDeclaration", + "src": "18492:10:51", + "value": { + "kind": "number", + "nativeSrc": "18501:1:51", + "nodeType": "YulLiteral", + "src": "18501:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "18496:1:51", + "nodeType": "YulTypedName", + "src": "18496:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18579:172:51", + "nodeType": "YulBlock", + "src": "18579:172:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "18604:6:51", + "nodeType": "YulIdentifier", + "src": "18604:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "18622:3:51", + "nodeType": "YulIdentifier", + "src": "18622:3:51" + }, + { + "name": "srcOffset", + "nativeSrc": "18627:9:51", + "nodeType": "YulIdentifier", + "src": "18627:9:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18618:3:51", + "nodeType": "YulIdentifier", + "src": "18618:3:51" + }, + "nativeSrc": "18618:19:51", + "nodeType": "YulFunctionCall", + "src": "18618:19:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18612:5:51", + "nodeType": "YulIdentifier", + "src": "18612:5:51" + }, + "nativeSrc": "18612:26:51", + "nodeType": "YulFunctionCall", + "src": "18612:26:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18597:6:51", + "nodeType": "YulIdentifier", + "src": "18597:6:51" + }, + "nativeSrc": "18597:42:51", + "nodeType": "YulFunctionCall", + "src": "18597:42:51" + }, + "nativeSrc": "18597:42:51", + "nodeType": "YulExpressionStatement", + "src": "18597:42:51" + }, + { + "nativeSrc": "18656:24:51", + "nodeType": "YulAssignment", + "src": "18656:24:51", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "18670:6:51", + "nodeType": "YulIdentifier", + "src": "18670:6:51" + }, + { + "kind": "number", + "nativeSrc": "18678:1:51", + "nodeType": "YulLiteral", + "src": "18678:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18666:3:51", + "nodeType": "YulIdentifier", + "src": "18666:3:51" + }, + "nativeSrc": "18666:14:51", + "nodeType": "YulFunctionCall", + "src": "18666:14:51" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "18656:6:51", + "nodeType": "YulIdentifier", + "src": "18656:6:51" + } + ] + }, + { + "nativeSrc": "18697:40:51", + "nodeType": "YulAssignment", + "src": "18697:40:51", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "18714:9:51", + "nodeType": "YulIdentifier", + "src": "18714:9:51" + }, + { + "name": "srcOffset_1", + "nativeSrc": "18725:11:51", + "nodeType": "YulIdentifier", + "src": "18725:11:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18710:3:51", + "nodeType": "YulIdentifier", + "src": "18710:3:51" + }, + "nativeSrc": "18710:27:51", + "nodeType": "YulFunctionCall", + "src": "18710:27:51" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "18697:9:51", + "nodeType": "YulIdentifier", + "src": "18697:9:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "18526:1:51", + "nodeType": "YulIdentifier", + "src": "18526:1:51" + }, + { + "name": "loopEnd", + "nativeSrc": "18529:7:51", + "nodeType": "YulIdentifier", + "src": "18529:7:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18523:2:51", + "nodeType": "YulIdentifier", + "src": "18523:2:51" + }, + "nativeSrc": "18523:14:51", + "nodeType": "YulFunctionCall", + "src": "18523:14:51" + }, + "nativeSrc": "18515:236:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18538:28:51", + "nodeType": "YulBlock", + "src": "18538:28:51", + "statements": [ + { + "nativeSrc": "18540:24:51", + "nodeType": "YulAssignment", + "src": "18540:24:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "18549:1:51", + "nodeType": "YulIdentifier", + "src": "18549:1:51" + }, + { + "name": "srcOffset_1", + "nativeSrc": "18552:11:51", + "nodeType": "YulIdentifier", + "src": "18552:11:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18545:3:51", + "nodeType": "YulIdentifier", + "src": "18545:3:51" + }, + "nativeSrc": "18545:19:51", + "nodeType": "YulFunctionCall", + "src": "18545:19:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "18540:1:51", + "nodeType": "YulIdentifier", + "src": "18540:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18519:3:51", + "nodeType": "YulBlock", + "src": "18519:3:51", + "statements": [] + }, + "src": "18515:236:51" + }, + { + "body": { + "nativeSrc": "18799:166:51", + "nodeType": "YulBlock", + "src": "18799:166:51", + "statements": [ + { + "nativeSrc": "18817:43:51", + "nodeType": "YulVariableDeclaration", + "src": "18817:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "18844:3:51", + "nodeType": "YulIdentifier", + "src": "18844:3:51" + }, + { + "name": "srcOffset", + "nativeSrc": "18849:9:51", + "nodeType": "YulIdentifier", + "src": "18849:9:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18840:3:51", + "nodeType": "YulIdentifier", + "src": "18840:3:51" + }, + "nativeSrc": "18840:19:51", + "nodeType": "YulFunctionCall", + "src": "18840:19:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18834:5:51", + "nodeType": "YulIdentifier", + "src": "18834:5:51" + }, + "nativeSrc": "18834:26:51", + "nodeType": "YulFunctionCall", + "src": "18834:26:51" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "18821:9:51", + "nodeType": "YulTypedName", + "src": "18821:9:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "18884:6:51", + "nodeType": "YulIdentifier", + "src": "18884:6:51" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "18896:9:51", + "nodeType": "YulIdentifier", + "src": "18896:9:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18923:1:51", + "nodeType": "YulLiteral", + "src": "18923:1:51", + "type": "", + "value": "3" + }, + { + "name": "newLen", + "nativeSrc": "18926:6:51", + "nodeType": "YulIdentifier", + "src": "18926:6:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18919:3:51", + "nodeType": "YulIdentifier", + "src": "18919:3:51" + }, + "nativeSrc": "18919:14:51", + "nodeType": "YulFunctionCall", + "src": "18919:14:51" + }, + { + "kind": "number", + "nativeSrc": "18935:3:51", + "nodeType": "YulLiteral", + "src": "18935:3:51", + "type": "", + "value": "248" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18915:3:51", + "nodeType": "YulIdentifier", + "src": "18915:3:51" + }, + "nativeSrc": "18915:24:51", + "nodeType": "YulFunctionCall", + "src": "18915:24:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18945:1:51", + "nodeType": "YulLiteral", + "src": "18945:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18941:3:51", + "nodeType": "YulIdentifier", + "src": "18941:3:51" + }, + "nativeSrc": "18941:6:51", + "nodeType": "YulFunctionCall", + "src": "18941:6:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18911:3:51", + "nodeType": "YulIdentifier", + "src": "18911:3:51" + }, + "nativeSrc": "18911:37:51", + "nodeType": "YulFunctionCall", + "src": "18911:37:51" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18907:3:51", + "nodeType": "YulIdentifier", + "src": "18907:3:51" + }, + "nativeSrc": "18907:42:51", + "nodeType": "YulFunctionCall", + "src": "18907:42:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18892:3:51", + "nodeType": "YulIdentifier", + "src": "18892:3:51" + }, + "nativeSrc": "18892:58:51", + "nodeType": "YulFunctionCall", + "src": "18892:58:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18877:6:51", + "nodeType": "YulIdentifier", + "src": "18877:6:51" + }, + "nativeSrc": "18877:74:51", + "nodeType": "YulFunctionCall", + "src": "18877:74:51" + }, + "nativeSrc": "18877:74:51", + "nodeType": "YulExpressionStatement", + "src": "18877:74:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "18770:7:51", + "nodeType": "YulIdentifier", + "src": "18770:7:51" + }, + { + "name": "newLen", + "nativeSrc": "18779:6:51", + "nodeType": "YulIdentifier", + "src": "18779:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18767:2:51", + "nodeType": "YulIdentifier", + "src": "18767:2:51" + }, + "nativeSrc": "18767:19:51", + "nodeType": "YulFunctionCall", + "src": "18767:19:51" + }, + "nativeSrc": "18764:201:51", + "nodeType": "YulIf", + "src": "18764:201:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "18985:4:51", + "nodeType": "YulIdentifier", + "src": "18985:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18999:1:51", + "nodeType": "YulLiteral", + "src": "18999:1:51", + "type": "", + "value": "1" + }, + { + "name": "newLen", + "nativeSrc": "19002:6:51", + "nodeType": "YulIdentifier", + "src": "19002:6:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18995:3:51", + "nodeType": "YulIdentifier", + "src": "18995:3:51" + }, + "nativeSrc": "18995:14:51", + "nodeType": "YulFunctionCall", + "src": "18995:14:51" + }, + { + "kind": "number", + "nativeSrc": "19011:1:51", + "nodeType": "YulLiteral", + "src": "19011:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18991:3:51", + "nodeType": "YulIdentifier", + "src": "18991:3:51" + }, + "nativeSrc": "18991:22:51", + "nodeType": "YulFunctionCall", + "src": "18991:22:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18978:6:51", + "nodeType": "YulIdentifier", + "src": "18978:6:51" + }, + "nativeSrc": "18978:36:51", + "nodeType": "YulFunctionCall", + "src": "18978:36:51" + }, + "nativeSrc": "18978:36:51", + "nodeType": "YulExpressionStatement", + "src": "18978:36:51" + } + ] + }, + "nativeSrc": "18361:663:51", + "nodeType": "YulCase", + "src": "18361:663:51", + "value": { + "kind": "number", + "nativeSrc": "18366:1:51", + "nodeType": "YulLiteral", + "src": "18366:1:51", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "19041:234:51", + "nodeType": "YulBlock", + "src": "19041:234:51", + "statements": [ + { + "nativeSrc": "19055:14:51", + "nodeType": "YulVariableDeclaration", + "src": "19055:14:51", + "value": { + "kind": "number", + "nativeSrc": "19068:1:51", + "nodeType": "YulLiteral", + "src": "19068:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19059:5:51", + "nodeType": "YulTypedName", + "src": "19059:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19104:67:51", + "nodeType": "YulBlock", + "src": "19104:67:51", + "statements": [ + { + "nativeSrc": "19122:35:51", + "nodeType": "YulAssignment", + "src": "19122:35:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "19141:3:51", + "nodeType": "YulIdentifier", + "src": "19141:3:51" + }, + { + "name": "srcOffset", + "nativeSrc": "19146:9:51", + "nodeType": "YulIdentifier", + "src": "19146:9:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19137:3:51", + "nodeType": "YulIdentifier", + "src": "19137:3:51" + }, + "nativeSrc": "19137:19:51", + "nodeType": "YulFunctionCall", + "src": "19137:19:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19131:5:51", + "nodeType": "YulIdentifier", + "src": "19131:5:51" + }, + "nativeSrc": "19131:26:51", + "nodeType": "YulFunctionCall", + "src": "19131:26:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19122:5:51", + "nodeType": "YulIdentifier", + "src": "19122:5:51" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "19085:6:51", + "nodeType": "YulIdentifier", + "src": "19085:6:51" + }, + "nativeSrc": "19082:89:51", + "nodeType": "YulIf", + "src": "19082:89:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "19191:4:51", + "nodeType": "YulIdentifier", + "src": "19191:4:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19250:5:51", + "nodeType": "YulIdentifier", + "src": "19250:5:51" + }, + { + "name": "newLen", + "nativeSrc": "19257:6:51", + "nodeType": "YulIdentifier", + "src": "19257:6:51" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "19197:52:51", + "nodeType": "YulIdentifier", + "src": "19197:52:51" + }, + "nativeSrc": "19197:67:51", + "nodeType": "YulFunctionCall", + "src": "19197:67:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "19184:6:51", + "nodeType": "YulIdentifier", + "src": "19184:6:51" + }, + "nativeSrc": "19184:81:51", + "nodeType": "YulFunctionCall", + "src": "19184:81:51" + }, + "nativeSrc": "19184:81:51", + "nodeType": "YulExpressionStatement", + "src": "19184:81:51" + } + ] + }, + "nativeSrc": "19033:242:51", + "nodeType": "YulCase", + "src": "19033:242:51", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "18341:6:51", + "nodeType": "YulIdentifier", + "src": "18341:6:51" + }, + { + "kind": "number", + "nativeSrc": "18349:2:51", + "nodeType": "YulLiteral", + "src": "18349:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18338:2:51", + "nodeType": "YulIdentifier", + "src": "18338:2:51" + }, + "nativeSrc": "18338:14:51", + "nodeType": "YulFunctionCall", + "src": "18338:14:51" + }, + "nativeSrc": "18331:944:51", + "nodeType": "YulSwitch", + "src": "18331:944:51" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "17936:1345:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "18017:4:51", + "nodeType": "YulTypedName", + "src": "18017:4:51", + "type": "" + }, + { + "name": "src", + "nativeSrc": "18023:3:51", + "nodeType": "YulTypedName", + "src": "18023:3:51", + "type": "" + } + ], + "src": "17936:1345:51" + }, + { + "body": { + "nativeSrc": "19318:95:51", + "nodeType": "YulBlock", + "src": "19318:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19335:1:51", + "nodeType": "YulLiteral", + "src": "19335:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19342:3:51", + "nodeType": "YulLiteral", + "src": "19342:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "19347:10:51", + "nodeType": "YulLiteral", + "src": "19347:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19338:3:51", + "nodeType": "YulIdentifier", + "src": "19338:3:51" + }, + "nativeSrc": "19338:20:51", + "nodeType": "YulFunctionCall", + "src": "19338:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19328:6:51", + "nodeType": "YulIdentifier", + "src": "19328:6:51" + }, + "nativeSrc": "19328:31:51", + "nodeType": "YulFunctionCall", + "src": "19328:31:51" + }, + "nativeSrc": "19328:31:51", + "nodeType": "YulExpressionStatement", + "src": "19328:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19375:1:51", + "nodeType": "YulLiteral", + "src": "19375:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "19378:4:51", + "nodeType": "YulLiteral", + "src": "19378:4:51", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19368:6:51", + "nodeType": "YulIdentifier", + "src": "19368:6:51" + }, + "nativeSrc": "19368:15:51", + "nodeType": "YulFunctionCall", + "src": "19368:15:51" + }, + "nativeSrc": "19368:15:51", + "nodeType": "YulExpressionStatement", + "src": "19368:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19399:1:51", + "nodeType": "YulLiteral", + "src": "19399:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19402:4:51", + "nodeType": "YulLiteral", + "src": "19402:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19392:6:51", + "nodeType": "YulIdentifier", + "src": "19392:6:51" + }, + "nativeSrc": "19392:15:51", + "nodeType": "YulFunctionCall", + "src": "19392:15:51" + }, + "nativeSrc": "19392:15:51", + "nodeType": "YulExpressionStatement", + "src": "19392:15:51" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "19286:127:51", + "nodeType": "YulFunctionDefinition", + "src": "19286:127:51" + }, + { + "body": { + "nativeSrc": "19465:88:51", + "nodeType": "YulBlock", + "src": "19465:88:51", + "statements": [ + { + "body": { + "nativeSrc": "19496:22:51", + "nodeType": "YulBlock", + "src": "19496:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "19498:16:51", + "nodeType": "YulIdentifier", + "src": "19498:16:51" + }, + "nativeSrc": "19498:18:51", + "nodeType": "YulFunctionCall", + "src": "19498:18:51" + }, + "nativeSrc": "19498:18:51", + "nodeType": "YulExpressionStatement", + "src": "19498:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "19481:5:51", + "nodeType": "YulIdentifier", + "src": "19481:5:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19492:1:51", + "nodeType": "YulLiteral", + "src": "19492:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "19488:3:51", + "nodeType": "YulIdentifier", + "src": "19488:3:51" + }, + "nativeSrc": "19488:6:51", + "nodeType": "YulFunctionCall", + "src": "19488:6:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "19478:2:51", + "nodeType": "YulIdentifier", + "src": "19478:2:51" + }, + "nativeSrc": "19478:17:51", + "nodeType": "YulFunctionCall", + "src": "19478:17:51" + }, + "nativeSrc": "19475:43:51", + "nodeType": "YulIf", + "src": "19475:43:51" + }, + { + "nativeSrc": "19527:20:51", + "nodeType": "YulAssignment", + "src": "19527:20:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "19538:5:51", + "nodeType": "YulIdentifier", + "src": "19538:5:51" + }, + { + "kind": "number", + "nativeSrc": "19545:1:51", + "nodeType": "YulLiteral", + "src": "19545:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19534:3:51", + "nodeType": "YulIdentifier", + "src": "19534:3:51" + }, + "nativeSrc": "19534:13:51", + "nodeType": "YulFunctionCall", + "src": "19534:13:51" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "19527:3:51", + "nodeType": "YulIdentifier", + "src": "19527:3:51" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "19418:135:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19447:5:51", + "nodeType": "YulTypedName", + "src": "19447:5:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "19457:3:51", + "nodeType": "YulTypedName", + "src": "19457:3:51", + "type": "" + } + ], + "src": "19418:135:51" + }, + { + "body": { + "nativeSrc": "19715:218:51", + "nodeType": "YulBlock", + "src": "19715:218:51", + "statements": [ + { + "nativeSrc": "19725:26:51", + "nodeType": "YulAssignment", + "src": "19725:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19737:9:51", + "nodeType": "YulIdentifier", + "src": "19737:9:51" + }, + { + "kind": "number", + "nativeSrc": "19748:2:51", + "nodeType": "YulLiteral", + "src": "19748:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19733:3:51", + "nodeType": "YulIdentifier", + "src": "19733:3:51" + }, + "nativeSrc": "19733:18:51", + "nodeType": "YulFunctionCall", + "src": "19733:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19725:4:51", + "nodeType": "YulIdentifier", + "src": "19725:4:51" + } + ] + }, + { + "nativeSrc": "19760:29:51", + "nodeType": "YulVariableDeclaration", + "src": "19760:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19778:3:51", + "nodeType": "YulLiteral", + "src": "19778:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "19783:1:51", + "nodeType": "YulLiteral", + "src": "19783:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19774:3:51", + "nodeType": "YulIdentifier", + "src": "19774:3:51" + }, + "nativeSrc": "19774:11:51", + "nodeType": "YulFunctionCall", + "src": "19774:11:51" + }, + { + "kind": "number", + "nativeSrc": "19787:1:51", + "nodeType": "YulLiteral", + "src": "19787:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19770:3:51", + "nodeType": "YulIdentifier", + "src": "19770:3:51" + }, + "nativeSrc": "19770:19:51", + "nodeType": "YulFunctionCall", + "src": "19770:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "19764:2:51", + "nodeType": "YulTypedName", + "src": "19764:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19805:9:51", + "nodeType": "YulIdentifier", + "src": "19805:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "19820:6:51", + "nodeType": "YulIdentifier", + "src": "19820:6:51" + }, + { + "name": "_1", + "nativeSrc": "19828:2:51", + "nodeType": "YulIdentifier", + "src": "19828:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19816:3:51", + "nodeType": "YulIdentifier", + "src": "19816:3:51" + }, + "nativeSrc": "19816:15:51", + "nodeType": "YulFunctionCall", + "src": "19816:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19798:6:51", + "nodeType": "YulIdentifier", + "src": "19798:6:51" + }, + "nativeSrc": "19798:34:51", + "nodeType": "YulFunctionCall", + "src": "19798:34:51" + }, + "nativeSrc": "19798:34:51", + "nodeType": "YulExpressionStatement", + "src": "19798:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19852:9:51", + "nodeType": "YulIdentifier", + "src": "19852:9:51" + }, + { + "kind": "number", + "nativeSrc": "19863:2:51", + "nodeType": "YulLiteral", + "src": "19863:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19848:3:51", + "nodeType": "YulIdentifier", + "src": "19848:3:51" + }, + "nativeSrc": "19848:18:51", + "nodeType": "YulFunctionCall", + "src": "19848:18:51" + }, + { + "name": "value1", + "nativeSrc": "19868:6:51", + "nodeType": "YulIdentifier", + "src": "19868:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19841:6:51", + "nodeType": "YulIdentifier", + "src": "19841:6:51" + }, + "nativeSrc": "19841:34:51", + "nodeType": "YulFunctionCall", + "src": "19841:34:51" + }, + "nativeSrc": "19841:34:51", + "nodeType": "YulExpressionStatement", + "src": "19841:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19895:9:51", + "nodeType": "YulIdentifier", + "src": "19895:9:51" + }, + { + "kind": "number", + "nativeSrc": "19906:2:51", + "nodeType": "YulLiteral", + "src": "19906:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19891:3:51", + "nodeType": "YulIdentifier", + "src": "19891:3:51" + }, + "nativeSrc": "19891:18:51", + "nodeType": "YulFunctionCall", + "src": "19891:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "19915:6:51", + "nodeType": "YulIdentifier", + "src": "19915:6:51" + }, + { + "name": "_1", + "nativeSrc": "19923:2:51", + "nodeType": "YulIdentifier", + "src": "19923:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19911:3:51", + "nodeType": "YulIdentifier", + "src": "19911:3:51" + }, + "nativeSrc": "19911:15:51", + "nodeType": "YulFunctionCall", + "src": "19911:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19884:6:51", + "nodeType": "YulIdentifier", + "src": "19884:6:51" + }, + "nativeSrc": "19884:43:51", + "nodeType": "YulFunctionCall", + "src": "19884:43:51" + }, + "nativeSrc": "19884:43:51", + "nodeType": "YulExpressionStatement", + "src": "19884:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "19558:375:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19668:9:51", + "nodeType": "YulTypedName", + "src": "19668:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "19679:6:51", + "nodeType": "YulTypedName", + "src": "19679:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19687:6:51", + "nodeType": "YulTypedName", + "src": "19687:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "19695:6:51", + "nodeType": "YulTypedName", + "src": "19695:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19706:4:51", + "nodeType": "YulTypedName", + "src": "19706:4:51", + "type": "" + } + ], + "src": "19558:375:51" + }, + { + "body": { + "nativeSrc": "20019:170:51", + "nodeType": "YulBlock", + "src": "20019:170:51", + "statements": [ + { + "body": { + "nativeSrc": "20065:16:51", + "nodeType": "YulBlock", + "src": "20065:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20074:1:51", + "nodeType": "YulLiteral", + "src": "20074:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20077:1:51", + "nodeType": "YulLiteral", + "src": "20077:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20067:6:51", + "nodeType": "YulIdentifier", + "src": "20067:6:51" + }, + "nativeSrc": "20067:12:51", + "nodeType": "YulFunctionCall", + "src": "20067:12:51" + }, + "nativeSrc": "20067:12:51", + "nodeType": "YulExpressionStatement", + "src": "20067:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20040:7:51", + "nodeType": "YulIdentifier", + "src": "20040:7:51" + }, + { + "name": "headStart", + "nativeSrc": "20049:9:51", + "nodeType": "YulIdentifier", + "src": "20049:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20036:3:51", + "nodeType": "YulIdentifier", + "src": "20036:3:51" + }, + "nativeSrc": "20036:23:51", + "nodeType": "YulFunctionCall", + "src": "20036:23:51" + }, + { + "kind": "number", + "nativeSrc": "20061:2:51", + "nodeType": "YulLiteral", + "src": "20061:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20032:3:51", + "nodeType": "YulIdentifier", + "src": "20032:3:51" + }, + "nativeSrc": "20032:32:51", + "nodeType": "YulFunctionCall", + "src": "20032:32:51" + }, + "nativeSrc": "20029:52:51", + "nodeType": "YulIf", + "src": "20029:52:51" + }, + { + "nativeSrc": "20090:29:51", + "nodeType": "YulVariableDeclaration", + "src": "20090:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20109:9:51", + "nodeType": "YulIdentifier", + "src": "20109:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20103:5:51", + "nodeType": "YulIdentifier", + "src": "20103:5:51" + }, + "nativeSrc": "20103:16:51", + "nodeType": "YulFunctionCall", + "src": "20103:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "20094:5:51", + "nodeType": "YulTypedName", + "src": "20094:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "20153:5:51", + "nodeType": "YulIdentifier", + "src": "20153:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "20128:24:51", + "nodeType": "YulIdentifier", + "src": "20128:24:51" + }, + "nativeSrc": "20128:31:51", + "nodeType": "YulFunctionCall", + "src": "20128:31:51" + }, + "nativeSrc": "20128:31:51", + "nodeType": "YulExpressionStatement", + "src": "20128:31:51" + }, + { + "nativeSrc": "20168:15:51", + "nodeType": "YulAssignment", + "src": "20168:15:51", + "value": { + "name": "value", + "nativeSrc": "20178:5:51", + "nodeType": "YulIdentifier", + "src": "20178:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20168:6:51", + "nodeType": "YulIdentifier", + "src": "20168:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "19938:251:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19985:9:51", + "nodeType": "YulTypedName", + "src": "19985:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19996:7:51", + "nodeType": "YulTypedName", + "src": "19996:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "20008:6:51", + "nodeType": "YulTypedName", + "src": "20008:6:51", + "type": "" + } + ], + "src": "19938:251:51" + }, + { + "body": { + "nativeSrc": "20351:218:51", + "nodeType": "YulBlock", + "src": "20351:218:51", + "statements": [ + { + "nativeSrc": "20361:26:51", + "nodeType": "YulAssignment", + "src": "20361:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20373:9:51", + "nodeType": "YulIdentifier", + "src": "20373:9:51" + }, + { + "kind": "number", + "nativeSrc": "20384:2:51", + "nodeType": "YulLiteral", + "src": "20384:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20369:3:51", + "nodeType": "YulIdentifier", + "src": "20369:3:51" + }, + "nativeSrc": "20369:18:51", + "nodeType": "YulFunctionCall", + "src": "20369:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20361:4:51", + "nodeType": "YulIdentifier", + "src": "20361:4:51" + } + ] + }, + { + "nativeSrc": "20396:29:51", + "nodeType": "YulVariableDeclaration", + "src": "20396:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20414:3:51", + "nodeType": "YulLiteral", + "src": "20414:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "20419:1:51", + "nodeType": "YulLiteral", + "src": "20419:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "20410:3:51", + "nodeType": "YulIdentifier", + "src": "20410:3:51" + }, + "nativeSrc": "20410:11:51", + "nodeType": "YulFunctionCall", + "src": "20410:11:51" + }, + { + "kind": "number", + "nativeSrc": "20423:1:51", + "nodeType": "YulLiteral", + "src": "20423:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20406:3:51", + "nodeType": "YulIdentifier", + "src": "20406:3:51" + }, + "nativeSrc": "20406:19:51", + "nodeType": "YulFunctionCall", + "src": "20406:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "20400:2:51", + "nodeType": "YulTypedName", + "src": "20400:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20441:9:51", + "nodeType": "YulIdentifier", + "src": "20441:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "20456:6:51", + "nodeType": "YulIdentifier", + "src": "20456:6:51" + }, + { + "name": "_1", + "nativeSrc": "20464:2:51", + "nodeType": "YulIdentifier", + "src": "20464:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20452:3:51", + "nodeType": "YulIdentifier", + "src": "20452:3:51" + }, + "nativeSrc": "20452:15:51", + "nodeType": "YulFunctionCall", + "src": "20452:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20434:6:51", + "nodeType": "YulIdentifier", + "src": "20434:6:51" + }, + "nativeSrc": "20434:34:51", + "nodeType": "YulFunctionCall", + "src": "20434:34:51" + }, + "nativeSrc": "20434:34:51", + "nodeType": "YulExpressionStatement", + "src": "20434:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20488:9:51", + "nodeType": "YulIdentifier", + "src": "20488:9:51" + }, + { + "kind": "number", + "nativeSrc": "20499:2:51", + "nodeType": "YulLiteral", + "src": "20499:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20484:3:51", + "nodeType": "YulIdentifier", + "src": "20484:3:51" + }, + "nativeSrc": "20484:18:51", + "nodeType": "YulFunctionCall", + "src": "20484:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "20508:6:51", + "nodeType": "YulIdentifier", + "src": "20508:6:51" + }, + { + "name": "_1", + "nativeSrc": "20516:2:51", + "nodeType": "YulIdentifier", + "src": "20516:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20504:3:51", + "nodeType": "YulIdentifier", + "src": "20504:3:51" + }, + "nativeSrc": "20504:15:51", + "nodeType": "YulFunctionCall", + "src": "20504:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20477:6:51", + "nodeType": "YulIdentifier", + "src": "20477:6:51" + }, + "nativeSrc": "20477:43:51", + "nodeType": "YulFunctionCall", + "src": "20477:43:51" + }, + "nativeSrc": "20477:43:51", + "nodeType": "YulExpressionStatement", + "src": "20477:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20540:9:51", + "nodeType": "YulIdentifier", + "src": "20540:9:51" + }, + { + "kind": "number", + "nativeSrc": "20551:2:51", + "nodeType": "YulLiteral", + "src": "20551:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20536:3:51", + "nodeType": "YulIdentifier", + "src": "20536:3:51" + }, + "nativeSrc": "20536:18:51", + "nodeType": "YulFunctionCall", + "src": "20536:18:51" + }, + { + "name": "value2", + "nativeSrc": "20556:6:51", + "nodeType": "YulIdentifier", + "src": "20556:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20529:6:51", + "nodeType": "YulIdentifier", + "src": "20529:6:51" + }, + "nativeSrc": "20529:34:51", + "nodeType": "YulFunctionCall", + "src": "20529:34:51" + }, + "nativeSrc": "20529:34:51", + "nodeType": "YulExpressionStatement", + "src": "20529:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "20194:375:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20304:9:51", + "nodeType": "YulTypedName", + "src": "20304:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20315:6:51", + "nodeType": "YulTypedName", + "src": "20315:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20323:6:51", + "nodeType": "YulTypedName", + "src": "20323:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20331:6:51", + "nodeType": "YulTypedName", + "src": "20331:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20342:4:51", + "nodeType": "YulTypedName", + "src": "20342:4:51", + "type": "" + } + ], + "src": "20194:375:51" + }, + { + "body": { + "nativeSrc": "20622:77:51", + "nodeType": "YulBlock", + "src": "20622:77:51", + "statements": [ + { + "nativeSrc": "20632:16:51", + "nodeType": "YulAssignment", + "src": "20632:16:51", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "20643:1:51", + "nodeType": "YulIdentifier", + "src": "20643:1:51" + }, + { + "name": "y", + "nativeSrc": "20646:1:51", + "nodeType": "YulIdentifier", + "src": "20646:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20639:3:51", + "nodeType": "YulIdentifier", + "src": "20639:3:51" + }, + "nativeSrc": "20639:9:51", + "nodeType": "YulFunctionCall", + "src": "20639:9:51" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "20632:3:51", + "nodeType": "YulIdentifier", + "src": "20632:3:51" + } + ] + }, + { + "body": { + "nativeSrc": "20671:22:51", + "nodeType": "YulBlock", + "src": "20671:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "20673:16:51", + "nodeType": "YulIdentifier", + "src": "20673:16:51" + }, + "nativeSrc": "20673:18:51", + "nodeType": "YulFunctionCall", + "src": "20673:18:51" + }, + "nativeSrc": "20673:18:51", + "nodeType": "YulExpressionStatement", + "src": "20673:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "20663:1:51", + "nodeType": "YulIdentifier", + "src": "20663:1:51" + }, + { + "name": "sum", + "nativeSrc": "20666:3:51", + "nodeType": "YulIdentifier", + "src": "20666:3:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20660:2:51", + "nodeType": "YulIdentifier", + "src": "20660:2:51" + }, + "nativeSrc": "20660:10:51", + "nodeType": "YulFunctionCall", + "src": "20660:10:51" + }, + "nativeSrc": "20657:36:51", + "nodeType": "YulIf", + "src": "20657:36:51" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "20574:125:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "20605:1:51", + "nodeType": "YulTypedName", + "src": "20605:1:51", + "type": "" + }, + { + "name": "y", + "nativeSrc": "20608:1:51", + "nodeType": "YulTypedName", + "src": "20608:1:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "20614:3:51", + "nodeType": "YulTypedName", + "src": "20614:3:51", + "type": "" + } + ], + "src": "20574:125:51" + }, + { + "body": { + "nativeSrc": "20897:262:51", + "nodeType": "YulBlock", + "src": "20897:262:51", + "statements": [ + { + "nativeSrc": "20907:27:51", + "nodeType": "YulAssignment", + "src": "20907:27:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20919:9:51", + "nodeType": "YulIdentifier", + "src": "20919:9:51" + }, + { + "kind": "number", + "nativeSrc": "20930:3:51", + "nodeType": "YulLiteral", + "src": "20930:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20915:3:51", + "nodeType": "YulIdentifier", + "src": "20915:3:51" + }, + "nativeSrc": "20915:19:51", + "nodeType": "YulFunctionCall", + "src": "20915:19:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20907:4:51", + "nodeType": "YulIdentifier", + "src": "20907:4:51" + } + ] + }, + { + "nativeSrc": "20943:29:51", + "nodeType": "YulVariableDeclaration", + "src": "20943:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20961:3:51", + "nodeType": "YulLiteral", + "src": "20961:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "20966:1:51", + "nodeType": "YulLiteral", + "src": "20966:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "20957:3:51", + "nodeType": "YulIdentifier", + "src": "20957:3:51" + }, + "nativeSrc": "20957:11:51", + "nodeType": "YulFunctionCall", + "src": "20957:11:51" + }, + { + "kind": "number", + "nativeSrc": "20970:1:51", + "nodeType": "YulLiteral", + "src": "20970:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20953:3:51", + "nodeType": "YulIdentifier", + "src": "20953:3:51" + }, + "nativeSrc": "20953:19:51", + "nodeType": "YulFunctionCall", + "src": "20953:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "20947:2:51", + "nodeType": "YulTypedName", + "src": "20947:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20988:9:51", + "nodeType": "YulIdentifier", + "src": "20988:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "21003:6:51", + "nodeType": "YulIdentifier", + "src": "21003:6:51" + }, + { + "name": "_1", + "nativeSrc": "21011:2:51", + "nodeType": "YulIdentifier", + "src": "21011:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20999:3:51", + "nodeType": "YulIdentifier", + "src": "20999:3:51" + }, + "nativeSrc": "20999:15:51", + "nodeType": "YulFunctionCall", + "src": "20999:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20981:6:51", + "nodeType": "YulIdentifier", + "src": "20981:6:51" + }, + "nativeSrc": "20981:34:51", + "nodeType": "YulFunctionCall", + "src": "20981:34:51" + }, + "nativeSrc": "20981:34:51", + "nodeType": "YulExpressionStatement", + "src": "20981:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21035:9:51", + "nodeType": "YulIdentifier", + "src": "21035:9:51" + }, + { + "kind": "number", + "nativeSrc": "21046:2:51", + "nodeType": "YulLiteral", + "src": "21046:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21031:3:51", + "nodeType": "YulIdentifier", + "src": "21031:3:51" + }, + "nativeSrc": "21031:18:51", + "nodeType": "YulFunctionCall", + "src": "21031:18:51" + }, + { + "name": "value1", + "nativeSrc": "21051:6:51", + "nodeType": "YulIdentifier", + "src": "21051:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21024:6:51", + "nodeType": "YulIdentifier", + "src": "21024:6:51" + }, + "nativeSrc": "21024:34:51", + "nodeType": "YulFunctionCall", + "src": "21024:34:51" + }, + "nativeSrc": "21024:34:51", + "nodeType": "YulExpressionStatement", + "src": "21024:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21078:9:51", + "nodeType": "YulIdentifier", + "src": "21078:9:51" + }, + { + "kind": "number", + "nativeSrc": "21089:2:51", + "nodeType": "YulLiteral", + "src": "21089:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21074:3:51", + "nodeType": "YulIdentifier", + "src": "21074:3:51" + }, + "nativeSrc": "21074:18:51", + "nodeType": "YulFunctionCall", + "src": "21074:18:51" + }, + { + "name": "value2", + "nativeSrc": "21094:6:51", + "nodeType": "YulIdentifier", + "src": "21094:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21067:6:51", + "nodeType": "YulIdentifier", + "src": "21067:6:51" + }, + "nativeSrc": "21067:34:51", + "nodeType": "YulFunctionCall", + "src": "21067:34:51" + }, + "nativeSrc": "21067:34:51", + "nodeType": "YulExpressionStatement", + "src": "21067:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21121:9:51", + "nodeType": "YulIdentifier", + "src": "21121:9:51" + }, + { + "kind": "number", + "nativeSrc": "21132:2:51", + "nodeType": "YulLiteral", + "src": "21132:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21117:3:51", + "nodeType": "YulIdentifier", + "src": "21117:3:51" + }, + "nativeSrc": "21117:18:51", + "nodeType": "YulFunctionCall", + "src": "21117:18:51" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "21141:6:51", + "nodeType": "YulIdentifier", + "src": "21141:6:51" + }, + { + "name": "_1", + "nativeSrc": "21149:2:51", + "nodeType": "YulIdentifier", + "src": "21149:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21137:3:51", + "nodeType": "YulIdentifier", + "src": "21137:3:51" + }, + "nativeSrc": "21137:15:51", + "nodeType": "YulFunctionCall", + "src": "21137:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21110:6:51", + "nodeType": "YulIdentifier", + "src": "21110:6:51" + }, + "nativeSrc": "21110:43:51", + "nodeType": "YulFunctionCall", + "src": "21110:43:51" + }, + "nativeSrc": "21110:43:51", + "nodeType": "YulExpressionStatement", + "src": "21110:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_address__to_t_address_t_uint256_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "20704:455:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20842:9:51", + "nodeType": "YulTypedName", + "src": "20842:9:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20853:6:51", + "nodeType": "YulTypedName", + "src": "20853:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20861:6:51", + "nodeType": "YulTypedName", + "src": "20861:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20869:6:51", + "nodeType": "YulTypedName", + "src": "20869:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20877:6:51", + "nodeType": "YulTypedName", + "src": "20877:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20888:4:51", + "nodeType": "YulTypedName", + "src": "20888:4:51", + "type": "" + } + ], + "src": "20704:455:51" + }, + { + "body": { + "nativeSrc": "21272:101:51", + "nodeType": "YulBlock", + "src": "21272:101:51", + "statements": [ + { + "nativeSrc": "21282:26:51", + "nodeType": "YulAssignment", + "src": "21282:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21294:9:51", + "nodeType": "YulIdentifier", + "src": "21294:9:51" + }, + { + "kind": "number", + "nativeSrc": "21305:2:51", + "nodeType": "YulLiteral", + "src": "21305:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21290:3:51", + "nodeType": "YulIdentifier", + "src": "21290:3:51" + }, + "nativeSrc": "21290:18:51", + "nodeType": "YulFunctionCall", + "src": "21290:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21282:4:51", + "nodeType": "YulIdentifier", + "src": "21282:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21324:9:51", + "nodeType": "YulIdentifier", + "src": "21324:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "21339:6:51", + "nodeType": "YulIdentifier", + "src": "21339:6:51" + }, + { + "kind": "number", + "nativeSrc": "21347:18:51", + "nodeType": "YulLiteral", + "src": "21347:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21335:3:51", + "nodeType": "YulIdentifier", + "src": "21335:3:51" + }, + "nativeSrc": "21335:31:51", + "nodeType": "YulFunctionCall", + "src": "21335:31:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21317:6:51", + "nodeType": "YulIdentifier", + "src": "21317:6:51" + }, + "nativeSrc": "21317:50:51", + "nodeType": "YulFunctionCall", + "src": "21317:50:51" + }, + "nativeSrc": "21317:50:51", + "nodeType": "YulExpressionStatement", + "src": "21317:50:51" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "21164:209:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21241:9:51", + "nodeType": "YulTypedName", + "src": "21241:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21252:6:51", + "nodeType": "YulTypedName", + "src": "21252:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21263:4:51", + "nodeType": "YulTypedName", + "src": "21263:4:51", + "type": "" + } + ], + "src": "21164:209:51" + }, + { + "body": { + "nativeSrc": "21508:201:51", + "nodeType": "YulBlock", + "src": "21508:201:51", + "statements": [ + { + "body": { + "nativeSrc": "21546:16:51", + "nodeType": "YulBlock", + "src": "21546:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21555:1:51", + "nodeType": "YulLiteral", + "src": "21555:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21558:1:51", + "nodeType": "YulLiteral", + "src": "21558:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21548:6:51", + "nodeType": "YulIdentifier", + "src": "21548:6:51" + }, + "nativeSrc": "21548:12:51", + "nodeType": "YulFunctionCall", + "src": "21548:12:51" + }, + "nativeSrc": "21548:12:51", + "nodeType": "YulExpressionStatement", + "src": "21548:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "21524:10:51", + "nodeType": "YulIdentifier", + "src": "21524:10:51" + }, + { + "name": "endIndex", + "nativeSrc": "21536:8:51", + "nodeType": "YulIdentifier", + "src": "21536:8:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21521:2:51", + "nodeType": "YulIdentifier", + "src": "21521:2:51" + }, + "nativeSrc": "21521:24:51", + "nodeType": "YulFunctionCall", + "src": "21521:24:51" + }, + "nativeSrc": "21518:44:51", + "nodeType": "YulIf", + "src": "21518:44:51" + }, + { + "body": { + "nativeSrc": "21595:16:51", + "nodeType": "YulBlock", + "src": "21595:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21604:1:51", + "nodeType": "YulLiteral", + "src": "21604:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21607:1:51", + "nodeType": "YulLiteral", + "src": "21607:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21597:6:51", + "nodeType": "YulIdentifier", + "src": "21597:6:51" + }, + "nativeSrc": "21597:12:51", + "nodeType": "YulFunctionCall", + "src": "21597:12:51" + }, + "nativeSrc": "21597:12:51", + "nodeType": "YulExpressionStatement", + "src": "21597:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "21577:8:51", + "nodeType": "YulIdentifier", + "src": "21577:8:51" + }, + { + "name": "length", + "nativeSrc": "21587:6:51", + "nodeType": "YulIdentifier", + "src": "21587:6:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21574:2:51", + "nodeType": "YulIdentifier", + "src": "21574:2:51" + }, + "nativeSrc": "21574:20:51", + "nodeType": "YulFunctionCall", + "src": "21574:20:51" + }, + "nativeSrc": "21571:40:51", + "nodeType": "YulIf", + "src": "21571:40:51" + }, + { + "nativeSrc": "21620:36:51", + "nodeType": "YulAssignment", + "src": "21620:36:51", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "21637:6:51", + "nodeType": "YulIdentifier", + "src": "21637:6:51" + }, + { + "name": "startIndex", + "nativeSrc": "21645:10:51", + "nodeType": "YulIdentifier", + "src": "21645:10:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21633:3:51", + "nodeType": "YulIdentifier", + "src": "21633:3:51" + }, + "nativeSrc": "21633:23:51", + "nodeType": "YulFunctionCall", + "src": "21633:23:51" + }, + "variableNames": [ + { + "name": "offsetOut", + "nativeSrc": "21620:9:51", + "nodeType": "YulIdentifier", + "src": "21620:9:51" + } + ] + }, + { + "nativeSrc": "21665:38:51", + "nodeType": "YulAssignment", + "src": "21665:38:51", + "value": { + "arguments": [ + { + "name": "endIndex", + "nativeSrc": "21682:8:51", + "nodeType": "YulIdentifier", + "src": "21682:8:51" + }, + { + "name": "startIndex", + "nativeSrc": "21692:10:51", + "nodeType": "YulIdentifier", + "src": "21692:10:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21678:3:51", + "nodeType": "YulIdentifier", + "src": "21678:3:51" + }, + "nativeSrc": "21678:25:51", + "nodeType": "YulFunctionCall", + "src": "21678:25:51" + }, + "variableNames": [ + { + "name": "lengthOut", + "nativeSrc": "21665:9:51", + "nodeType": "YulIdentifier", + "src": "21665:9:51" + } + ] + } + ] + }, + "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", + "nativeSrc": "21378:331:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "21442:6:51", + "nodeType": "YulTypedName", + "src": "21442:6:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21450:6:51", + "nodeType": "YulTypedName", + "src": "21450:6:51", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "21458:10:51", + "nodeType": "YulTypedName", + "src": "21458:10:51", + "type": "" + }, + { + "name": "endIndex", + "nativeSrc": "21470:8:51", + "nodeType": "YulTypedName", + "src": "21470:8:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "offsetOut", + "nativeSrc": "21483:9:51", + "nodeType": "YulTypedName", + "src": "21483:9:51", + "type": "" + }, + { + "name": "lengthOut", + "nativeSrc": "21494:9:51", + "nodeType": "YulTypedName", + "src": "21494:9:51", + "type": "" + } + ], + "src": "21378:331:51" + }, + { + "body": { + "nativeSrc": "21814:223:51", + "nodeType": "YulBlock", + "src": "21814:223:51", + "statements": [ + { + "nativeSrc": "21824:29:51", + "nodeType": "YulVariableDeclaration", + "src": "21824:29:51", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "21847:5:51", + "nodeType": "YulIdentifier", + "src": "21847:5:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21834:12:51", + "nodeType": "YulIdentifier", + "src": "21834:12:51" + }, + "nativeSrc": "21834:19:51", + "nodeType": "YulFunctionCall", + "src": "21834:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "21828:2:51", + "nodeType": "YulTypedName", + "src": "21828:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "21862:30:51", + "nodeType": "YulVariableDeclaration", + "src": "21862:30:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21876:3:51", + "nodeType": "YulLiteral", + "src": "21876:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "21881:10:51", + "nodeType": "YulLiteral", + "src": "21881:10:51", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21872:3:51", + "nodeType": "YulIdentifier", + "src": "21872:3:51" + }, + "nativeSrc": "21872:20:51", + "nodeType": "YulFunctionCall", + "src": "21872:20:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "21866:2:51", + "nodeType": "YulTypedName", + "src": "21866:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "21901:20:51", + "nodeType": "YulAssignment", + "src": "21901:20:51", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "21914:2:51", + "nodeType": "YulIdentifier", + "src": "21914:2:51" + }, + { + "name": "_2", + "nativeSrc": "21918:2:51", + "nodeType": "YulIdentifier", + "src": "21918:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21910:3:51", + "nodeType": "YulIdentifier", + "src": "21910:3:51" + }, + "nativeSrc": "21910:11:51", + "nodeType": "YulFunctionCall", + "src": "21910:11:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "21901:5:51", + "nodeType": "YulIdentifier", + "src": "21901:5:51" + } + ] + }, + { + "body": { + "nativeSrc": "21952:79:51", + "nodeType": "YulBlock", + "src": "21952:79:51", + "statements": [ + { + "nativeSrc": "21966:55:51", + "nodeType": "YulAssignment", + "src": "21966:55:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "21983:2:51", + "nodeType": "YulIdentifier", + "src": "21983:2:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21995:1:51", + "nodeType": "YulLiteral", + "src": "21995:1:51", + "type": "", + "value": "3" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22002:1:51", + "nodeType": "YulLiteral", + "src": "22002:1:51", + "type": "", + "value": "4" + }, + { + "name": "len", + "nativeSrc": "22005:3:51", + "nodeType": "YulIdentifier", + "src": "22005:3:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21998:3:51", + "nodeType": "YulIdentifier", + "src": "21998:3:51" + }, + "nativeSrc": "21998:11:51", + "nodeType": "YulFunctionCall", + "src": "21998:11:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21991:3:51", + "nodeType": "YulIdentifier", + "src": "21991:3:51" + }, + "nativeSrc": "21991:19:51", + "nodeType": "YulFunctionCall", + "src": "21991:19:51" + }, + { + "name": "_2", + "nativeSrc": "22012:2:51", + "nodeType": "YulIdentifier", + "src": "22012:2:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21987:3:51", + "nodeType": "YulIdentifier", + "src": "21987:3:51" + }, + "nativeSrc": "21987:28:51", + "nodeType": "YulFunctionCall", + "src": "21987:28:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21979:3:51", + "nodeType": "YulIdentifier", + "src": "21979:3:51" + }, + "nativeSrc": "21979:37:51", + "nodeType": "YulFunctionCall", + "src": "21979:37:51" + }, + { + "name": "_2", + "nativeSrc": "22018:2:51", + "nodeType": "YulIdentifier", + "src": "22018:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21975:3:51", + "nodeType": "YulIdentifier", + "src": "21975:3:51" + }, + "nativeSrc": "21975:46:51", + "nodeType": "YulFunctionCall", + "src": "21975:46:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "21966:5:51", + "nodeType": "YulIdentifier", + "src": "21966:5:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "21936:3:51", + "nodeType": "YulIdentifier", + "src": "21936:3:51" + }, + { + "kind": "number", + "nativeSrc": "21941:1:51", + "nodeType": "YulLiteral", + "src": "21941:1:51", + "type": "", + "value": "4" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21933:2:51", + "nodeType": "YulIdentifier", + "src": "21933:2:51" + }, + "nativeSrc": "21933:10:51", + "nodeType": "YulFunctionCall", + "src": "21933:10:51" + }, + "nativeSrc": "21930:101:51", + "nodeType": "YulIf", + "src": "21930:101:51" + } + ] + }, + "name": "convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4", + "nativeSrc": "21714:323:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "21789:5:51", + "nodeType": "YulTypedName", + "src": "21789:5:51", + "type": "" + }, + { + "name": "len", + "nativeSrc": "21796:3:51", + "nodeType": "YulTypedName", + "src": "21796:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "21804:5:51", + "nodeType": "YulTypedName", + "src": "21804:5:51", + "type": "" + } + ], + "src": "21714:323:51" + }, + { + "body": { + "nativeSrc": "22169:256:51", + "nodeType": "YulBlock", + "src": "22169:256:51", + "statements": [ + { + "body": { + "nativeSrc": "22215:16:51", + "nodeType": "YulBlock", + "src": "22215:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22224:1:51", + "nodeType": "YulLiteral", + "src": "22224:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22227:1:51", + "nodeType": "YulLiteral", + "src": "22227:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22217:6:51", + "nodeType": "YulIdentifier", + "src": "22217:6:51" + }, + "nativeSrc": "22217:12:51", + "nodeType": "YulFunctionCall", + "src": "22217:12:51" + }, + "nativeSrc": "22217:12:51", + "nodeType": "YulExpressionStatement", + "src": "22217:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22190:7:51", + "nodeType": "YulIdentifier", + "src": "22190:7:51" + }, + { + "name": "headStart", + "nativeSrc": "22199:9:51", + "nodeType": "YulIdentifier", + "src": "22199:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22186:3:51", + "nodeType": "YulIdentifier", + "src": "22186:3:51" + }, + "nativeSrc": "22186:23:51", + "nodeType": "YulFunctionCall", + "src": "22186:23:51" + }, + { + "kind": "number", + "nativeSrc": "22211:2:51", + "nodeType": "YulLiteral", + "src": "22211:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22182:3:51", + "nodeType": "YulIdentifier", + "src": "22182:3:51" + }, + "nativeSrc": "22182:32:51", + "nodeType": "YulFunctionCall", + "src": "22182:32:51" + }, + "nativeSrc": "22179:52:51", + "nodeType": "YulIf", + "src": "22179:52:51" + }, + { + "nativeSrc": "22240:36:51", + "nodeType": "YulVariableDeclaration", + "src": "22240:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22266:9:51", + "nodeType": "YulIdentifier", + "src": "22266:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "22253:12:51", + "nodeType": "YulIdentifier", + "src": "22253:12:51" + }, + "nativeSrc": "22253:23:51", + "nodeType": "YulFunctionCall", + "src": "22253:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "22244:5:51", + "nodeType": "YulTypedName", + "src": "22244:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "22310:5:51", + "nodeType": "YulIdentifier", + "src": "22310:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "22285:24:51", + "nodeType": "YulIdentifier", + "src": "22285:24:51" + }, + "nativeSrc": "22285:31:51", + "nodeType": "YulFunctionCall", + "src": "22285:31:51" + }, + "nativeSrc": "22285:31:51", + "nodeType": "YulExpressionStatement", + "src": "22285:31:51" + }, + { + "nativeSrc": "22325:15:51", + "nodeType": "YulAssignment", + "src": "22325:15:51", + "value": { + "name": "value", + "nativeSrc": "22335:5:51", + "nodeType": "YulIdentifier", + "src": "22335:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "22325:6:51", + "nodeType": "YulIdentifier", + "src": "22325:6:51" + } + ] + }, + { + "nativeSrc": "22349:70:51", + "nodeType": "YulAssignment", + "src": "22349:70:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22395:9:51", + "nodeType": "YulIdentifier", + "src": "22395:9:51" + }, + { + "kind": "number", + "nativeSrc": "22406:2:51", + "nodeType": "YulLiteral", + "src": "22406:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22391:3:51", + "nodeType": "YulIdentifier", + "src": "22391:3:51" + }, + "nativeSrc": "22391:18:51", + "nodeType": "YulFunctionCall", + "src": "22391:18:51" + }, + { + "name": "dataEnd", + "nativeSrc": "22411:7:51", + "nodeType": "YulIdentifier", + "src": "22411:7:51" + } + ], + "functionName": { + "name": "abi_decode_struct_RentingParams", + "nativeSrc": "22359:31:51", + "nodeType": "YulIdentifier", + "src": "22359:31:51" + }, + "nativeSrc": "22359:60:51", + "nodeType": "YulFunctionCall", + "src": "22359:60:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "22349:6:51", + "nodeType": "YulIdentifier", + "src": "22349:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_struct$_RentingParams_$11666_memory_ptr", + "nativeSrc": "22042:383:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22127:9:51", + "nodeType": "YulTypedName", + "src": "22127:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22138:7:51", + "nodeType": "YulTypedName", + "src": "22138:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22150:6:51", + "nodeType": "YulTypedName", + "src": "22150:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22158:6:51", + "nodeType": "YulTypedName", + "src": "22158:6:51", + "type": "" + } + ], + "src": "22042:383:51" + }, + { + "body": { + "nativeSrc": "22549:424:51", + "nodeType": "YulBlock", + "src": "22549:424:51", + "statements": [ + { + "body": { + "nativeSrc": "22595:16:51", + "nodeType": "YulBlock", + "src": "22595:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22604:1:51", + "nodeType": "YulLiteral", + "src": "22604:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22607:1:51", + "nodeType": "YulLiteral", + "src": "22607:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22597:6:51", + "nodeType": "YulIdentifier", + "src": "22597:6:51" + }, + "nativeSrc": "22597:12:51", + "nodeType": "YulFunctionCall", + "src": "22597:12:51" + }, + "nativeSrc": "22597:12:51", + "nodeType": "YulExpressionStatement", + "src": "22597:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22570:7:51", + "nodeType": "YulIdentifier", + "src": "22570:7:51" + }, + { + "name": "headStart", + "nativeSrc": "22579:9:51", + "nodeType": "YulIdentifier", + "src": "22579:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22566:3:51", + "nodeType": "YulIdentifier", + "src": "22566:3:51" + }, + "nativeSrc": "22566:23:51", + "nodeType": "YulFunctionCall", + "src": "22566:23:51" + }, + { + "kind": "number", + "nativeSrc": "22591:2:51", + "nodeType": "YulLiteral", + "src": "22591:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22562:3:51", + "nodeType": "YulIdentifier", + "src": "22562:3:51" + }, + "nativeSrc": "22562:32:51", + "nodeType": "YulFunctionCall", + "src": "22562:32:51" + }, + "nativeSrc": "22559:52:51", + "nodeType": "YulIf", + "src": "22559:52:51" + }, + { + "nativeSrc": "22620:36:51", + "nodeType": "YulVariableDeclaration", + "src": "22620:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22646:9:51", + "nodeType": "YulIdentifier", + "src": "22646:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "22633:12:51", + "nodeType": "YulIdentifier", + "src": "22633:12:51" + }, + "nativeSrc": "22633:23:51", + "nodeType": "YulFunctionCall", + "src": "22633:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "22624:5:51", + "nodeType": "YulTypedName", + "src": "22624:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "22690:5:51", + "nodeType": "YulIdentifier", + "src": "22690:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "22665:24:51", + "nodeType": "YulIdentifier", + "src": "22665:24:51" + }, + "nativeSrc": "22665:31:51", + "nodeType": "YulFunctionCall", + "src": "22665:31:51" + }, + "nativeSrc": "22665:31:51", + "nodeType": "YulExpressionStatement", + "src": "22665:31:51" + }, + { + "nativeSrc": "22705:15:51", + "nodeType": "YulAssignment", + "src": "22705:15:51", + "value": { + "name": "value", + "nativeSrc": "22715:5:51", + "nodeType": "YulIdentifier", + "src": "22715:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "22705:6:51", + "nodeType": "YulIdentifier", + "src": "22705:6:51" + } + ] + }, + { + "nativeSrc": "22729:47:51", + "nodeType": "YulVariableDeclaration", + "src": "22729:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22761:9:51", + "nodeType": "YulIdentifier", + "src": "22761:9:51" + }, + { + "kind": "number", + "nativeSrc": "22772:2:51", + "nodeType": "YulLiteral", + "src": "22772:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22757:3:51", + "nodeType": "YulIdentifier", + "src": "22757:3:51" + }, + "nativeSrc": "22757:18:51", + "nodeType": "YulFunctionCall", + "src": "22757:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "22744:12:51", + "nodeType": "YulIdentifier", + "src": "22744:12:51" + }, + "nativeSrc": "22744:32:51", + "nodeType": "YulFunctionCall", + "src": "22744:32:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "22733:7:51", + "nodeType": "YulTypedName", + "src": "22733:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "22810:7:51", + "nodeType": "YulIdentifier", + "src": "22810:7:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "22785:24:51", + "nodeType": "YulIdentifier", + "src": "22785:24:51" + }, + "nativeSrc": "22785:33:51", + "nodeType": "YulFunctionCall", + "src": "22785:33:51" + }, + "nativeSrc": "22785:33:51", + "nodeType": "YulExpressionStatement", + "src": "22785:33:51" + }, + { + "nativeSrc": "22827:17:51", + "nodeType": "YulAssignment", + "src": "22827:17:51", + "value": { + "name": "value_1", + "nativeSrc": "22837:7:51", + "nodeType": "YulIdentifier", + "src": "22837:7:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "22827:6:51", + "nodeType": "YulIdentifier", + "src": "22827:6:51" + } + ] + }, + { + "nativeSrc": "22853:47:51", + "nodeType": "YulVariableDeclaration", + "src": "22853:47:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22885:9:51", + "nodeType": "YulIdentifier", + "src": "22885:9:51" + }, + { + "kind": "number", + "nativeSrc": "22896:2:51", + "nodeType": "YulLiteral", + "src": "22896:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22881:3:51", + "nodeType": "YulIdentifier", + "src": "22881:3:51" + }, + "nativeSrc": "22881:18:51", + "nodeType": "YulFunctionCall", + "src": "22881:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "22868:12:51", + "nodeType": "YulIdentifier", + "src": "22868:12:51" + }, + "nativeSrc": "22868:32:51", + "nodeType": "YulFunctionCall", + "src": "22868:32:51" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "22857:7:51", + "nodeType": "YulTypedName", + "src": "22857:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "22933:7:51", + "nodeType": "YulIdentifier", + "src": "22933:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint72", + "nativeSrc": "22909:23:51", + "nodeType": "YulIdentifier", + "src": "22909:23:51" + }, + "nativeSrc": "22909:32:51", + "nodeType": "YulFunctionCall", + "src": "22909:32:51" + }, + "nativeSrc": "22909:32:51", + "nodeType": "YulExpressionStatement", + "src": "22909:32:51" + }, + { + "nativeSrc": "22950:17:51", + "nodeType": "YulAssignment", + "src": "22950:17:51", + "value": { + "name": "value_2", + "nativeSrc": "22960:7:51", + "nodeType": "YulIdentifier", + "src": "22960:7:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "22950:6:51", + "nodeType": "YulIdentifier", + "src": "22950:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_payablet_address_payablet_uint72", + "nativeSrc": "22430:543:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22499:9:51", + "nodeType": "YulTypedName", + "src": "22499:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22510:7:51", + "nodeType": "YulTypedName", + "src": "22510:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22522:6:51", + "nodeType": "YulTypedName", + "src": "22522:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22530:6:51", + "nodeType": "YulTypedName", + "src": "22530:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "22538:6:51", + "nodeType": "YulTypedName", + "src": "22538:6:51", + "type": "" + } + ], + "src": "22430:543:51" + }, + { + "body": { + "nativeSrc": "23027:79:51", + "nodeType": "YulBlock", + "src": "23027:79:51", + "statements": [ + { + "nativeSrc": "23037:17:51", + "nodeType": "YulAssignment", + "src": "23037:17:51", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "23049:1:51", + "nodeType": "YulIdentifier", + "src": "23049:1:51" + }, + { + "name": "y", + "nativeSrc": "23052:1:51", + "nodeType": "YulIdentifier", + "src": "23052:1:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23045:3:51", + "nodeType": "YulIdentifier", + "src": "23045:3:51" + }, + "nativeSrc": "23045:9:51", + "nodeType": "YulFunctionCall", + "src": "23045:9:51" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "23037:4:51", + "nodeType": "YulIdentifier", + "src": "23037:4:51" + } + ] + }, + { + "body": { + "nativeSrc": "23078:22:51", + "nodeType": "YulBlock", + "src": "23078:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "23080:16:51", + "nodeType": "YulIdentifier", + "src": "23080:16:51" + }, + "nativeSrc": "23080:18:51", + "nodeType": "YulFunctionCall", + "src": "23080:18:51" + }, + "nativeSrc": "23080:18:51", + "nodeType": "YulExpressionStatement", + "src": "23080:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "23069:4:51", + "nodeType": "YulIdentifier", + "src": "23069:4:51" + }, + { + "name": "x", + "nativeSrc": "23075:1:51", + "nodeType": "YulIdentifier", + "src": "23075:1:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "23066:2:51", + "nodeType": "YulIdentifier", + "src": "23066:2:51" + }, + "nativeSrc": "23066:11:51", + "nodeType": "YulFunctionCall", + "src": "23066:11:51" + }, + "nativeSrc": "23063:37:51", + "nodeType": "YulIf", + "src": "23063:37:51" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "22978:128:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "23009:1:51", + "nodeType": "YulTypedName", + "src": "23009:1:51", + "type": "" + }, + { + "name": "y", + "nativeSrc": "23012:1:51", + "nodeType": "YulTypedName", + "src": "23012:1:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "23018:4:51", + "nodeType": "YulTypedName", + "src": "23018:4:51", + "type": "" + } + ], + "src": "22978:128:51" + }, + { + "body": { + "nativeSrc": "23143:95:51", + "nodeType": "YulBlock", + "src": "23143:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23160:1:51", + "nodeType": "YulLiteral", + "src": "23160:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23167:3:51", + "nodeType": "YulLiteral", + "src": "23167:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "23172:10:51", + "nodeType": "YulLiteral", + "src": "23172:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "23163:3:51", + "nodeType": "YulIdentifier", + "src": "23163:3:51" + }, + "nativeSrc": "23163:20:51", + "nodeType": "YulFunctionCall", + "src": "23163:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23153:6:51", + "nodeType": "YulIdentifier", + "src": "23153:6:51" + }, + "nativeSrc": "23153:31:51", + "nodeType": "YulFunctionCall", + "src": "23153:31:51" + }, + "nativeSrc": "23153:31:51", + "nodeType": "YulExpressionStatement", + "src": "23153:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23200:1:51", + "nodeType": "YulLiteral", + "src": "23200:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "23203:4:51", + "nodeType": "YulLiteral", + "src": "23203:4:51", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23193:6:51", + "nodeType": "YulIdentifier", + "src": "23193:6:51" + }, + "nativeSrc": "23193:15:51", + "nodeType": "YulFunctionCall", + "src": "23193:15:51" + }, + "nativeSrc": "23193:15:51", + "nodeType": "YulExpressionStatement", + "src": "23193:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23224:1:51", + "nodeType": "YulLiteral", + "src": "23224:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23227:4:51", + "nodeType": "YulLiteral", + "src": "23227:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23217:6:51", + "nodeType": "YulIdentifier", + "src": "23217:6:51" + }, + "nativeSrc": "23217:15:51", + "nodeType": "YulFunctionCall", + "src": "23217:15:51" + }, + "nativeSrc": "23217:15:51", + "nodeType": "YulExpressionStatement", + "src": "23217:15:51" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "23111:127:51", + "nodeType": "YulFunctionDefinition", + "src": "23111:127:51" + }, + { + "body": { + "nativeSrc": "23337:427:51", + "nodeType": "YulBlock", + "src": "23337:427:51", + "statements": [ + { + "nativeSrc": "23347:51:51", + "nodeType": "YulVariableDeclaration", + "src": "23347:51:51", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "23386:11:51", + "nodeType": "YulIdentifier", + "src": "23386:11:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "23373:12:51", + "nodeType": "YulIdentifier", + "src": "23373:12:51" + }, + "nativeSrc": "23373:25:51", + "nodeType": "YulFunctionCall", + "src": "23373:25:51" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "23351:18:51", + "nodeType": "YulTypedName", + "src": "23351:18:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "23487:16:51", + "nodeType": "YulBlock", + "src": "23487:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23496:1:51", + "nodeType": "YulLiteral", + "src": "23496:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23499:1:51", + "nodeType": "YulLiteral", + "src": "23499:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23489:6:51", + "nodeType": "YulIdentifier", + "src": "23489:6:51" + }, + "nativeSrc": "23489:12:51", + "nodeType": "YulFunctionCall", + "src": "23489:12:51" + }, + "nativeSrc": "23489:12:51", + "nodeType": "YulExpressionStatement", + "src": "23489:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "23421:18:51", + "nodeType": "YulIdentifier", + "src": "23421:18:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "23449:12:51", + "nodeType": "YulIdentifier", + "src": "23449:12:51" + }, + "nativeSrc": "23449:14:51", + "nodeType": "YulFunctionCall", + "src": "23449:14:51" + }, + { + "name": "base_ref", + "nativeSrc": "23465:8:51", + "nodeType": "YulIdentifier", + "src": "23465:8:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23445:3:51", + "nodeType": "YulIdentifier", + "src": "23445:3:51" + }, + "nativeSrc": "23445:29:51", + "nodeType": "YulFunctionCall", + "src": "23445:29:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23480:2:51", + "nodeType": "YulLiteral", + "src": "23480:2:51", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "23476:3:51", + "nodeType": "YulIdentifier", + "src": "23476:3:51" + }, + "nativeSrc": "23476:7:51", + "nodeType": "YulFunctionCall", + "src": "23476:7:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23441:3:51", + "nodeType": "YulIdentifier", + "src": "23441:3:51" + }, + "nativeSrc": "23441:43:51", + "nodeType": "YulFunctionCall", + "src": "23441:43:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "23417:3:51", + "nodeType": "YulIdentifier", + "src": "23417:3:51" + }, + "nativeSrc": "23417:68:51", + "nodeType": "YulFunctionCall", + "src": "23417:68:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "23410:6:51", + "nodeType": "YulIdentifier", + "src": "23410:6:51" + }, + "nativeSrc": "23410:76:51", + "nodeType": "YulFunctionCall", + "src": "23410:76:51" + }, + "nativeSrc": "23407:96:51", + "nodeType": "YulIf", + "src": "23407:96:51" + }, + { + "nativeSrc": "23512:47:51", + "nodeType": "YulVariableDeclaration", + "src": "23512:47:51", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "23530:8:51", + "nodeType": "YulIdentifier", + "src": "23530:8:51" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "23540:18:51", + "nodeType": "YulIdentifier", + "src": "23540:18:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23526:3:51", + "nodeType": "YulIdentifier", + "src": "23526:3:51" + }, + "nativeSrc": "23526:33:51", + "nodeType": "YulFunctionCall", + "src": "23526:33:51" + }, + "variables": [ + { + "name": "addr_1", + "nativeSrc": "23516:6:51", + "nodeType": "YulTypedName", + "src": "23516:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "23568:30:51", + "nodeType": "YulAssignment", + "src": "23568:30:51", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "23591:6:51", + "nodeType": "YulIdentifier", + "src": "23591:6:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "23578:12:51", + "nodeType": "YulIdentifier", + "src": "23578:12:51" + }, + "nativeSrc": "23578:20:51", + "nodeType": "YulFunctionCall", + "src": "23578:20:51" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "23568:6:51", + "nodeType": "YulIdentifier", + "src": "23568:6:51" + } + ] + }, + { + "body": { + "nativeSrc": "23641:16:51", + "nodeType": "YulBlock", + "src": "23641:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23650:1:51", + "nodeType": "YulLiteral", + "src": "23650:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23653:1:51", + "nodeType": "YulLiteral", + "src": "23653:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23643:6:51", + "nodeType": "YulIdentifier", + "src": "23643:6:51" + }, + "nativeSrc": "23643:12:51", + "nodeType": "YulFunctionCall", + "src": "23643:12:51" + }, + "nativeSrc": "23643:12:51", + "nodeType": "YulExpressionStatement", + "src": "23643:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "23613:6:51", + "nodeType": "YulIdentifier", + "src": "23613:6:51" + }, + { + "kind": "number", + "nativeSrc": "23621:18:51", + "nodeType": "YulLiteral", + "src": "23621:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "23610:2:51", + "nodeType": "YulIdentifier", + "src": "23610:2:51" + }, + "nativeSrc": "23610:30:51", + "nodeType": "YulFunctionCall", + "src": "23610:30:51" + }, + "nativeSrc": "23607:50:51", + "nodeType": "YulIf", + "src": "23607:50:51" + }, + { + "nativeSrc": "23666:25:51", + "nodeType": "YulAssignment", + "src": "23666:25:51", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "23678:6:51", + "nodeType": "YulIdentifier", + "src": "23678:6:51" + }, + { + "kind": "number", + "nativeSrc": "23686:4:51", + "nodeType": "YulLiteral", + "src": "23686:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23674:3:51", + "nodeType": "YulIdentifier", + "src": "23674:3:51" + }, + "nativeSrc": "23674:17:51", + "nodeType": "YulFunctionCall", + "src": "23674:17:51" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "23666:4:51", + "nodeType": "YulIdentifier", + "src": "23666:4:51" + } + ] + }, + { + "body": { + "nativeSrc": "23742:16:51", + "nodeType": "YulBlock", + "src": "23742:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23751:1:51", + "nodeType": "YulLiteral", + "src": "23751:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23754:1:51", + "nodeType": "YulLiteral", + "src": "23754:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23744:6:51", + "nodeType": "YulIdentifier", + "src": "23744:6:51" + }, + "nativeSrc": "23744:12:51", + "nodeType": "YulFunctionCall", + "src": "23744:12:51" + }, + "nativeSrc": "23744:12:51", + "nodeType": "YulExpressionStatement", + "src": "23744:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "23707:4:51", + "nodeType": "YulIdentifier", + "src": "23707:4:51" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "23717:12:51", + "nodeType": "YulIdentifier", + "src": "23717:12:51" + }, + "nativeSrc": "23717:14:51", + "nodeType": "YulFunctionCall", + "src": "23717:14:51" + }, + { + "name": "length", + "nativeSrc": "23733:6:51", + "nodeType": "YulIdentifier", + "src": "23733:6:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23713:3:51", + "nodeType": "YulIdentifier", + "src": "23713:3:51" + }, + "nativeSrc": "23713:27:51", + "nodeType": "YulFunctionCall", + "src": "23713:27:51" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "23703:3:51", + "nodeType": "YulIdentifier", + "src": "23703:3:51" + }, + "nativeSrc": "23703:38:51", + "nodeType": "YulFunctionCall", + "src": "23703:38:51" + }, + "nativeSrc": "23700:58:51", + "nodeType": "YulIf", + "src": "23700:58:51" + } + ] + }, + "name": "access_calldata_tail_t_bytes_calldata_ptr", + "nativeSrc": "23243:521:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "23294:8:51", + "nodeType": "YulTypedName", + "src": "23294:8:51", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "23304:11:51", + "nodeType": "YulTypedName", + "src": "23304:11:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "23320:4:51", + "nodeType": "YulTypedName", + "src": "23320:4:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "23326:6:51", + "nodeType": "YulTypedName", + "src": "23326:6:51", + "type": "" + } + ], + "src": "23243:521:51" + }, + { + "body": { + "nativeSrc": "23962:247:51", + "nodeType": "YulBlock", + "src": "23962:247:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23985:3:51", + "nodeType": "YulIdentifier", + "src": "23985:3:51" + }, + { + "name": "value0", + "nativeSrc": "23990:6:51", + "nodeType": "YulIdentifier", + "src": "23990:6:51" + }, + { + "name": "value1", + "nativeSrc": "23998:6:51", + "nodeType": "YulIdentifier", + "src": "23998:6:51" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "23972:12:51", + "nodeType": "YulIdentifier", + "src": "23972:12:51" + }, + "nativeSrc": "23972:33:51", + "nodeType": "YulFunctionCall", + "src": "23972:33:51" + }, + "nativeSrc": "23972:33:51", + "nodeType": "YulExpressionStatement", + "src": "23972:33:51" + }, + { + "nativeSrc": "24014:26:51", + "nodeType": "YulVariableDeclaration", + "src": "24014:26:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24028:3:51", + "nodeType": "YulIdentifier", + "src": "24028:3:51" + }, + { + "name": "value1", + "nativeSrc": "24033:6:51", + "nodeType": "YulIdentifier", + "src": "24033:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24024:3:51", + "nodeType": "YulIdentifier", + "src": "24024:3:51" + }, + "nativeSrc": "24024:16:51", + "nodeType": "YulFunctionCall", + "src": "24024:16:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "24018:2:51", + "nodeType": "YulTypedName", + "src": "24018:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "24056:2:51", + "nodeType": "YulIdentifier", + "src": "24056:2:51" + }, + { + "kind": "number", + "nativeSrc": "24060:1:51", + "nodeType": "YulLiteral", + "src": "24060:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24049:6:51", + "nodeType": "YulIdentifier", + "src": "24049:6:51" + }, + "nativeSrc": "24049:13:51", + "nodeType": "YulFunctionCall", + "src": "24049:13:51" + }, + "nativeSrc": "24049:13:51", + "nodeType": "YulExpressionStatement", + "src": "24049:13:51" + }, + { + "nativeSrc": "24071:27:51", + "nodeType": "YulVariableDeclaration", + "src": "24071:27:51", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "24091:6:51", + "nodeType": "YulIdentifier", + "src": "24091:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24085:5:51", + "nodeType": "YulIdentifier", + "src": "24085:5:51" + }, + "nativeSrc": "24085:13:51", + "nodeType": "YulFunctionCall", + "src": "24085:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "24075:6:51", + "nodeType": "YulTypedName", + "src": "24075:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "24146:6:51", + "nodeType": "YulIdentifier", + "src": "24146:6:51" + }, + { + "kind": "number", + "nativeSrc": "24154:4:51", + "nodeType": "YulLiteral", + "src": "24154:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24142:3:51", + "nodeType": "YulIdentifier", + "src": "24142:3:51" + }, + "nativeSrc": "24142:17:51", + "nodeType": "YulFunctionCall", + "src": "24142:17:51" + }, + { + "name": "_1", + "nativeSrc": "24161:2:51", + "nodeType": "YulIdentifier", + "src": "24161:2:51" + }, + { + "name": "length", + "nativeSrc": "24165:6:51", + "nodeType": "YulIdentifier", + "src": "24165:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "24107:34:51", + "nodeType": "YulIdentifier", + "src": "24107:34:51" + }, + "nativeSrc": "24107:65:51", + "nodeType": "YulFunctionCall", + "src": "24107:65:51" + }, + "nativeSrc": "24107:65:51", + "nodeType": "YulExpressionStatement", + "src": "24107:65:51" + }, + { + "nativeSrc": "24181:22:51", + "nodeType": "YulAssignment", + "src": "24181:22:51", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "24192:2:51", + "nodeType": "YulIdentifier", + "src": "24192:2:51" + }, + { + "name": "length", + "nativeSrc": "24196:6:51", + "nodeType": "YulIdentifier", + "src": "24196:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24188:3:51", + "nodeType": "YulIdentifier", + "src": "24188:3:51" + }, + "nativeSrc": "24188:15:51", + "nodeType": "YulFunctionCall", + "src": "24188:15:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24181:3:51", + "nodeType": "YulIdentifier", + "src": "24181:3:51" + } + ] + } + ] + }, + "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": "23769:440:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23922:3:51", + "nodeType": "YulTypedName", + "src": "23922:3:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "23927:6:51", + "nodeType": "YulTypedName", + "src": "23927:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23935:6:51", + "nodeType": "YulTypedName", + "src": "23935:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23943:6:51", + "nodeType": "YulTypedName", + "src": "23943:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23954:3:51", + "nodeType": "YulTypedName", + "src": "23954:3:51", + "type": "" + } + ], + "src": "23769:440:51" + }, + { + "body": { + "nativeSrc": "24401:309:51", + "nodeType": "YulBlock", + "src": "24401:309:51", + "statements": [ + { + "nativeSrc": "24411:27:51", + "nodeType": "YulVariableDeclaration", + "src": "24411:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24431:6:51", + "nodeType": "YulIdentifier", + "src": "24431:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24425:5:51", + "nodeType": "YulIdentifier", + "src": "24425:5:51" + }, + "nativeSrc": "24425:13:51", + "nodeType": "YulFunctionCall", + "src": "24425:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "24415:6:51", + "nodeType": "YulTypedName", + "src": "24415:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24486:6:51", + "nodeType": "YulIdentifier", + "src": "24486:6:51" + }, + { + "kind": "number", + "nativeSrc": "24494:4:51", + "nodeType": "YulLiteral", + "src": "24494:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24482:3:51", + "nodeType": "YulIdentifier", + "src": "24482:3:51" + }, + "nativeSrc": "24482:17:51", + "nodeType": "YulFunctionCall", + "src": "24482:17:51" + }, + { + "name": "pos", + "nativeSrc": "24501:3:51", + "nodeType": "YulIdentifier", + "src": "24501:3:51" + }, + { + "name": "length", + "nativeSrc": "24506:6:51", + "nodeType": "YulIdentifier", + "src": "24506:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "24447:34:51", + "nodeType": "YulIdentifier", + "src": "24447:34:51" + }, + "nativeSrc": "24447:66:51", + "nodeType": "YulFunctionCall", + "src": "24447:66:51" + }, + "nativeSrc": "24447:66:51", + "nodeType": "YulExpressionStatement", + "src": "24447:66:51" + }, + { + "nativeSrc": "24522:29:51", + "nodeType": "YulVariableDeclaration", + "src": "24522:29:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24539:3:51", + "nodeType": "YulIdentifier", + "src": "24539:3:51" + }, + { + "name": "length", + "nativeSrc": "24544:6:51", + "nodeType": "YulIdentifier", + "src": "24544:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24535:3:51", + "nodeType": "YulIdentifier", + "src": "24535:3:51" + }, + "nativeSrc": "24535:16:51", + "nodeType": "YulFunctionCall", + "src": "24535:16:51" + }, + "variables": [ + { + "name": "end_1", + "nativeSrc": "24526:5:51", + "nodeType": "YulTypedName", + "src": "24526:5:51", + "type": "" + } + ] + }, + { + "nativeSrc": "24560:29:51", + "nodeType": "YulVariableDeclaration", + "src": "24560:29:51", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "24582:6:51", + "nodeType": "YulIdentifier", + "src": "24582:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24576:5:51", + "nodeType": "YulIdentifier", + "src": "24576:5:51" + }, + "nativeSrc": "24576:13:51", + "nodeType": "YulFunctionCall", + "src": "24576:13:51" + }, + "variables": [ + { + "name": "length_1", + "nativeSrc": "24564:8:51", + "nodeType": "YulTypedName", + "src": "24564:8:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "24637:6:51", + "nodeType": "YulIdentifier", + "src": "24637:6:51" + }, + { + "kind": "number", + "nativeSrc": "24645:4:51", + "nodeType": "YulLiteral", + "src": "24645:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24633:3:51", + "nodeType": "YulIdentifier", + "src": "24633:3:51" + }, + "nativeSrc": "24633:17:51", + "nodeType": "YulFunctionCall", + "src": "24633:17:51" + }, + { + "name": "end_1", + "nativeSrc": "24652:5:51", + "nodeType": "YulIdentifier", + "src": "24652:5:51" + }, + { + "name": "length_1", + "nativeSrc": "24659:8:51", + "nodeType": "YulIdentifier", + "src": "24659:8:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "24598:34:51", + "nodeType": "YulIdentifier", + "src": "24598:34:51" + }, + "nativeSrc": "24598:70:51", + "nodeType": "YulFunctionCall", + "src": "24598:70:51" + }, + "nativeSrc": "24598:70:51", + "nodeType": "YulExpressionStatement", + "src": "24598:70:51" + }, + { + "nativeSrc": "24677:27:51", + "nodeType": "YulAssignment", + "src": "24677:27:51", + "value": { + "arguments": [ + { + "name": "end_1", + "nativeSrc": "24688:5:51", + "nodeType": "YulIdentifier", + "src": "24688:5:51" + }, + { + "name": "length_1", + "nativeSrc": "24695:8:51", + "nodeType": "YulIdentifier", + "src": "24695:8:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24684:3:51", + "nodeType": "YulIdentifier", + "src": "24684:3:51" + }, + "nativeSrc": "24684:20:51", + "nodeType": "YulFunctionCall", + "src": "24684:20:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "24677:3:51", + "nodeType": "YulIdentifier", + "src": "24677:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "24214:496:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "24369:3:51", + "nodeType": "YulTypedName", + "src": "24369:3:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24374:6:51", + "nodeType": "YulTypedName", + "src": "24374:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24382:6:51", + "nodeType": "YulTypedName", + "src": "24382:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "24393:3:51", + "nodeType": "YulTypedName", + "src": "24393:3:51", + "type": "" + } + ], + "src": "24214:496:51" + }, + { + "body": { + "nativeSrc": "24908:262:51", + "nodeType": "YulBlock", + "src": "24908:262:51", + "statements": [ + { + "nativeSrc": "24918:27:51", + "nodeType": "YulAssignment", + "src": "24918:27:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24930:9:51", + "nodeType": "YulIdentifier", + "src": "24930:9:51" + }, + { + "kind": "number", + "nativeSrc": "24941:3:51", + "nodeType": "YulLiteral", + "src": "24941:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24926:3:51", + "nodeType": "YulIdentifier", + "src": "24926:3:51" + }, + "nativeSrc": "24926:19:51", + "nodeType": "YulFunctionCall", + "src": "24926:19:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24918:4:51", + "nodeType": "YulIdentifier", + "src": "24918:4:51" + } + ] + }, + { + "nativeSrc": "24954:29:51", + "nodeType": "YulVariableDeclaration", + "src": "24954:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24972:3:51", + "nodeType": "YulLiteral", + "src": "24972:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "24977:1:51", + "nodeType": "YulLiteral", + "src": "24977:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "24968:3:51", + "nodeType": "YulIdentifier", + "src": "24968:3:51" + }, + "nativeSrc": "24968:11:51", + "nodeType": "YulFunctionCall", + "src": "24968:11:51" + }, + { + "kind": "number", + "nativeSrc": "24981:1:51", + "nodeType": "YulLiteral", + "src": "24981:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24964:3:51", + "nodeType": "YulIdentifier", + "src": "24964:3:51" + }, + "nativeSrc": "24964:19:51", + "nodeType": "YulFunctionCall", + "src": "24964:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "24958:2:51", + "nodeType": "YulTypedName", + "src": "24958:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24999:9:51", + "nodeType": "YulIdentifier", + "src": "24999:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "25014:6:51", + "nodeType": "YulIdentifier", + "src": "25014:6:51" + }, + { + "name": "_1", + "nativeSrc": "25022:2:51", + "nodeType": "YulIdentifier", + "src": "25022:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25010:3:51", + "nodeType": "YulIdentifier", + "src": "25010:3:51" + }, + "nativeSrc": "25010:15:51", + "nodeType": "YulFunctionCall", + "src": "25010:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24992:6:51", + "nodeType": "YulIdentifier", + "src": "24992:6:51" + }, + "nativeSrc": "24992:34:51", + "nodeType": "YulFunctionCall", + "src": "24992:34:51" + }, + "nativeSrc": "24992:34:51", + "nodeType": "YulExpressionStatement", + "src": "24992:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25046:9:51", + "nodeType": "YulIdentifier", + "src": "25046:9:51" + }, + { + "kind": "number", + "nativeSrc": "25057:2:51", + "nodeType": "YulLiteral", + "src": "25057:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25042:3:51", + "nodeType": "YulIdentifier", + "src": "25042:3:51" + }, + "nativeSrc": "25042:18:51", + "nodeType": "YulFunctionCall", + "src": "25042:18:51" + }, + { + "name": "value1", + "nativeSrc": "25062:6:51", + "nodeType": "YulIdentifier", + "src": "25062:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25035:6:51", + "nodeType": "YulIdentifier", + "src": "25035:6:51" + }, + "nativeSrc": "25035:34:51", + "nodeType": "YulFunctionCall", + "src": "25035:34:51" + }, + "nativeSrc": "25035:34:51", + "nodeType": "YulExpressionStatement", + "src": "25035:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25089:9:51", + "nodeType": "YulIdentifier", + "src": "25089:9:51" + }, + { + "kind": "number", + "nativeSrc": "25100:2:51", + "nodeType": "YulLiteral", + "src": "25100:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25085:3:51", + "nodeType": "YulIdentifier", + "src": "25085:3:51" + }, + "nativeSrc": "25085:18:51", + "nodeType": "YulFunctionCall", + "src": "25085:18:51" + }, + { + "name": "value2", + "nativeSrc": "25105:6:51", + "nodeType": "YulIdentifier", + "src": "25105:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25078:6:51", + "nodeType": "YulIdentifier", + "src": "25078:6:51" + }, + "nativeSrc": "25078:34:51", + "nodeType": "YulFunctionCall", + "src": "25078:34:51" + }, + "nativeSrc": "25078:34:51", + "nodeType": "YulExpressionStatement", + "src": "25078:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25132:9:51", + "nodeType": "YulIdentifier", + "src": "25132:9:51" + }, + { + "kind": "number", + "nativeSrc": "25143:2:51", + "nodeType": "YulLiteral", + "src": "25143:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25128:3:51", + "nodeType": "YulIdentifier", + "src": "25128:3:51" + }, + "nativeSrc": "25128:18:51", + "nodeType": "YulFunctionCall", + "src": "25128:18:51" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "25152:6:51", + "nodeType": "YulIdentifier", + "src": "25152:6:51" + }, + { + "name": "_1", + "nativeSrc": "25160:2:51", + "nodeType": "YulIdentifier", + "src": "25160:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25148:3:51", + "nodeType": "YulIdentifier", + "src": "25148:3:51" + }, + "nativeSrc": "25148:15:51", + "nodeType": "YulFunctionCall", + "src": "25148:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25121:6:51", + "nodeType": "YulIdentifier", + "src": "25121:6:51" + }, + "nativeSrc": "25121:43:51", + "nodeType": "YulFunctionCall", + "src": "25121:43:51" + }, + "nativeSrc": "25121:43:51", + "nodeType": "YulExpressionStatement", + "src": "25121:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_rational_0_by_1_t_uint256_t_address__to_t_address_t_uint256_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "24715:455:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24853:9:51", + "nodeType": "YulTypedName", + "src": "24853:9:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "24864:6:51", + "nodeType": "YulTypedName", + "src": "24864:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "24872:6:51", + "nodeType": "YulTypedName", + "src": "24872:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24880:6:51", + "nodeType": "YulTypedName", + "src": "24880:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24888:6:51", + "nodeType": "YulTypedName", + "src": "24888:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24899:4:51", + "nodeType": "YulTypedName", + "src": "24899:4:51", + "type": "" + } + ], + "src": "24715:455:51" + }, + { + "body": { + "nativeSrc": "25234:824:51", + "nodeType": "YulBlock", + "src": "25234:824:51", + "statements": [ + { + "nativeSrc": "25244:16:51", + "nodeType": "YulVariableDeclaration", + "src": "25244:16:51", + "value": { + "kind": "number", + "nativeSrc": "25254:6:51", + "nodeType": "YulLiteral", + "src": "25254:6:51", + "type": "", + "value": "0x0120" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "25248:2:51", + "nodeType": "YulTypedName", + "src": "25248:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25276:3:51", + "nodeType": "YulIdentifier", + "src": "25276:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25291:5:51", + "nodeType": "YulIdentifier", + "src": "25291:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25285:5:51", + "nodeType": "YulIdentifier", + "src": "25285:5:51" + }, + "nativeSrc": "25285:12:51", + "nodeType": "YulFunctionCall", + "src": "25285:12:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25307:3:51", + "nodeType": "YulLiteral", + "src": "25307:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "25312:1:51", + "nodeType": "YulLiteral", + "src": "25312:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "25303:3:51", + "nodeType": "YulIdentifier", + "src": "25303:3:51" + }, + "nativeSrc": "25303:11:51", + "nodeType": "YulFunctionCall", + "src": "25303:11:51" + }, + { + "kind": "number", + "nativeSrc": "25316:1:51", + "nodeType": "YulLiteral", + "src": "25316:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25299:3:51", + "nodeType": "YulIdentifier", + "src": "25299:3:51" + }, + "nativeSrc": "25299:19:51", + "nodeType": "YulFunctionCall", + "src": "25299:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25281:3:51", + "nodeType": "YulIdentifier", + "src": "25281:3:51" + }, + "nativeSrc": "25281:38:51", + "nodeType": "YulFunctionCall", + "src": "25281:38:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25269:6:51", + "nodeType": "YulIdentifier", + "src": "25269:6:51" + }, + "nativeSrc": "25269:51:51", + "nodeType": "YulFunctionCall", + "src": "25269:51:51" + }, + "nativeSrc": "25269:51:51", + "nodeType": "YulExpressionStatement", + "src": "25269:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25340:3:51", + "nodeType": "YulIdentifier", + "src": "25340:3:51" + }, + { + "kind": "number", + "nativeSrc": "25345:4:51", + "nodeType": "YulLiteral", + "src": "25345:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25336:3:51", + "nodeType": "YulIdentifier", + "src": "25336:3:51" + }, + "nativeSrc": "25336:14:51", + "nodeType": "YulFunctionCall", + "src": "25336:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25362:5:51", + "nodeType": "YulIdentifier", + "src": "25362:5:51" + }, + { + "kind": "number", + "nativeSrc": "25369:4:51", + "nodeType": "YulLiteral", + "src": "25369:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25358:3:51", + "nodeType": "YulIdentifier", + "src": "25358:3:51" + }, + "nativeSrc": "25358:16:51", + "nodeType": "YulFunctionCall", + "src": "25358:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25352:5:51", + "nodeType": "YulIdentifier", + "src": "25352:5:51" + }, + "nativeSrc": "25352:23:51", + "nodeType": "YulFunctionCall", + "src": "25352:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25329:6:51", + "nodeType": "YulIdentifier", + "src": "25329:6:51" + }, + "nativeSrc": "25329:47:51", + "nodeType": "YulFunctionCall", + "src": "25329:47:51" + }, + "nativeSrc": "25329:47:51", + "nodeType": "YulExpressionStatement", + "src": "25329:47:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25396:3:51", + "nodeType": "YulIdentifier", + "src": "25396:3:51" + }, + { + "kind": "number", + "nativeSrc": "25401:4:51", + "nodeType": "YulLiteral", + "src": "25401:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25392:3:51", + "nodeType": "YulIdentifier", + "src": "25392:3:51" + }, + "nativeSrc": "25392:14:51", + "nodeType": "YulFunctionCall", + "src": "25392:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25418:5:51", + "nodeType": "YulIdentifier", + "src": "25418:5:51" + }, + { + "kind": "number", + "nativeSrc": "25425:4:51", + "nodeType": "YulLiteral", + "src": "25425:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25414:3:51", + "nodeType": "YulIdentifier", + "src": "25414:3:51" + }, + "nativeSrc": "25414:16:51", + "nodeType": "YulFunctionCall", + "src": "25414:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25408:5:51", + "nodeType": "YulIdentifier", + "src": "25408:5:51" + }, + "nativeSrc": "25408:23:51", + "nodeType": "YulFunctionCall", + "src": "25408:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25385:6:51", + "nodeType": "YulIdentifier", + "src": "25385:6:51" + }, + "nativeSrc": "25385:47:51", + "nodeType": "YulFunctionCall", + "src": "25385:47:51" + }, + "nativeSrc": "25385:47:51", + "nodeType": "YulExpressionStatement", + "src": "25385:47:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25452:3:51", + "nodeType": "YulIdentifier", + "src": "25452:3:51" + }, + { + "kind": "number", + "nativeSrc": "25457:4:51", + "nodeType": "YulLiteral", + "src": "25457:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25448:3:51", + "nodeType": "YulIdentifier", + "src": "25448:3:51" + }, + "nativeSrc": "25448:14:51", + "nodeType": "YulFunctionCall", + "src": "25448:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25474:5:51", + "nodeType": "YulIdentifier", + "src": "25474:5:51" + }, + { + "kind": "number", + "nativeSrc": "25481:4:51", + "nodeType": "YulLiteral", + "src": "25481:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25470:3:51", + "nodeType": "YulIdentifier", + "src": "25470:3:51" + }, + "nativeSrc": "25470:16:51", + "nodeType": "YulFunctionCall", + "src": "25470:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25464:5:51", + "nodeType": "YulIdentifier", + "src": "25464:5:51" + }, + "nativeSrc": "25464:23:51", + "nodeType": "YulFunctionCall", + "src": "25464:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25441:6:51", + "nodeType": "YulIdentifier", + "src": "25441:6:51" + }, + "nativeSrc": "25441:47:51", + "nodeType": "YulFunctionCall", + "src": "25441:47:51" + }, + "nativeSrc": "25441:47:51", + "nodeType": "YulExpressionStatement", + "src": "25441:47:51" + }, + { + "nativeSrc": "25497:43:51", + "nodeType": "YulVariableDeclaration", + "src": "25497:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25527:5:51", + "nodeType": "YulIdentifier", + "src": "25527:5:51" + }, + { + "kind": "number", + "nativeSrc": "25534:4:51", + "nodeType": "YulLiteral", + "src": "25534:4:51", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25523:3:51", + "nodeType": "YulIdentifier", + "src": "25523:3:51" + }, + "nativeSrc": "25523:16:51", + "nodeType": "YulFunctionCall", + "src": "25523:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25517:5:51", + "nodeType": "YulIdentifier", + "src": "25517:5:51" + }, + "nativeSrc": "25517:23:51", + "nodeType": "YulFunctionCall", + "src": "25517:23:51" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "25501:12:51", + "nodeType": "YulTypedName", + "src": "25501:12:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "25568:12:51", + "nodeType": "YulIdentifier", + "src": "25568:12:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25586:3:51", + "nodeType": "YulIdentifier", + "src": "25586:3:51" + }, + { + "kind": "number", + "nativeSrc": "25591:4:51", + "nodeType": "YulLiteral", + "src": "25591:4:51", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25582:3:51", + "nodeType": "YulIdentifier", + "src": "25582:3:51" + }, + "nativeSrc": "25582:14:51", + "nodeType": "YulFunctionCall", + "src": "25582:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "25549:18:51", + "nodeType": "YulIdentifier", + "src": "25549:18:51" + }, + "nativeSrc": "25549:48:51", + "nodeType": "YulFunctionCall", + "src": "25549:48:51" + }, + "nativeSrc": "25549:48:51", + "nodeType": "YulExpressionStatement", + "src": "25549:48:51" + }, + { + "nativeSrc": "25606:45:51", + "nodeType": "YulVariableDeclaration", + "src": "25606:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25638:5:51", + "nodeType": "YulIdentifier", + "src": "25638:5:51" + }, + { + "kind": "number", + "nativeSrc": "25645:4:51", + "nodeType": "YulLiteral", + "src": "25645:4:51", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25634:3:51", + "nodeType": "YulIdentifier", + "src": "25634:3:51" + }, + "nativeSrc": "25634:16:51", + "nodeType": "YulFunctionCall", + "src": "25634:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25628:5:51", + "nodeType": "YulIdentifier", + "src": "25628:5:51" + }, + "nativeSrc": "25628:23:51", + "nodeType": "YulFunctionCall", + "src": "25628:23:51" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "25610:14:51", + "nodeType": "YulTypedName", + "src": "25610:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "25679:14:51", + "nodeType": "YulIdentifier", + "src": "25679:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25699:3:51", + "nodeType": "YulIdentifier", + "src": "25699:3:51" + }, + { + "kind": "number", + "nativeSrc": "25704:4:51", + "nodeType": "YulLiteral", + "src": "25704:4:51", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25695:3:51", + "nodeType": "YulIdentifier", + "src": "25695:3:51" + }, + "nativeSrc": "25695:14:51", + "nodeType": "YulFunctionCall", + "src": "25695:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "25660:18:51", + "nodeType": "YulIdentifier", + "src": "25660:18:51" + }, + "nativeSrc": "25660:50:51", + "nodeType": "YulFunctionCall", + "src": "25660:50:51" + }, + "nativeSrc": "25660:50:51", + "nodeType": "YulExpressionStatement", + "src": "25660:50:51" + }, + { + "nativeSrc": "25719:45:51", + "nodeType": "YulVariableDeclaration", + "src": "25719:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25751:5:51", + "nodeType": "YulIdentifier", + "src": "25751:5:51" + }, + { + "kind": "number", + "nativeSrc": "25758:4:51", + "nodeType": "YulLiteral", + "src": "25758:4:51", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25747:3:51", + "nodeType": "YulIdentifier", + "src": "25747:3:51" + }, + "nativeSrc": "25747:16:51", + "nodeType": "YulFunctionCall", + "src": "25747:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25741:5:51", + "nodeType": "YulIdentifier", + "src": "25741:5:51" + }, + "nativeSrc": "25741:23:51", + "nodeType": "YulFunctionCall", + "src": "25741:23:51" + }, + "variables": [ + { + "name": "memberValue0_2", + "nativeSrc": "25723:14:51", + "nodeType": "YulTypedName", + "src": "25723:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_2", + "nativeSrc": "25792:14:51", + "nodeType": "YulIdentifier", + "src": "25792:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25812:3:51", + "nodeType": "YulIdentifier", + "src": "25812:3:51" + }, + { + "kind": "number", + "nativeSrc": "25817:4:51", + "nodeType": "YulLiteral", + "src": "25817:4:51", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25808:3:51", + "nodeType": "YulIdentifier", + "src": "25808:3:51" + }, + "nativeSrc": "25808:14:51", + "nodeType": "YulFunctionCall", + "src": "25808:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "25773:18:51", + "nodeType": "YulIdentifier", + "src": "25773:18:51" + }, + "nativeSrc": "25773:50:51", + "nodeType": "YulFunctionCall", + "src": "25773:50:51" + }, + "nativeSrc": "25773:50:51", + "nodeType": "YulExpressionStatement", + "src": "25773:50:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25843:3:51", + "nodeType": "YulIdentifier", + "src": "25843:3:51" + }, + { + "kind": "number", + "nativeSrc": "25848:4:51", + "nodeType": "YulLiteral", + "src": "25848:4:51", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25839:3:51", + "nodeType": "YulIdentifier", + "src": "25839:3:51" + }, + "nativeSrc": "25839:14:51", + "nodeType": "YulFunctionCall", + "src": "25839:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25865:5:51", + "nodeType": "YulIdentifier", + "src": "25865:5:51" + }, + { + "kind": "number", + "nativeSrc": "25872:4:51", + "nodeType": "YulLiteral", + "src": "25872:4:51", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25861:3:51", + "nodeType": "YulIdentifier", + "src": "25861:3:51" + }, + "nativeSrc": "25861:16:51", + "nodeType": "YulFunctionCall", + "src": "25861:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25855:5:51", + "nodeType": "YulIdentifier", + "src": "25855:5:51" + }, + "nativeSrc": "25855:23:51", + "nodeType": "YulFunctionCall", + "src": "25855:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25832:6:51", + "nodeType": "YulIdentifier", + "src": "25832:6:51" + }, + "nativeSrc": "25832:47:51", + "nodeType": "YulFunctionCall", + "src": "25832:47:51" + }, + "nativeSrc": "25832:47:51", + "nodeType": "YulExpressionStatement", + "src": "25832:47:51" + }, + { + "nativeSrc": "25888:16:51", + "nodeType": "YulVariableDeclaration", + "src": "25888:16:51", + "value": { + "kind": "number", + "nativeSrc": "25898:6:51", + "nodeType": "YulLiteral", + "src": "25898:6:51", + "type": "", + "value": "0x0100" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "25892:2:51", + "nodeType": "YulTypedName", + "src": "25892:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "25913:43:51", + "nodeType": "YulVariableDeclaration", + "src": "25913:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25945:5:51", + "nodeType": "YulIdentifier", + "src": "25945:5:51" + }, + { + "name": "_2", + "nativeSrc": "25952:2:51", + "nodeType": "YulIdentifier", + "src": "25952:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25941:3:51", + "nodeType": "YulIdentifier", + "src": "25941:3:51" + }, + "nativeSrc": "25941:14:51", + "nodeType": "YulFunctionCall", + "src": "25941:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "25935:5:51", + "nodeType": "YulIdentifier", + "src": "25935:5:51" + }, + "nativeSrc": "25935:21:51", + "nodeType": "YulFunctionCall", + "src": "25935:21:51" + }, + "variables": [ + { + "name": "memberValue0_3", + "nativeSrc": "25917:14:51", + "nodeType": "YulTypedName", + "src": "25917:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25976:3:51", + "nodeType": "YulIdentifier", + "src": "25976:3:51" + }, + { + "name": "_2", + "nativeSrc": "25981:2:51", + "nodeType": "YulIdentifier", + "src": "25981:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25972:3:51", + "nodeType": "YulIdentifier", + "src": "25972:3:51" + }, + "nativeSrc": "25972:12:51", + "nodeType": "YulFunctionCall", + "src": "25972:12:51" + }, + { + "name": "_1", + "nativeSrc": "25986:2:51", + "nodeType": "YulIdentifier", + "src": "25986:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25965:6:51", + "nodeType": "YulIdentifier", + "src": "25965:6:51" + }, + "nativeSrc": "25965:24:51", + "nodeType": "YulFunctionCall", + "src": "25965:24:51" + }, + "nativeSrc": "25965:24:51", + "nodeType": "YulExpressionStatement", + "src": "25965:24:51" + }, + { + "nativeSrc": "25998:54:51", + "nodeType": "YulAssignment", + "src": "25998:54:51", + "value": { + "arguments": [ + { + "name": "memberValue0_3", + "nativeSrc": "26023:14:51", + "nodeType": "YulIdentifier", + "src": "26023:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26043:3:51", + "nodeType": "YulIdentifier", + "src": "26043:3:51" + }, + { + "name": "_1", + "nativeSrc": "26048:2:51", + "nodeType": "YulIdentifier", + "src": "26048:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26039:3:51", + "nodeType": "YulIdentifier", + "src": "26039:3:51" + }, + "nativeSrc": "26039:12:51", + "nodeType": "YulFunctionCall", + "src": "26039:12:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "26005:17:51", + "nodeType": "YulIdentifier", + "src": "26005:17:51" + }, + "nativeSrc": "26005:47:51", + "nodeType": "YulFunctionCall", + "src": "26005:47:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25998:3:51", + "nodeType": "YulIdentifier", + "src": "25998:3:51" + } + ] + } + ] + }, + "name": "abi_encode_struct_AppOrder", + "nativeSrc": "25175:883:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25211:5:51", + "nodeType": "YulTypedName", + "src": "25211:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "25218:3:51", + "nodeType": "YulTypedName", + "src": "25218:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25226:3:51", + "nodeType": "YulTypedName", + "src": "25226:3:51", + "type": "" + } + ], + "src": "25175:883:51" + }, + { + "body": { + "nativeSrc": "26139:424:51", + "nodeType": "YulBlock", + "src": "26139:424:51", + "statements": [ + { + "nativeSrc": "26149:43:51", + "nodeType": "YulVariableDeclaration", + "src": "26149:43:51", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "26188:3:51", + "nodeType": "YulIdentifier", + "src": "26188:3:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "26175:12:51", + "nodeType": "YulIdentifier", + "src": "26175:12:51" + }, + "nativeSrc": "26175:17:51", + "nodeType": "YulFunctionCall", + "src": "26175:17:51" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "26153:18:51", + "nodeType": "YulTypedName", + "src": "26153:18:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26281:16:51", + "nodeType": "YulBlock", + "src": "26281:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26290:1:51", + "nodeType": "YulLiteral", + "src": "26290:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26293:1:51", + "nodeType": "YulLiteral", + "src": "26293:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26283:6:51", + "nodeType": "YulIdentifier", + "src": "26283:6:51" + }, + "nativeSrc": "26283:12:51", + "nodeType": "YulFunctionCall", + "src": "26283:12:51" + }, + "nativeSrc": "26283:12:51", + "nodeType": "YulExpressionStatement", + "src": "26283:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "26215:18:51", + "nodeType": "YulIdentifier", + "src": "26215:18:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "26243:12:51", + "nodeType": "YulIdentifier", + "src": "26243:12:51" + }, + "nativeSrc": "26243:14:51", + "nodeType": "YulFunctionCall", + "src": "26243:14:51" + }, + { + "name": "base_ref", + "nativeSrc": "26259:8:51", + "nodeType": "YulIdentifier", + "src": "26259:8:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26239:3:51", + "nodeType": "YulIdentifier", + "src": "26239:3:51" + }, + "nativeSrc": "26239:29:51", + "nodeType": "YulFunctionCall", + "src": "26239:29:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26274:2:51", + "nodeType": "YulLiteral", + "src": "26274:2:51", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26270:3:51", + "nodeType": "YulIdentifier", + "src": "26270:3:51" + }, + "nativeSrc": "26270:7:51", + "nodeType": "YulFunctionCall", + "src": "26270:7:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26235:3:51", + "nodeType": "YulIdentifier", + "src": "26235:3:51" + }, + "nativeSrc": "26235:43:51", + "nodeType": "YulFunctionCall", + "src": "26235:43:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26211:3:51", + "nodeType": "YulIdentifier", + "src": "26211:3:51" + }, + "nativeSrc": "26211:68:51", + "nodeType": "YulFunctionCall", + "src": "26211:68:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26204:6:51", + "nodeType": "YulIdentifier", + "src": "26204:6:51" + }, + "nativeSrc": "26204:76:51", + "nodeType": "YulFunctionCall", + "src": "26204:76:51" + }, + "nativeSrc": "26201:96:51", + "nodeType": "YulIf", + "src": "26201:96:51" + }, + { + "nativeSrc": "26306:48:51", + "nodeType": "YulVariableDeclaration", + "src": "26306:48:51", + "value": { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "26325:18:51", + "nodeType": "YulIdentifier", + "src": "26325:18:51" + }, + { + "name": "base_ref", + "nativeSrc": "26345:8:51", + "nodeType": "YulIdentifier", + "src": "26345:8:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26321:3:51", + "nodeType": "YulIdentifier", + "src": "26321:3:51" + }, + "nativeSrc": "26321:33:51", + "nodeType": "YulFunctionCall", + "src": "26321:33:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "26310:7:51", + "nodeType": "YulTypedName", + "src": "26310:7:51", + "type": "" + } + ] + }, + { + "nativeSrc": "26363:31:51", + "nodeType": "YulAssignment", + "src": "26363:31:51", + "value": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "26386:7:51", + "nodeType": "YulIdentifier", + "src": "26386:7:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "26373:12:51", + "nodeType": "YulIdentifier", + "src": "26373:12:51" + }, + "nativeSrc": "26373:21:51", + "nodeType": "YulFunctionCall", + "src": "26373:21:51" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "26363:6:51", + "nodeType": "YulIdentifier", + "src": "26363:6:51" + } + ] + }, + { + "nativeSrc": "26403:27:51", + "nodeType": "YulAssignment", + "src": "26403:27:51", + "value": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "26416:7:51", + "nodeType": "YulIdentifier", + "src": "26416:7:51" + }, + { + "kind": "number", + "nativeSrc": "26425:4:51", + "nodeType": "YulLiteral", + "src": "26425:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26412:3:51", + "nodeType": "YulIdentifier", + "src": "26412:3:51" + }, + "nativeSrc": "26412:18:51", + "nodeType": "YulFunctionCall", + "src": "26412:18:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "26403:5:51", + "nodeType": "YulIdentifier", + "src": "26403:5:51" + } + ] + }, + { + "body": { + "nativeSrc": "26473:16:51", + "nodeType": "YulBlock", + "src": "26473:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26482:1:51", + "nodeType": "YulLiteral", + "src": "26482:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26485:1:51", + "nodeType": "YulLiteral", + "src": "26485:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26475:6:51", + "nodeType": "YulIdentifier", + "src": "26475:6:51" + }, + "nativeSrc": "26475:12:51", + "nodeType": "YulFunctionCall", + "src": "26475:12:51" + }, + "nativeSrc": "26475:12:51", + "nodeType": "YulExpressionStatement", + "src": "26475:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "26445:6:51", + "nodeType": "YulIdentifier", + "src": "26445:6:51" + }, + { + "kind": "number", + "nativeSrc": "26453:18:51", + "nodeType": "YulLiteral", + "src": "26453:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "26442:2:51", + "nodeType": "YulIdentifier", + "src": "26442:2:51" + }, + "nativeSrc": "26442:30:51", + "nodeType": "YulFunctionCall", + "src": "26442:30:51" + }, + "nativeSrc": "26439:50:51", + "nodeType": "YulIf", + "src": "26439:50:51" + }, + { + "body": { + "nativeSrc": "26541:16:51", + "nodeType": "YulBlock", + "src": "26541:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26550:1:51", + "nodeType": "YulLiteral", + "src": "26550:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26553:1:51", + "nodeType": "YulLiteral", + "src": "26553:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26543:6:51", + "nodeType": "YulIdentifier", + "src": "26543:6:51" + }, + "nativeSrc": "26543:12:51", + "nodeType": "YulFunctionCall", + "src": "26543:12:51" + }, + "nativeSrc": "26543:12:51", + "nodeType": "YulExpressionStatement", + "src": "26543:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26505:5:51", + "nodeType": "YulIdentifier", + "src": "26505:5:51" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "26516:12:51", + "nodeType": "YulIdentifier", + "src": "26516:12:51" + }, + "nativeSrc": "26516:14:51", + "nodeType": "YulFunctionCall", + "src": "26516:14:51" + }, + { + "name": "length", + "nativeSrc": "26532:6:51", + "nodeType": "YulIdentifier", + "src": "26532:6:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26512:3:51", + "nodeType": "YulIdentifier", + "src": "26512:3:51" + }, + "nativeSrc": "26512:27:51", + "nodeType": "YulFunctionCall", + "src": "26512:27:51" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "26501:3:51", + "nodeType": "YulIdentifier", + "src": "26501:3:51" + }, + "nativeSrc": "26501:39:51", + "nodeType": "YulFunctionCall", + "src": "26501:39:51" + }, + "nativeSrc": "26498:59:51", + "nodeType": "YulIf", + "src": "26498:59:51" + } + ] + }, + "name": "calldata_access_bytes_calldata", + "nativeSrc": "26063:500:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "26103:8:51", + "nodeType": "YulTypedName", + "src": "26103:8:51", + "type": "" + }, + { + "name": "ptr", + "nativeSrc": "26113:3:51", + "nodeType": "YulTypedName", + "src": "26113:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "26121:5:51", + "nodeType": "YulTypedName", + "src": "26121:5:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "26128:6:51", + "nodeType": "YulTypedName", + "src": "26128:6:51", + "type": "" + } + ], + "src": "26063:500:51" + }, + { + "body": { + "nativeSrc": "26634:200:51", + "nodeType": "YulBlock", + "src": "26634:200:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26651:3:51", + "nodeType": "YulIdentifier", + "src": "26651:3:51" + }, + { + "name": "length", + "nativeSrc": "26656:6:51", + "nodeType": "YulIdentifier", + "src": "26656:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26644:6:51", + "nodeType": "YulIdentifier", + "src": "26644:6:51" + }, + "nativeSrc": "26644:19:51", + "nodeType": "YulFunctionCall", + "src": "26644:19:51" + }, + "nativeSrc": "26644:19:51", + "nodeType": "YulExpressionStatement", + "src": "26644:19:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26689:3:51", + "nodeType": "YulIdentifier", + "src": "26689:3:51" + }, + { + "kind": "number", + "nativeSrc": "26694:4:51", + "nodeType": "YulLiteral", + "src": "26694:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26685:3:51", + "nodeType": "YulIdentifier", + "src": "26685:3:51" + }, + "nativeSrc": "26685:14:51", + "nodeType": "YulFunctionCall", + "src": "26685:14:51" + }, + { + "name": "start", + "nativeSrc": "26701:5:51", + "nodeType": "YulIdentifier", + "src": "26701:5:51" + }, + { + "name": "length", + "nativeSrc": "26708:6:51", + "nodeType": "YulIdentifier", + "src": "26708:6:51" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "26672:12:51", + "nodeType": "YulIdentifier", + "src": "26672:12:51" + }, + "nativeSrc": "26672:43:51", + "nodeType": "YulFunctionCall", + "src": "26672:43:51" + }, + "nativeSrc": "26672:43:51", + "nodeType": "YulExpressionStatement", + "src": "26672:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26739:3:51", + "nodeType": "YulIdentifier", + "src": "26739:3:51" + }, + { + "name": "length", + "nativeSrc": "26744:6:51", + "nodeType": "YulIdentifier", + "src": "26744:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26735:3:51", + "nodeType": "YulIdentifier", + "src": "26735:3:51" + }, + "nativeSrc": "26735:16:51", + "nodeType": "YulFunctionCall", + "src": "26735:16:51" + }, + { + "kind": "number", + "nativeSrc": "26753:4:51", + "nodeType": "YulLiteral", + "src": "26753:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26731:3:51", + "nodeType": "YulIdentifier", + "src": "26731:3:51" + }, + "nativeSrc": "26731:27:51", + "nodeType": "YulFunctionCall", + "src": "26731:27:51" + }, + { + "kind": "number", + "nativeSrc": "26760:1:51", + "nodeType": "YulLiteral", + "src": "26760:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26724:6:51", + "nodeType": "YulIdentifier", + "src": "26724:6:51" + }, + "nativeSrc": "26724:38:51", + "nodeType": "YulFunctionCall", + "src": "26724:38:51" + }, + "nativeSrc": "26724:38:51", + "nodeType": "YulExpressionStatement", + "src": "26724:38:51" + }, + { + "nativeSrc": "26771:57:51", + "nodeType": "YulAssignment", + "src": "26771:57:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26786:3:51", + "nodeType": "YulIdentifier", + "src": "26786:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26799:6:51", + "nodeType": "YulIdentifier", + "src": "26799:6:51" + }, + { + "kind": "number", + "nativeSrc": "26807:2:51", + "nodeType": "YulLiteral", + "src": "26807:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26795:3:51", + "nodeType": "YulIdentifier", + "src": "26795:3:51" + }, + "nativeSrc": "26795:15:51", + "nodeType": "YulFunctionCall", + "src": "26795:15:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26816:2:51", + "nodeType": "YulLiteral", + "src": "26816:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26812:3:51", + "nodeType": "YulIdentifier", + "src": "26812:3:51" + }, + "nativeSrc": "26812:7:51", + "nodeType": "YulFunctionCall", + "src": "26812:7:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26791:3:51", + "nodeType": "YulIdentifier", + "src": "26791:3:51" + }, + "nativeSrc": "26791:29:51", + "nodeType": "YulFunctionCall", + "src": "26791:29:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26782:3:51", + "nodeType": "YulIdentifier", + "src": "26782:3:51" + }, + "nativeSrc": "26782:39:51", + "nodeType": "YulFunctionCall", + "src": "26782:39:51" + }, + { + "kind": "number", + "nativeSrc": "26823:4:51", + "nodeType": "YulLiteral", + "src": "26823:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26778:3:51", + "nodeType": "YulIdentifier", + "src": "26778:3:51" + }, + "nativeSrc": "26778:50:51", + "nodeType": "YulFunctionCall", + "src": "26778:50:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "26771:3:51", + "nodeType": "YulIdentifier", + "src": "26771:3:51" + } + ] + } + ] + }, + "name": "abi_encode_bytes_calldata", + "nativeSrc": "26568:266:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "26603:5:51", + "nodeType": "YulTypedName", + "src": "26603:5:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "26610:6:51", + "nodeType": "YulTypedName", + "src": "26610:6:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "26618:3:51", + "nodeType": "YulTypedName", + "src": "26618:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "26626:3:51", + "nodeType": "YulTypedName", + "src": "26626:3:51", + "type": "" + } + ], + "src": "26568:266:51" + }, + { + "body": { + "nativeSrc": "26914:1126:51", + "nodeType": "YulBlock", + "src": "26914:1126:51", + "statements": [ + { + "nativeSrc": "26924:16:51", + "nodeType": "YulVariableDeclaration", + "src": "26924:16:51", + "value": { + "kind": "number", + "nativeSrc": "26934:6:51", + "nodeType": "YulLiteral", + "src": "26934:6:51", + "type": "", + "value": "0x0160" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "26928:2:51", + "nodeType": "YulTypedName", + "src": "26928:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "26987:5:51", + "nodeType": "YulIdentifier", + "src": "26987:5:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "26968:18:51", + "nodeType": "YulIdentifier", + "src": "26968:18:51" + }, + "nativeSrc": "26968:25:51", + "nodeType": "YulFunctionCall", + "src": "26968:25:51" + }, + { + "name": "pos", + "nativeSrc": "26995:3:51", + "nodeType": "YulIdentifier", + "src": "26995:3:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "26949:18:51", + "nodeType": "YulIdentifier", + "src": "26949:18:51" + }, + "nativeSrc": "26949:50:51", + "nodeType": "YulFunctionCall", + "src": "26949:50:51" + }, + "nativeSrc": "26949:50:51", + "nodeType": "YulExpressionStatement", + "src": "26949:50:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27019:3:51", + "nodeType": "YulIdentifier", + "src": "27019:3:51" + }, + { + "kind": "number", + "nativeSrc": "27024:4:51", + "nodeType": "YulLiteral", + "src": "27024:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27015:3:51", + "nodeType": "YulIdentifier", + "src": "27015:3:51" + }, + "nativeSrc": "27015:14:51", + "nodeType": "YulFunctionCall", + "src": "27015:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27048:5:51", + "nodeType": "YulIdentifier", + "src": "27048:5:51" + }, + { + "kind": "number", + "nativeSrc": "27055:4:51", + "nodeType": "YulLiteral", + "src": "27055:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27044:3:51", + "nodeType": "YulIdentifier", + "src": "27044:3:51" + }, + "nativeSrc": "27044:16:51", + "nodeType": "YulFunctionCall", + "src": "27044:16:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "27031:12:51", + "nodeType": "YulIdentifier", + "src": "27031:12:51" + }, + "nativeSrc": "27031:30:51", + "nodeType": "YulFunctionCall", + "src": "27031:30:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27008:6:51", + "nodeType": "YulIdentifier", + "src": "27008:6:51" + }, + "nativeSrc": "27008:54:51", + "nodeType": "YulFunctionCall", + "src": "27008:54:51" + }, + "nativeSrc": "27008:54:51", + "nodeType": "YulExpressionStatement", + "src": "27008:54:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27082:3:51", + "nodeType": "YulIdentifier", + "src": "27082:3:51" + }, + { + "kind": "number", + "nativeSrc": "27087:4:51", + "nodeType": "YulLiteral", + "src": "27087:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27078:3:51", + "nodeType": "YulIdentifier", + "src": "27078:3:51" + }, + "nativeSrc": "27078:14:51", + "nodeType": "YulFunctionCall", + "src": "27078:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27111:5:51", + "nodeType": "YulIdentifier", + "src": "27111:5:51" + }, + { + "kind": "number", + "nativeSrc": "27118:4:51", + "nodeType": "YulLiteral", + "src": "27118:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27107:3:51", + "nodeType": "YulIdentifier", + "src": "27107:3:51" + }, + "nativeSrc": "27107:16:51", + "nodeType": "YulFunctionCall", + "src": "27107:16:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "27094:12:51", + "nodeType": "YulIdentifier", + "src": "27094:12:51" + }, + "nativeSrc": "27094:30:51", + "nodeType": "YulFunctionCall", + "src": "27094:30:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27071:6:51", + "nodeType": "YulIdentifier", + "src": "27071:6:51" + }, + "nativeSrc": "27071:54:51", + "nodeType": "YulFunctionCall", + "src": "27071:54:51" + }, + "nativeSrc": "27071:54:51", + "nodeType": "YulExpressionStatement", + "src": "27071:54:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27145:3:51", + "nodeType": "YulIdentifier", + "src": "27145:3:51" + }, + { + "kind": "number", + "nativeSrc": "27150:4:51", + "nodeType": "YulLiteral", + "src": "27150:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27141:3:51", + "nodeType": "YulIdentifier", + "src": "27141:3:51" + }, + "nativeSrc": "27141:14:51", + "nodeType": "YulFunctionCall", + "src": "27141:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27174:5:51", + "nodeType": "YulIdentifier", + "src": "27174:5:51" + }, + { + "kind": "number", + "nativeSrc": "27181:4:51", + "nodeType": "YulLiteral", + "src": "27181:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27170:3:51", + "nodeType": "YulIdentifier", + "src": "27170:3:51" + }, + "nativeSrc": "27170:16:51", + "nodeType": "YulFunctionCall", + "src": "27170:16:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "27157:12:51", + "nodeType": "YulIdentifier", + "src": "27157:12:51" + }, + "nativeSrc": "27157:30:51", + "nodeType": "YulFunctionCall", + "src": "27157:30:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27134:6:51", + "nodeType": "YulIdentifier", + "src": "27134:6:51" + }, + "nativeSrc": "27134:54:51", + "nodeType": "YulFunctionCall", + "src": "27134:54:51" + }, + "nativeSrc": "27134:54:51", + "nodeType": "YulExpressionStatement", + "src": "27134:54:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27208:3:51", + "nodeType": "YulIdentifier", + "src": "27208:3:51" + }, + { + "kind": "number", + "nativeSrc": "27213:4:51", + "nodeType": "YulLiteral", + "src": "27213:4:51", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27204:3:51", + "nodeType": "YulIdentifier", + "src": "27204:3:51" + }, + "nativeSrc": "27204:14:51", + "nodeType": "YulFunctionCall", + "src": "27204:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27237:5:51", + "nodeType": "YulIdentifier", + "src": "27237:5:51" + }, + { + "kind": "number", + "nativeSrc": "27244:4:51", + "nodeType": "YulLiteral", + "src": "27244:4:51", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27233:3:51", + "nodeType": "YulIdentifier", + "src": "27233:3:51" + }, + "nativeSrc": "27233:16:51", + "nodeType": "YulFunctionCall", + "src": "27233:16:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "27220:12:51", + "nodeType": "YulIdentifier", + "src": "27220:12:51" + }, + "nativeSrc": "27220:30:51", + "nodeType": "YulFunctionCall", + "src": "27220:30:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27197:6:51", + "nodeType": "YulIdentifier", + "src": "27197:6:51" + }, + "nativeSrc": "27197:54:51", + "nodeType": "YulFunctionCall", + "src": "27197:54:51" + }, + "nativeSrc": "27197:54:51", + "nodeType": "YulExpressionStatement", + "src": "27197:54:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27271:3:51", + "nodeType": "YulIdentifier", + "src": "27271:3:51" + }, + { + "kind": "number", + "nativeSrc": "27276:4:51", + "nodeType": "YulLiteral", + "src": "27276:4:51", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27267:3:51", + "nodeType": "YulIdentifier", + "src": "27267:3:51" + }, + "nativeSrc": "27267:14:51", + "nodeType": "YulFunctionCall", + "src": "27267:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27300:5:51", + "nodeType": "YulIdentifier", + "src": "27300:5:51" + }, + { + "kind": "number", + "nativeSrc": "27307:4:51", + "nodeType": "YulLiteral", + "src": "27307:4:51", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27296:3:51", + "nodeType": "YulIdentifier", + "src": "27296:3:51" + }, + "nativeSrc": "27296:16:51", + "nodeType": "YulFunctionCall", + "src": "27296:16:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "27283:12:51", + "nodeType": "YulIdentifier", + "src": "27283:12:51" + }, + "nativeSrc": "27283:30:51", + "nodeType": "YulFunctionCall", + "src": "27283:30:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27260:6:51", + "nodeType": "YulIdentifier", + "src": "27260:6:51" + }, + "nativeSrc": "27260:54:51", + "nodeType": "YulFunctionCall", + "src": "27260:54:51" + }, + "nativeSrc": "27260:54:51", + "nodeType": "YulExpressionStatement", + "src": "27260:54:51" + }, + { + "nativeSrc": "27323:56:51", + "nodeType": "YulVariableDeclaration", + "src": "27323:56:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27366:5:51", + "nodeType": "YulIdentifier", + "src": "27366:5:51" + }, + { + "kind": "number", + "nativeSrc": "27373:4:51", + "nodeType": "YulLiteral", + "src": "27373:4:51", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27362:3:51", + "nodeType": "YulIdentifier", + "src": "27362:3:51" + }, + "nativeSrc": "27362:16:51", + "nodeType": "YulFunctionCall", + "src": "27362:16:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "27343:18:51", + "nodeType": "YulIdentifier", + "src": "27343:18:51" + }, + "nativeSrc": "27343:36:51", + "nodeType": "YulFunctionCall", + "src": "27343:36:51" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "27327:12:51", + "nodeType": "YulTypedName", + "src": "27327:12:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "27407:12:51", + "nodeType": "YulIdentifier", + "src": "27407:12:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27425:3:51", + "nodeType": "YulIdentifier", + "src": "27425:3:51" + }, + { + "kind": "number", + "nativeSrc": "27430:4:51", + "nodeType": "YulLiteral", + "src": "27430:4:51", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27421:3:51", + "nodeType": "YulIdentifier", + "src": "27421:3:51" + }, + "nativeSrc": "27421:14:51", + "nodeType": "YulFunctionCall", + "src": "27421:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "27388:18:51", + "nodeType": "YulIdentifier", + "src": "27388:18:51" + }, + "nativeSrc": "27388:48:51", + "nodeType": "YulFunctionCall", + "src": "27388:48:51" + }, + "nativeSrc": "27388:48:51", + "nodeType": "YulExpressionStatement", + "src": "27388:48:51" + }, + { + "nativeSrc": "27445:58:51", + "nodeType": "YulVariableDeclaration", + "src": "27445:58:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27490:5:51", + "nodeType": "YulIdentifier", + "src": "27490:5:51" + }, + { + "kind": "number", + "nativeSrc": "27497:4:51", + "nodeType": "YulLiteral", + "src": "27497:4:51", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27486:3:51", + "nodeType": "YulIdentifier", + "src": "27486:3:51" + }, + "nativeSrc": "27486:16:51", + "nodeType": "YulFunctionCall", + "src": "27486:16:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "27467:18:51", + "nodeType": "YulIdentifier", + "src": "27467:18:51" + }, + "nativeSrc": "27467:36:51", + "nodeType": "YulFunctionCall", + "src": "27467:36:51" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "27449:14:51", + "nodeType": "YulTypedName", + "src": "27449:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "27531:14:51", + "nodeType": "YulIdentifier", + "src": "27531:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27551:3:51", + "nodeType": "YulIdentifier", + "src": "27551:3:51" + }, + { + "kind": "number", + "nativeSrc": "27556:4:51", + "nodeType": "YulLiteral", + "src": "27556:4:51", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27547:3:51", + "nodeType": "YulIdentifier", + "src": "27547:3:51" + }, + "nativeSrc": "27547:14:51", + "nodeType": "YulFunctionCall", + "src": "27547:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "27512:18:51", + "nodeType": "YulIdentifier", + "src": "27512:18:51" + }, + "nativeSrc": "27512:50:51", + "nodeType": "YulFunctionCall", + "src": "27512:50:51" + }, + "nativeSrc": "27512:50:51", + "nodeType": "YulExpressionStatement", + "src": "27512:50:51" + }, + { + "nativeSrc": "27571:16:51", + "nodeType": "YulVariableDeclaration", + "src": "27571:16:51", + "value": { + "kind": "number", + "nativeSrc": "27581:6:51", + "nodeType": "YulLiteral", + "src": "27581:6:51", + "type": "", + "value": "0x0100" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "27575:2:51", + "nodeType": "YulTypedName", + "src": "27575:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "27596:56:51", + "nodeType": "YulVariableDeclaration", + "src": "27596:56:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27641:5:51", + "nodeType": "YulIdentifier", + "src": "27641:5:51" + }, + { + "name": "_2", + "nativeSrc": "27648:2:51", + "nodeType": "YulIdentifier", + "src": "27648:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27637:3:51", + "nodeType": "YulIdentifier", + "src": "27637:3:51" + }, + "nativeSrc": "27637:14:51", + "nodeType": "YulFunctionCall", + "src": "27637:14:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "27618:18:51", + "nodeType": "YulIdentifier", + "src": "27618:18:51" + }, + "nativeSrc": "27618:34:51", + "nodeType": "YulFunctionCall", + "src": "27618:34:51" + }, + "variables": [ + { + "name": "memberValue0_2", + "nativeSrc": "27600:14:51", + "nodeType": "YulTypedName", + "src": "27600:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_2", + "nativeSrc": "27680:14:51", + "nodeType": "YulIdentifier", + "src": "27680:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27700:3:51", + "nodeType": "YulIdentifier", + "src": "27700:3:51" + }, + { + "name": "_2", + "nativeSrc": "27705:2:51", + "nodeType": "YulIdentifier", + "src": "27705:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27696:3:51", + "nodeType": "YulIdentifier", + "src": "27696:3:51" + }, + "nativeSrc": "27696:12:51", + "nodeType": "YulFunctionCall", + "src": "27696:12:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "27661:18:51", + "nodeType": "YulIdentifier", + "src": "27661:18:51" + }, + "nativeSrc": "27661:48:51", + "nodeType": "YulFunctionCall", + "src": "27661:48:51" + }, + "nativeSrc": "27661:48:51", + "nodeType": "YulExpressionStatement", + "src": "27661:48:51" + }, + { + "nativeSrc": "27718:16:51", + "nodeType": "YulVariableDeclaration", + "src": "27718:16:51", + "value": { + "kind": "number", + "nativeSrc": "27728:6:51", + "nodeType": "YulLiteral", + "src": "27728:6:51", + "type": "", + "value": "0x0120" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "27722:2:51", + "nodeType": "YulTypedName", + "src": "27722:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27754:3:51", + "nodeType": "YulIdentifier", + "src": "27754:3:51" + }, + { + "name": "_3", + "nativeSrc": "27759:2:51", + "nodeType": "YulIdentifier", + "src": "27759:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27750:3:51", + "nodeType": "YulIdentifier", + "src": "27750:3:51" + }, + "nativeSrc": "27750:12:51", + "nodeType": "YulFunctionCall", + "src": "27750:12:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27781:5:51", + "nodeType": "YulIdentifier", + "src": "27781:5:51" + }, + { + "name": "_3", + "nativeSrc": "27788:2:51", + "nodeType": "YulIdentifier", + "src": "27788:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27777:3:51", + "nodeType": "YulIdentifier", + "src": "27777:3:51" + }, + "nativeSrc": "27777:14:51", + "nodeType": "YulFunctionCall", + "src": "27777:14:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "27764:12:51", + "nodeType": "YulIdentifier", + "src": "27764:12:51" + }, + "nativeSrc": "27764:28:51", + "nodeType": "YulFunctionCall", + "src": "27764:28:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27743:6:51", + "nodeType": "YulIdentifier", + "src": "27743:6:51" + }, + "nativeSrc": "27743:50:51", + "nodeType": "YulFunctionCall", + "src": "27743:50:51" + }, + "nativeSrc": "27743:50:51", + "nodeType": "YulExpressionStatement", + "src": "27743:50:51" + }, + { + "nativeSrc": "27802:16:51", + "nodeType": "YulVariableDeclaration", + "src": "27802:16:51", + "value": { + "kind": "number", + "nativeSrc": "27812:6:51", + "nodeType": "YulLiteral", + "src": "27812:6:51", + "type": "", + "value": "0x0140" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "27806:2:51", + "nodeType": "YulTypedName", + "src": "27806:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "27827:89:51", + "nodeType": "YulVariableDeclaration", + "src": "27827:89:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "27894:5:51", + "nodeType": "YulIdentifier", + "src": "27894:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "27905:5:51", + "nodeType": "YulIdentifier", + "src": "27905:5:51" + }, + { + "name": "_4", + "nativeSrc": "27912:2:51", + "nodeType": "YulIdentifier", + "src": "27912:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27901:3:51", + "nodeType": "YulIdentifier", + "src": "27901:3:51" + }, + "nativeSrc": "27901:14:51", + "nodeType": "YulFunctionCall", + "src": "27901:14:51" + } + ], + "functionName": { + "name": "calldata_access_bytes_calldata", + "nativeSrc": "27863:30:51", + "nodeType": "YulIdentifier", + "src": "27863:30:51" + }, + "nativeSrc": "27863:53:51", + "nodeType": "YulFunctionCall", + "src": "27863:53:51" + }, + "variables": [ + { + "name": "memberValue0_3", + "nativeSrc": "27831:14:51", + "nodeType": "YulTypedName", + "src": "27831:14:51", + "type": "" + }, + { + "name": "memberValue1", + "nativeSrc": "27847:12:51", + "nodeType": "YulTypedName", + "src": "27847:12:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "27936:3:51", + "nodeType": "YulIdentifier", + "src": "27936:3:51" + }, + { + "name": "_4", + "nativeSrc": "27941:2:51", + "nodeType": "YulIdentifier", + "src": "27941:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27932:3:51", + "nodeType": "YulIdentifier", + "src": "27932:3:51" + }, + "nativeSrc": "27932:12:51", + "nodeType": "YulFunctionCall", + "src": "27932:12:51" + }, + { + "name": "_1", + "nativeSrc": "27946:2:51", + "nodeType": "YulIdentifier", + "src": "27946:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27925:6:51", + "nodeType": "YulIdentifier", + "src": "27925:6:51" + }, + "nativeSrc": "27925:24:51", + "nodeType": "YulFunctionCall", + "src": "27925:24:51" + }, + "nativeSrc": "27925:24:51", + "nodeType": "YulExpressionStatement", + "src": "27925:24:51" + }, + { + "nativeSrc": "27958:76:51", + "nodeType": "YulAssignment", + "src": "27958:76:51", + "value": { + "arguments": [ + { + "name": "memberValue0_3", + "nativeSrc": "27991:14:51", + "nodeType": "YulIdentifier", + "src": "27991:14:51" + }, + { + "name": "memberValue1", + "nativeSrc": "28007:12:51", + "nodeType": "YulIdentifier", + "src": "28007:12:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28025:3:51", + "nodeType": "YulIdentifier", + "src": "28025:3:51" + }, + { + "name": "_1", + "nativeSrc": "28030:2:51", + "nodeType": "YulIdentifier", + "src": "28030:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28021:3:51", + "nodeType": "YulIdentifier", + "src": "28021:3:51" + }, + "nativeSrc": "28021:12:51", + "nodeType": "YulFunctionCall", + "src": "28021:12:51" + } + ], + "functionName": { + "name": "abi_encode_bytes_calldata", + "nativeSrc": "27965:25:51", + "nodeType": "YulIdentifier", + "src": "27965:25:51" + }, + "nativeSrc": "27965:69:51", + "nodeType": "YulFunctionCall", + "src": "27965:69:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27958:3:51", + "nodeType": "YulIdentifier", + "src": "27958:3:51" + } + ] + } + ] + }, + "name": "abi_encode_struct_WorkerpoolOrder_calldata", + "nativeSrc": "26839:1201:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "26891:5:51", + "nodeType": "YulTypedName", + "src": "26891:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "26898:3:51", + "nodeType": "YulTypedName", + "src": "26898:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "26906:3:51", + "nodeType": "YulTypedName", + "src": "26906:3:51", + "type": "" + } + ], + "src": "26839:1201:51" + }, + { + "body": { + "nativeSrc": "28108:1568:51", + "nodeType": "YulBlock", + "src": "28108:1568:51", + "statements": [ + { + "nativeSrc": "28118:16:51", + "nodeType": "YulVariableDeclaration", + "src": "28118:16:51", + "value": { + "kind": "number", + "nativeSrc": "28128:6:51", + "nodeType": "YulLiteral", + "src": "28128:6:51", + "type": "", + "value": "0x0200" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "28122:2:51", + "nodeType": "YulTypedName", + "src": "28122:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28168:5:51", + "nodeType": "YulIdentifier", + "src": "28168:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28162:5:51", + "nodeType": "YulIdentifier", + "src": "28162:5:51" + }, + "nativeSrc": "28162:12:51", + "nodeType": "YulFunctionCall", + "src": "28162:12:51" + }, + { + "name": "pos", + "nativeSrc": "28176:3:51", + "nodeType": "YulIdentifier", + "src": "28176:3:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "28143:18:51", + "nodeType": "YulIdentifier", + "src": "28143:18:51" + }, + "nativeSrc": "28143:37:51", + "nodeType": "YulFunctionCall", + "src": "28143:37:51" + }, + "nativeSrc": "28143:37:51", + "nodeType": "YulExpressionStatement", + "src": "28143:37:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28200:3:51", + "nodeType": "YulIdentifier", + "src": "28200:3:51" + }, + { + "kind": "number", + "nativeSrc": "28205:4:51", + "nodeType": "YulLiteral", + "src": "28205:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28196:3:51", + "nodeType": "YulIdentifier", + "src": "28196:3:51" + }, + "nativeSrc": "28196:14:51", + "nodeType": "YulFunctionCall", + "src": "28196:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28222:5:51", + "nodeType": "YulIdentifier", + "src": "28222:5:51" + }, + { + "kind": "number", + "nativeSrc": "28229:4:51", + "nodeType": "YulLiteral", + "src": "28229:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28218:3:51", + "nodeType": "YulIdentifier", + "src": "28218:3:51" + }, + "nativeSrc": "28218:16:51", + "nodeType": "YulFunctionCall", + "src": "28218:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28212:5:51", + "nodeType": "YulIdentifier", + "src": "28212:5:51" + }, + "nativeSrc": "28212:23:51", + "nodeType": "YulFunctionCall", + "src": "28212:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28189:6:51", + "nodeType": "YulIdentifier", + "src": "28189:6:51" + }, + "nativeSrc": "28189:47:51", + "nodeType": "YulFunctionCall", + "src": "28189:47:51" + }, + "nativeSrc": "28189:47:51", + "nodeType": "YulExpressionStatement", + "src": "28189:47:51" + }, + { + "nativeSrc": "28245:43:51", + "nodeType": "YulVariableDeclaration", + "src": "28245:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28275:5:51", + "nodeType": "YulIdentifier", + "src": "28275:5:51" + }, + { + "kind": "number", + "nativeSrc": "28282:4:51", + "nodeType": "YulLiteral", + "src": "28282:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28271:3:51", + "nodeType": "YulIdentifier", + "src": "28271:3:51" + }, + "nativeSrc": "28271:16:51", + "nodeType": "YulFunctionCall", + "src": "28271:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28265:5:51", + "nodeType": "YulIdentifier", + "src": "28265:5:51" + }, + "nativeSrc": "28265:23:51", + "nodeType": "YulFunctionCall", + "src": "28265:23:51" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "28249:12:51", + "nodeType": "YulTypedName", + "src": "28249:12:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "28316:12:51", + "nodeType": "YulIdentifier", + "src": "28316:12:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28334:3:51", + "nodeType": "YulIdentifier", + "src": "28334:3:51" + }, + { + "kind": "number", + "nativeSrc": "28339:4:51", + "nodeType": "YulLiteral", + "src": "28339:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28330:3:51", + "nodeType": "YulIdentifier", + "src": "28330:3:51" + }, + "nativeSrc": "28330:14:51", + "nodeType": "YulFunctionCall", + "src": "28330:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "28297:18:51", + "nodeType": "YulIdentifier", + "src": "28297:18:51" + }, + "nativeSrc": "28297:48:51", + "nodeType": "YulFunctionCall", + "src": "28297:48:51" + }, + "nativeSrc": "28297:48:51", + "nodeType": "YulExpressionStatement", + "src": "28297:48:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28365:3:51", + "nodeType": "YulIdentifier", + "src": "28365:3:51" + }, + { + "kind": "number", + "nativeSrc": "28370:4:51", + "nodeType": "YulLiteral", + "src": "28370:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28361:3:51", + "nodeType": "YulIdentifier", + "src": "28361:3:51" + }, + "nativeSrc": "28361:14:51", + "nodeType": "YulFunctionCall", + "src": "28361:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28387:5:51", + "nodeType": "YulIdentifier", + "src": "28387:5:51" + }, + { + "kind": "number", + "nativeSrc": "28394:4:51", + "nodeType": "YulLiteral", + "src": "28394:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28383:3:51", + "nodeType": "YulIdentifier", + "src": "28383:3:51" + }, + "nativeSrc": "28383:16:51", + "nodeType": "YulFunctionCall", + "src": "28383:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28377:5:51", + "nodeType": "YulIdentifier", + "src": "28377:5:51" + }, + "nativeSrc": "28377:23:51", + "nodeType": "YulFunctionCall", + "src": "28377:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28354:6:51", + "nodeType": "YulIdentifier", + "src": "28354:6:51" + }, + "nativeSrc": "28354:47:51", + "nodeType": "YulFunctionCall", + "src": "28354:47:51" + }, + "nativeSrc": "28354:47:51", + "nodeType": "YulExpressionStatement", + "src": "28354:47:51" + }, + { + "nativeSrc": "28410:45:51", + "nodeType": "YulVariableDeclaration", + "src": "28410:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28442:5:51", + "nodeType": "YulIdentifier", + "src": "28442:5:51" + }, + { + "kind": "number", + "nativeSrc": "28449:4:51", + "nodeType": "YulLiteral", + "src": "28449:4:51", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28438:3:51", + "nodeType": "YulIdentifier", + "src": "28438:3:51" + }, + "nativeSrc": "28438:16:51", + "nodeType": "YulFunctionCall", + "src": "28438:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28432:5:51", + "nodeType": "YulIdentifier", + "src": "28432:5:51" + }, + "nativeSrc": "28432:23:51", + "nodeType": "YulFunctionCall", + "src": "28432:23:51" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "28414:14:51", + "nodeType": "YulTypedName", + "src": "28414:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "28483:14:51", + "nodeType": "YulIdentifier", + "src": "28483:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28503:3:51", + "nodeType": "YulIdentifier", + "src": "28503:3:51" + }, + { + "kind": "number", + "nativeSrc": "28508:4:51", + "nodeType": "YulLiteral", + "src": "28508:4:51", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28499:3:51", + "nodeType": "YulIdentifier", + "src": "28499:3:51" + }, + "nativeSrc": "28499:14:51", + "nodeType": "YulFunctionCall", + "src": "28499:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "28464:18:51", + "nodeType": "YulIdentifier", + "src": "28464:18:51" + }, + "nativeSrc": "28464:50:51", + "nodeType": "YulFunctionCall", + "src": "28464:50:51" + }, + "nativeSrc": "28464:50:51", + "nodeType": "YulExpressionStatement", + "src": "28464:50:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28534:3:51", + "nodeType": "YulIdentifier", + "src": "28534:3:51" + }, + { + "kind": "number", + "nativeSrc": "28539:4:51", + "nodeType": "YulLiteral", + "src": "28539:4:51", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28530:3:51", + "nodeType": "YulIdentifier", + "src": "28530:3:51" + }, + "nativeSrc": "28530:14:51", + "nodeType": "YulFunctionCall", + "src": "28530:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28556:5:51", + "nodeType": "YulIdentifier", + "src": "28556:5:51" + }, + { + "kind": "number", + "nativeSrc": "28563:4:51", + "nodeType": "YulLiteral", + "src": "28563:4:51", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28552:3:51", + "nodeType": "YulIdentifier", + "src": "28552:3:51" + }, + "nativeSrc": "28552:16:51", + "nodeType": "YulFunctionCall", + "src": "28552:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28546:5:51", + "nodeType": "YulIdentifier", + "src": "28546:5:51" + }, + "nativeSrc": "28546:23:51", + "nodeType": "YulFunctionCall", + "src": "28546:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28523:6:51", + "nodeType": "YulIdentifier", + "src": "28523:6:51" + }, + "nativeSrc": "28523:47:51", + "nodeType": "YulFunctionCall", + "src": "28523:47:51" + }, + "nativeSrc": "28523:47:51", + "nodeType": "YulExpressionStatement", + "src": "28523:47:51" + }, + { + "nativeSrc": "28579:45:51", + "nodeType": "YulVariableDeclaration", + "src": "28579:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28611:5:51", + "nodeType": "YulIdentifier", + "src": "28611:5:51" + }, + { + "kind": "number", + "nativeSrc": "28618:4:51", + "nodeType": "YulLiteral", + "src": "28618:4:51", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28607:3:51", + "nodeType": "YulIdentifier", + "src": "28607:3:51" + }, + "nativeSrc": "28607:16:51", + "nodeType": "YulFunctionCall", + "src": "28607:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28601:5:51", + "nodeType": "YulIdentifier", + "src": "28601:5:51" + }, + "nativeSrc": "28601:23:51", + "nodeType": "YulFunctionCall", + "src": "28601:23:51" + }, + "variables": [ + { + "name": "memberValue0_2", + "nativeSrc": "28583:14:51", + "nodeType": "YulTypedName", + "src": "28583:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_2", + "nativeSrc": "28652:14:51", + "nodeType": "YulIdentifier", + "src": "28652:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28672:3:51", + "nodeType": "YulIdentifier", + "src": "28672:3:51" + }, + { + "kind": "number", + "nativeSrc": "28677:4:51", + "nodeType": "YulLiteral", + "src": "28677:4:51", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28668:3:51", + "nodeType": "YulIdentifier", + "src": "28668:3:51" + }, + "nativeSrc": "28668:14:51", + "nodeType": "YulFunctionCall", + "src": "28668:14:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "28633:18:51", + "nodeType": "YulIdentifier", + "src": "28633:18:51" + }, + "nativeSrc": "28633:50:51", + "nodeType": "YulFunctionCall", + "src": "28633:50:51" + }, + "nativeSrc": "28633:50:51", + "nodeType": "YulExpressionStatement", + "src": "28633:50:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28703:3:51", + "nodeType": "YulIdentifier", + "src": "28703:3:51" + }, + { + "kind": "number", + "nativeSrc": "28708:4:51", + "nodeType": "YulLiteral", + "src": "28708:4:51", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28699:3:51", + "nodeType": "YulIdentifier", + "src": "28699:3:51" + }, + "nativeSrc": "28699:14:51", + "nodeType": "YulFunctionCall", + "src": "28699:14:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28725:5:51", + "nodeType": "YulIdentifier", + "src": "28725:5:51" + }, + { + "kind": "number", + "nativeSrc": "28732:4:51", + "nodeType": "YulLiteral", + "src": "28732:4:51", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28721:3:51", + "nodeType": "YulIdentifier", + "src": "28721:3:51" + }, + "nativeSrc": "28721:16:51", + "nodeType": "YulFunctionCall", + "src": "28721:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28715:5:51", + "nodeType": "YulIdentifier", + "src": "28715:5:51" + }, + "nativeSrc": "28715:23:51", + "nodeType": "YulFunctionCall", + "src": "28715:23:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28692:6:51", + "nodeType": "YulIdentifier", + "src": "28692:6:51" + }, + "nativeSrc": "28692:47:51", + "nodeType": "YulFunctionCall", + "src": "28692:47:51" + }, + "nativeSrc": "28692:47:51", + "nodeType": "YulExpressionStatement", + "src": "28692:47:51" + }, + { + "nativeSrc": "28748:16:51", + "nodeType": "YulVariableDeclaration", + "src": "28748:16:51", + "value": { + "kind": "number", + "nativeSrc": "28758:6:51", + "nodeType": "YulLiteral", + "src": "28758:6:51", + "type": "", + "value": "0x0100" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "28752:2:51", + "nodeType": "YulTypedName", + "src": "28752:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28784:3:51", + "nodeType": "YulIdentifier", + "src": "28784:3:51" + }, + { + "name": "_2", + "nativeSrc": "28789:2:51", + "nodeType": "YulIdentifier", + "src": "28789:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28780:3:51", + "nodeType": "YulIdentifier", + "src": "28780:3:51" + }, + "nativeSrc": "28780:12:51", + "nodeType": "YulFunctionCall", + "src": "28780:12:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28804:5:51", + "nodeType": "YulIdentifier", + "src": "28804:5:51" + }, + { + "name": "_2", + "nativeSrc": "28811:2:51", + "nodeType": "YulIdentifier", + "src": "28811:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28800:3:51", + "nodeType": "YulIdentifier", + "src": "28800:3:51" + }, + "nativeSrc": "28800:14:51", + "nodeType": "YulFunctionCall", + "src": "28800:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28794:5:51", + "nodeType": "YulIdentifier", + "src": "28794:5:51" + }, + "nativeSrc": "28794:21:51", + "nodeType": "YulFunctionCall", + "src": "28794:21:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28773:6:51", + "nodeType": "YulIdentifier", + "src": "28773:6:51" + }, + "nativeSrc": "28773:43:51", + "nodeType": "YulFunctionCall", + "src": "28773:43:51" + }, + "nativeSrc": "28773:43:51", + "nodeType": "YulExpressionStatement", + "src": "28773:43:51" + }, + { + "nativeSrc": "28825:16:51", + "nodeType": "YulVariableDeclaration", + "src": "28825:16:51", + "value": { + "kind": "number", + "nativeSrc": "28835:6:51", + "nodeType": "YulLiteral", + "src": "28835:6:51", + "type": "", + "value": "0x0120" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "28829:2:51", + "nodeType": "YulTypedName", + "src": "28829:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28861:3:51", + "nodeType": "YulIdentifier", + "src": "28861:3:51" + }, + { + "name": "_3", + "nativeSrc": "28866:2:51", + "nodeType": "YulIdentifier", + "src": "28866:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28857:3:51", + "nodeType": "YulIdentifier", + "src": "28857:3:51" + }, + "nativeSrc": "28857:12:51", + "nodeType": "YulFunctionCall", + "src": "28857:12:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28881:5:51", + "nodeType": "YulIdentifier", + "src": "28881:5:51" + }, + { + "name": "_3", + "nativeSrc": "28888:2:51", + "nodeType": "YulIdentifier", + "src": "28888:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28877:3:51", + "nodeType": "YulIdentifier", + "src": "28877:3:51" + }, + "nativeSrc": "28877:14:51", + "nodeType": "YulFunctionCall", + "src": "28877:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28871:5:51", + "nodeType": "YulIdentifier", + "src": "28871:5:51" + }, + "nativeSrc": "28871:21:51", + "nodeType": "YulFunctionCall", + "src": "28871:21:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28850:6:51", + "nodeType": "YulIdentifier", + "src": "28850:6:51" + }, + "nativeSrc": "28850:43:51", + "nodeType": "YulFunctionCall", + "src": "28850:43:51" + }, + "nativeSrc": "28850:43:51", + "nodeType": "YulExpressionStatement", + "src": "28850:43:51" + }, + { + "nativeSrc": "28902:16:51", + "nodeType": "YulVariableDeclaration", + "src": "28902:16:51", + "value": { + "kind": "number", + "nativeSrc": "28912:6:51", + "nodeType": "YulLiteral", + "src": "28912:6:51", + "type": "", + "value": "0x0140" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "28906:2:51", + "nodeType": "YulTypedName", + "src": "28906:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "28938:3:51", + "nodeType": "YulIdentifier", + "src": "28938:3:51" + }, + { + "name": "_4", + "nativeSrc": "28943:2:51", + "nodeType": "YulIdentifier", + "src": "28943:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28934:3:51", + "nodeType": "YulIdentifier", + "src": "28934:3:51" + }, + "nativeSrc": "28934:12:51", + "nodeType": "YulFunctionCall", + "src": "28934:12:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28958:5:51", + "nodeType": "YulIdentifier", + "src": "28958:5:51" + }, + { + "name": "_4", + "nativeSrc": "28965:2:51", + "nodeType": "YulIdentifier", + "src": "28965:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28954:3:51", + "nodeType": "YulIdentifier", + "src": "28954:3:51" + }, + "nativeSrc": "28954:14:51", + "nodeType": "YulFunctionCall", + "src": "28954:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28948:5:51", + "nodeType": "YulIdentifier", + "src": "28948:5:51" + }, + "nativeSrc": "28948:21:51", + "nodeType": "YulFunctionCall", + "src": "28948:21:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28927:6:51", + "nodeType": "YulIdentifier", + "src": "28927:6:51" + }, + "nativeSrc": "28927:43:51", + "nodeType": "YulFunctionCall", + "src": "28927:43:51" + }, + "nativeSrc": "28927:43:51", + "nodeType": "YulExpressionStatement", + "src": "28927:43:51" + }, + { + "nativeSrc": "28979:16:51", + "nodeType": "YulVariableDeclaration", + "src": "28979:16:51", + "value": { + "kind": "number", + "nativeSrc": "28989:6:51", + "nodeType": "YulLiteral", + "src": "28989:6:51", + "type": "", + "value": "0x0160" + }, + "variables": [ + { + "name": "_5", + "nativeSrc": "28983:2:51", + "nodeType": "YulTypedName", + "src": "28983:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "29004:43:51", + "nodeType": "YulVariableDeclaration", + "src": "29004:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29036:5:51", + "nodeType": "YulIdentifier", + "src": "29036:5:51" + }, + { + "name": "_5", + "nativeSrc": "29043:2:51", + "nodeType": "YulIdentifier", + "src": "29043:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29032:3:51", + "nodeType": "YulIdentifier", + "src": "29032:3:51" + }, + "nativeSrc": "29032:14:51", + "nodeType": "YulFunctionCall", + "src": "29032:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29026:5:51", + "nodeType": "YulIdentifier", + "src": "29026:5:51" + }, + "nativeSrc": "29026:21:51", + "nodeType": "YulFunctionCall", + "src": "29026:21:51" + }, + "variables": [ + { + "name": "memberValue0_3", + "nativeSrc": "29008:14:51", + "nodeType": "YulTypedName", + "src": "29008:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_3", + "nativeSrc": "29075:14:51", + "nodeType": "YulIdentifier", + "src": "29075:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29095:3:51", + "nodeType": "YulIdentifier", + "src": "29095:3:51" + }, + { + "name": "_5", + "nativeSrc": "29100:2:51", + "nodeType": "YulIdentifier", + "src": "29100:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29091:3:51", + "nodeType": "YulIdentifier", + "src": "29091:3:51" + }, + "nativeSrc": "29091:12:51", + "nodeType": "YulFunctionCall", + "src": "29091:12:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "29056:18:51", + "nodeType": "YulIdentifier", + "src": "29056:18:51" + }, + "nativeSrc": "29056:48:51", + "nodeType": "YulFunctionCall", + "src": "29056:48:51" + }, + "nativeSrc": "29056:48:51", + "nodeType": "YulExpressionStatement", + "src": "29056:48:51" + }, + { + "nativeSrc": "29113:16:51", + "nodeType": "YulVariableDeclaration", + "src": "29113:16:51", + "value": { + "kind": "number", + "nativeSrc": "29123:6:51", + "nodeType": "YulLiteral", + "src": "29123:6:51", + "type": "", + "value": "0x0180" + }, + "variables": [ + { + "name": "_6", + "nativeSrc": "29117:2:51", + "nodeType": "YulTypedName", + "src": "29117:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "29138:43:51", + "nodeType": "YulVariableDeclaration", + "src": "29138:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29170:5:51", + "nodeType": "YulIdentifier", + "src": "29170:5:51" + }, + { + "name": "_6", + "nativeSrc": "29177:2:51", + "nodeType": "YulIdentifier", + "src": "29177:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29166:3:51", + "nodeType": "YulIdentifier", + "src": "29166:3:51" + }, + "nativeSrc": "29166:14:51", + "nodeType": "YulFunctionCall", + "src": "29166:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29160:5:51", + "nodeType": "YulIdentifier", + "src": "29160:5:51" + }, + "nativeSrc": "29160:21:51", + "nodeType": "YulFunctionCall", + "src": "29160:21:51" + }, + "variables": [ + { + "name": "memberValue0_4", + "nativeSrc": "29142:14:51", + "nodeType": "YulTypedName", + "src": "29142:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_4", + "nativeSrc": "29209:14:51", + "nodeType": "YulIdentifier", + "src": "29209:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29229:3:51", + "nodeType": "YulIdentifier", + "src": "29229:3:51" + }, + { + "name": "_6", + "nativeSrc": "29234:2:51", + "nodeType": "YulIdentifier", + "src": "29234:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29225:3:51", + "nodeType": "YulIdentifier", + "src": "29225:3:51" + }, + "nativeSrc": "29225:12:51", + "nodeType": "YulFunctionCall", + "src": "29225:12:51" + } + ], + "functionName": { + "name": "abi_encode_address", + "nativeSrc": "29190:18:51", + "nodeType": "YulIdentifier", + "src": "29190:18:51" + }, + "nativeSrc": "29190:48:51", + "nodeType": "YulFunctionCall", + "src": "29190:48:51" + }, + "nativeSrc": "29190:48:51", + "nodeType": "YulExpressionStatement", + "src": "29190:48:51" + }, + { + "nativeSrc": "29247:16:51", + "nodeType": "YulVariableDeclaration", + "src": "29247:16:51", + "value": { + "kind": "number", + "nativeSrc": "29257:6:51", + "nodeType": "YulLiteral", + "src": "29257:6:51", + "type": "", + "value": "0x01a0" + }, + "variables": [ + { + "name": "_7", + "nativeSrc": "29251:2:51", + "nodeType": "YulTypedName", + "src": "29251:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "29272:43:51", + "nodeType": "YulVariableDeclaration", + "src": "29272:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29304:5:51", + "nodeType": "YulIdentifier", + "src": "29304:5:51" + }, + { + "name": "_7", + "nativeSrc": "29311:2:51", + "nodeType": "YulIdentifier", + "src": "29311:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29300:3:51", + "nodeType": "YulIdentifier", + "src": "29300:3:51" + }, + "nativeSrc": "29300:14:51", + "nodeType": "YulFunctionCall", + "src": "29300:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29294:5:51", + "nodeType": "YulIdentifier", + "src": "29294:5:51" + }, + "nativeSrc": "29294:21:51", + "nodeType": "YulFunctionCall", + "src": "29294:21:51" + }, + "variables": [ + { + "name": "memberValue0_5", + "nativeSrc": "29276:14:51", + "nodeType": "YulTypedName", + "src": "29276:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29335:3:51", + "nodeType": "YulIdentifier", + "src": "29335:3:51" + }, + { + "name": "_7", + "nativeSrc": "29340:2:51", + "nodeType": "YulIdentifier", + "src": "29340:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29331:3:51", + "nodeType": "YulIdentifier", + "src": "29331:3:51" + }, + "nativeSrc": "29331:12:51", + "nodeType": "YulFunctionCall", + "src": "29331:12:51" + }, + { + "name": "_1", + "nativeSrc": "29345:2:51", + "nodeType": "YulIdentifier", + "src": "29345:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29324:6:51", + "nodeType": "YulIdentifier", + "src": "29324:6:51" + }, + "nativeSrc": "29324:24:51", + "nodeType": "YulFunctionCall", + "src": "29324:24:51" + }, + "nativeSrc": "29324:24:51", + "nodeType": "YulExpressionStatement", + "src": "29324:24:51" + }, + { + "nativeSrc": "29357:59:51", + "nodeType": "YulVariableDeclaration", + "src": "29357:59:51", + "value": { + "arguments": [ + { + "name": "memberValue0_5", + "nativeSrc": "29387:14:51", + "nodeType": "YulIdentifier", + "src": "29387:14:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29407:3:51", + "nodeType": "YulIdentifier", + "src": "29407:3:51" + }, + { + "name": "_1", + "nativeSrc": "29412:2:51", + "nodeType": "YulIdentifier", + "src": "29412:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29403:3:51", + "nodeType": "YulIdentifier", + "src": "29403:3:51" + }, + "nativeSrc": "29403:12:51", + "nodeType": "YulFunctionCall", + "src": "29403:12:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "29369:17:51", + "nodeType": "YulIdentifier", + "src": "29369:17:51" + }, + "nativeSrc": "29369:47:51", + "nodeType": "YulFunctionCall", + "src": "29369:47:51" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "29361:4:51", + "nodeType": "YulTypedName", + "src": "29361:4:51", + "type": "" + } + ] + }, + { + "nativeSrc": "29425:16:51", + "nodeType": "YulVariableDeclaration", + "src": "29425:16:51", + "value": { + "kind": "number", + "nativeSrc": "29435:6:51", + "nodeType": "YulLiteral", + "src": "29435:6:51", + "type": "", + "value": "0x01c0" + }, + "variables": [ + { + "name": "_8", + "nativeSrc": "29429:2:51", + "nodeType": "YulTypedName", + "src": "29429:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29461:3:51", + "nodeType": "YulIdentifier", + "src": "29461:3:51" + }, + { + "name": "_8", + "nativeSrc": "29466:2:51", + "nodeType": "YulIdentifier", + "src": "29466:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29457:3:51", + "nodeType": "YulIdentifier", + "src": "29457:3:51" + }, + "nativeSrc": "29457:12:51", + "nodeType": "YulFunctionCall", + "src": "29457:12:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29481:5:51", + "nodeType": "YulIdentifier", + "src": "29481:5:51" + }, + { + "name": "_8", + "nativeSrc": "29488:2:51", + "nodeType": "YulIdentifier", + "src": "29488:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29477:3:51", + "nodeType": "YulIdentifier", + "src": "29477:3:51" + }, + "nativeSrc": "29477:14:51", + "nodeType": "YulFunctionCall", + "src": "29477:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29471:5:51", + "nodeType": "YulIdentifier", + "src": "29471:5:51" + }, + "nativeSrc": "29471:21:51", + "nodeType": "YulFunctionCall", + "src": "29471:21:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29450:6:51", + "nodeType": "YulIdentifier", + "src": "29450:6:51" + }, + "nativeSrc": "29450:43:51", + "nodeType": "YulFunctionCall", + "src": "29450:43:51" + }, + "nativeSrc": "29450:43:51", + "nodeType": "YulExpressionStatement", + "src": "29450:43:51" + }, + { + "nativeSrc": "29502:16:51", + "nodeType": "YulVariableDeclaration", + "src": "29502:16:51", + "value": { + "kind": "number", + "nativeSrc": "29512:6:51", + "nodeType": "YulLiteral", + "src": "29512:6:51", + "type": "", + "value": "0x01e0" + }, + "variables": [ + { + "name": "_9", + "nativeSrc": "29506:2:51", + "nodeType": "YulTypedName", + "src": "29506:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "29527:43:51", + "nodeType": "YulVariableDeclaration", + "src": "29527:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "29559:5:51", + "nodeType": "YulIdentifier", + "src": "29559:5:51" + }, + { + "name": "_9", + "nativeSrc": "29566:2:51", + "nodeType": "YulIdentifier", + "src": "29566:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29555:3:51", + "nodeType": "YulIdentifier", + "src": "29555:3:51" + }, + "nativeSrc": "29555:14:51", + "nodeType": "YulFunctionCall", + "src": "29555:14:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "29549:5:51", + "nodeType": "YulIdentifier", + "src": "29549:5:51" + }, + "nativeSrc": "29549:21:51", + "nodeType": "YulFunctionCall", + "src": "29549:21:51" + }, + "variables": [ + { + "name": "memberValue0_6", + "nativeSrc": "29531:14:51", + "nodeType": "YulTypedName", + "src": "29531:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29590:3:51", + "nodeType": "YulIdentifier", + "src": "29590:3:51" + }, + { + "name": "_9", + "nativeSrc": "29595:2:51", + "nodeType": "YulIdentifier", + "src": "29595:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29586:3:51", + "nodeType": "YulIdentifier", + "src": "29586:3:51" + }, + "nativeSrc": "29586:12:51", + "nodeType": "YulFunctionCall", + "src": "29586:12:51" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "29604:4:51", + "nodeType": "YulIdentifier", + "src": "29604:4:51" + }, + { + "name": "pos", + "nativeSrc": "29610:3:51", + "nodeType": "YulIdentifier", + "src": "29610:3:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29600:3:51", + "nodeType": "YulIdentifier", + "src": "29600:3:51" + }, + "nativeSrc": "29600:14:51", + "nodeType": "YulFunctionCall", + "src": "29600:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29579:6:51", + "nodeType": "YulIdentifier", + "src": "29579:6:51" + }, + "nativeSrc": "29579:36:51", + "nodeType": "YulFunctionCall", + "src": "29579:36:51" + }, + "nativeSrc": "29579:36:51", + "nodeType": "YulExpressionStatement", + "src": "29579:36:51" + }, + { + "nativeSrc": "29624:46:51", + "nodeType": "YulAssignment", + "src": "29624:46:51", + "value": { + "arguments": [ + { + "name": "memberValue0_6", + "nativeSrc": "29649:14:51", + "nodeType": "YulIdentifier", + "src": "29649:14:51" + }, + { + "name": "tail", + "nativeSrc": "29665:4:51", + "nodeType": "YulIdentifier", + "src": "29665:4:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "29631:17:51", + "nodeType": "YulIdentifier", + "src": "29631:17:51" + }, + "nativeSrc": "29631:39:51", + "nodeType": "YulFunctionCall", + "src": "29631:39:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "29624:3:51", + "nodeType": "YulIdentifier", + "src": "29624:3:51" + } + ] + } + ] + }, + "name": "abi_encode_struct_RequestOrder", + "nativeSrc": "28045:1631:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "28085:5:51", + "nodeType": "YulTypedName", + "src": "28085:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "28092:3:51", + "nodeType": "YulTypedName", + "src": "28092:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "28100:3:51", + "nodeType": "YulTypedName", + "src": "28100:3:51", + "type": "" + } + ], + "src": "28045:1631:51" + }, + { + "body": { + "nativeSrc": "30114:502:51", + "nodeType": "YulBlock", + "src": "30114:502:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30131:9:51", + "nodeType": "YulIdentifier", + "src": "30131:9:51" + }, + { + "kind": "number", + "nativeSrc": "30142:3:51", + "nodeType": "YulLiteral", + "src": "30142:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30124:6:51", + "nodeType": "YulIdentifier", + "src": "30124:6:51" + }, + "nativeSrc": "30124:22:51", + "nodeType": "YulFunctionCall", + "src": "30124:22:51" + }, + "nativeSrc": "30124:22:51", + "nodeType": "YulExpressionStatement", + "src": "30124:22:51" + }, + { + "nativeSrc": "30155:69:51", + "nodeType": "YulVariableDeclaration", + "src": "30155:69:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "30196:6:51", + "nodeType": "YulIdentifier", + "src": "30196:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30208:9:51", + "nodeType": "YulIdentifier", + "src": "30208:9:51" + }, + { + "kind": "number", + "nativeSrc": "30219:3:51", + "nodeType": "YulLiteral", + "src": "30219:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30204:3:51", + "nodeType": "YulIdentifier", + "src": "30204:3:51" + }, + "nativeSrc": "30204:19:51", + "nodeType": "YulFunctionCall", + "src": "30204:19:51" + } + ], + "functionName": { + "name": "abi_encode_struct_AppOrder", + "nativeSrc": "30169:26:51", + "nodeType": "YulIdentifier", + "src": "30169:26:51" + }, + "nativeSrc": "30169:55:51", + "nodeType": "YulFunctionCall", + "src": "30169:55:51" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "30159:6:51", + "nodeType": "YulTypedName", + "src": "30159:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30244:9:51", + "nodeType": "YulIdentifier", + "src": "30244:9:51" + }, + { + "kind": "number", + "nativeSrc": "30255:2:51", + "nodeType": "YulLiteral", + "src": "30255:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30240:3:51", + "nodeType": "YulIdentifier", + "src": "30240:3:51" + }, + "nativeSrc": "30240:18:51", + "nodeType": "YulFunctionCall", + "src": "30240:18:51" + }, + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "30264:6:51", + "nodeType": "YulIdentifier", + "src": "30264:6:51" + }, + { + "name": "headStart", + "nativeSrc": "30272:9:51", + "nodeType": "YulIdentifier", + "src": "30272:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30260:3:51", + "nodeType": "YulIdentifier", + "src": "30260:3:51" + }, + "nativeSrc": "30260:22:51", + "nodeType": "YulFunctionCall", + "src": "30260:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30233:6:51", + "nodeType": "YulIdentifier", + "src": "30233:6:51" + }, + "nativeSrc": "30233:50:51", + "nodeType": "YulFunctionCall", + "src": "30233:50:51" + }, + "nativeSrc": "30233:50:51", + "nodeType": "YulExpressionStatement", + "src": "30233:50:51" + }, + { + "nativeSrc": "30292:56:51", + "nodeType": "YulVariableDeclaration", + "src": "30292:56:51", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "30333:6:51", + "nodeType": "YulIdentifier", + "src": "30333:6:51" + }, + { + "name": "tail_1", + "nativeSrc": "30341:6:51", + "nodeType": "YulIdentifier", + "src": "30341:6:51" + } + ], + "functionName": { + "name": "abi_encode_struct_AppOrder", + "nativeSrc": "30306:26:51", + "nodeType": "YulIdentifier", + "src": "30306:26:51" + }, + "nativeSrc": "30306:42:51", + "nodeType": "YulFunctionCall", + "src": "30306:42:51" + }, + "variables": [ + { + "name": "tail_2", + "nativeSrc": "30296:6:51", + "nodeType": "YulTypedName", + "src": "30296:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30368:9:51", + "nodeType": "YulIdentifier", + "src": "30368:9:51" + }, + { + "kind": "number", + "nativeSrc": "30379:2:51", + "nodeType": "YulLiteral", + "src": "30379:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30364:3:51", + "nodeType": "YulIdentifier", + "src": "30364:3:51" + }, + "nativeSrc": "30364:18:51", + "nodeType": "YulFunctionCall", + "src": "30364:18:51" + }, + { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "30388:6:51", + "nodeType": "YulIdentifier", + "src": "30388:6:51" + }, + { + "name": "headStart", + "nativeSrc": "30396:9:51", + "nodeType": "YulIdentifier", + "src": "30396:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30384:3:51", + "nodeType": "YulIdentifier", + "src": "30384:3:51" + }, + "nativeSrc": "30384:22:51", + "nodeType": "YulFunctionCall", + "src": "30384:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30357:6:51", + "nodeType": "YulIdentifier", + "src": "30357:6:51" + }, + "nativeSrc": "30357:50:51", + "nodeType": "YulFunctionCall", + "src": "30357:50:51" + }, + "nativeSrc": "30357:50:51", + "nodeType": "YulExpressionStatement", + "src": "30357:50:51" + }, + { + "nativeSrc": "30416:72:51", + "nodeType": "YulVariableDeclaration", + "src": "30416:72:51", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30473:6:51", + "nodeType": "YulIdentifier", + "src": "30473:6:51" + }, + { + "name": "tail_2", + "nativeSrc": "30481:6:51", + "nodeType": "YulIdentifier", + "src": "30481:6:51" + } + ], + "functionName": { + "name": "abi_encode_struct_WorkerpoolOrder_calldata", + "nativeSrc": "30430:42:51", + "nodeType": "YulIdentifier", + "src": "30430:42:51" + }, + "nativeSrc": "30430:58:51", + "nodeType": "YulFunctionCall", + "src": "30430:58:51" + }, + "variables": [ + { + "name": "tail_3", + "nativeSrc": "30420:6:51", + "nodeType": "YulTypedName", + "src": "30420:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30508:9:51", + "nodeType": "YulIdentifier", + "src": "30508:9:51" + }, + { + "kind": "number", + "nativeSrc": "30519:2:51", + "nodeType": "YulLiteral", + "src": "30519:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30504:3:51", + "nodeType": "YulIdentifier", + "src": "30504:3:51" + }, + "nativeSrc": "30504:18:51", + "nodeType": "YulFunctionCall", + "src": "30504:18:51" + }, + { + "arguments": [ + { + "name": "tail_3", + "nativeSrc": "30528:6:51", + "nodeType": "YulIdentifier", + "src": "30528:6:51" + }, + { + "name": "headStart", + "nativeSrc": "30536:9:51", + "nodeType": "YulIdentifier", + "src": "30536:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30524:3:51", + "nodeType": "YulIdentifier", + "src": "30524:3:51" + }, + "nativeSrc": "30524:22:51", + "nodeType": "YulFunctionCall", + "src": "30524:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30497:6:51", + "nodeType": "YulIdentifier", + "src": "30497:6:51" + }, + "nativeSrc": "30497:50:51", + "nodeType": "YulFunctionCall", + "src": "30497:50:51" + }, + "nativeSrc": "30497:50:51", + "nodeType": "YulExpressionStatement", + "src": "30497:50:51" + }, + { + "nativeSrc": "30556:54:51", + "nodeType": "YulAssignment", + "src": "30556:54:51", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "30595:6:51", + "nodeType": "YulIdentifier", + "src": "30595:6:51" + }, + { + "name": "tail_3", + "nativeSrc": "30603:6:51", + "nodeType": "YulIdentifier", + "src": "30603:6:51" + } + ], + "functionName": { + "name": "abi_encode_struct_RequestOrder", + "nativeSrc": "30564:30:51", + "nodeType": "YulIdentifier", + "src": "30564:30:51" + }, + "nativeSrc": "30564:46:51", + "nodeType": "YulFunctionCall", + "src": "30564:46:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30556:4:51", + "nodeType": "YulIdentifier", + "src": "30556:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_AppOrder_$11461_memory_ptr_t_struct$_DatasetOrder_$11480_memory_ptr_t_struct$_WorkerpoolOrder_$11503_calldata_ptr_t_struct$_RequestOrder_$11536_memory_ptr__to_t_struct$_AppOrder_$11461_memory_ptr_t_struct$_DatasetOrder_$11480_memory_ptr_t_struct$_WorkerpoolOrder_$11503_memory_ptr_t_struct$_RequestOrder_$11536_memory_ptr__fromStack_reversed", + "nativeSrc": "29681:935:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30059:9:51", + "nodeType": "YulTypedName", + "src": "30059:9:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "30070:6:51", + "nodeType": "YulTypedName", + "src": "30070:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "30078:6:51", + "nodeType": "YulTypedName", + "src": "30078:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "30086:6:51", + "nodeType": "YulTypedName", + "src": "30086:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "30094:6:51", + "nodeType": "YulTypedName", + "src": "30094:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "30105:4:51", + "nodeType": "YulTypedName", + "src": "30105:4:51", + "type": "" + } + ], + "src": "29681:935:51" + }, + { + "body": { + "nativeSrc": "30702:103:51", + "nodeType": "YulBlock", + "src": "30702:103:51", + "statements": [ + { + "body": { + "nativeSrc": "30748:16:51", + "nodeType": "YulBlock", + "src": "30748:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30757:1:51", + "nodeType": "YulLiteral", + "src": "30757:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30760:1:51", + "nodeType": "YulLiteral", + "src": "30760:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "30750:6:51", + "nodeType": "YulIdentifier", + "src": "30750:6:51" + }, + "nativeSrc": "30750:12:51", + "nodeType": "YulFunctionCall", + "src": "30750:12:51" + }, + "nativeSrc": "30750:12:51", + "nodeType": "YulExpressionStatement", + "src": "30750:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "30723:7:51", + "nodeType": "YulIdentifier", + "src": "30723:7:51" + }, + { + "name": "headStart", + "nativeSrc": "30732:9:51", + "nodeType": "YulIdentifier", + "src": "30732:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30719:3:51", + "nodeType": "YulIdentifier", + "src": "30719:3:51" + }, + "nativeSrc": "30719:23:51", + "nodeType": "YulFunctionCall", + "src": "30719:23:51" + }, + { + "kind": "number", + "nativeSrc": "30744:2:51", + "nodeType": "YulLiteral", + "src": "30744:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "30715:3:51", + "nodeType": "YulIdentifier", + "src": "30715:3:51" + }, + "nativeSrc": "30715:32:51", + "nodeType": "YulFunctionCall", + "src": "30715:32:51" + }, + "nativeSrc": "30712:52:51", + "nodeType": "YulIf", + "src": "30712:52:51" + }, + { + "nativeSrc": "30773:26:51", + "nodeType": "YulAssignment", + "src": "30773:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30789:9:51", + "nodeType": "YulIdentifier", + "src": "30789:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "30783:5:51", + "nodeType": "YulIdentifier", + "src": "30783:5:51" + }, + "nativeSrc": "30783:16:51", + "nodeType": "YulFunctionCall", + "src": "30783:16:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "30773:6:51", + "nodeType": "YulIdentifier", + "src": "30773:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32_fromMemory", + "nativeSrc": "30621:184:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30668:9:51", + "nodeType": "YulTypedName", + "src": "30668:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "30679:7:51", + "nodeType": "YulTypedName", + "src": "30679:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "30691:6:51", + "nodeType": "YulTypedName", + "src": "30691:6:51", + "type": "" + } + ], + "src": "30621:184:51" + }, + { + "body": { + "nativeSrc": "30842:95:51", + "nodeType": "YulBlock", + "src": "30842:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30859:1:51", + "nodeType": "YulLiteral", + "src": "30859:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30866:3:51", + "nodeType": "YulLiteral", + "src": "30866:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "30871:10:51", + "nodeType": "YulLiteral", + "src": "30871:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30862:3:51", + "nodeType": "YulIdentifier", + "src": "30862:3:51" + }, + "nativeSrc": "30862:20:51", + "nodeType": "YulFunctionCall", + "src": "30862:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30852:6:51", + "nodeType": "YulIdentifier", + "src": "30852:6:51" + }, + "nativeSrc": "30852:31:51", + "nodeType": "YulFunctionCall", + "src": "30852:31:51" + }, + "nativeSrc": "30852:31:51", + "nodeType": "YulExpressionStatement", + "src": "30852:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30899:1:51", + "nodeType": "YulLiteral", + "src": "30899:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "30902:4:51", + "nodeType": "YulLiteral", + "src": "30902:4:51", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30892:6:51", + "nodeType": "YulIdentifier", + "src": "30892:6:51" + }, + "nativeSrc": "30892:15:51", + "nodeType": "YulFunctionCall", + "src": "30892:15:51" + }, + "nativeSrc": "30892:15:51", + "nodeType": "YulExpressionStatement", + "src": "30892:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30923:1:51", + "nodeType": "YulLiteral", + "src": "30923:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30926:4:51", + "nodeType": "YulLiteral", + "src": "30926:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "30916:6:51", + "nodeType": "YulIdentifier", + "src": "30916:6:51" + }, + "nativeSrc": "30916:15:51", + "nodeType": "YulFunctionCall", + "src": "30916:15:51" + }, + "nativeSrc": "30916:15:51", + "nodeType": "YulExpressionStatement", + "src": "30916:15:51" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "30810:127:51", + "nodeType": "YulFunctionDefinition", + "src": "30810:127:51" + }, + { + "body": { + "nativeSrc": "30989:159:51", + "nodeType": "YulBlock", + "src": "30989:159:51", + "statements": [ + { + "body": { + "nativeSrc": "31031:111:51", + "nodeType": "YulBlock", + "src": "31031:111:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31052:1:51", + "nodeType": "YulLiteral", + "src": "31052:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31059:3:51", + "nodeType": "YulLiteral", + "src": "31059:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "31064:10:51", + "nodeType": "YulLiteral", + "src": "31064:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "31055:3:51", + "nodeType": "YulIdentifier", + "src": "31055:3:51" + }, + "nativeSrc": "31055:20:51", + "nodeType": "YulFunctionCall", + "src": "31055:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31045:6:51", + "nodeType": "YulIdentifier", + "src": "31045:6:51" + }, + "nativeSrc": "31045:31:51", + "nodeType": "YulFunctionCall", + "src": "31045:31:51" + }, + "nativeSrc": "31045:31:51", + "nodeType": "YulExpressionStatement", + "src": "31045:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31096:1:51", + "nodeType": "YulLiteral", + "src": "31096:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "31099:4:51", + "nodeType": "YulLiteral", + "src": "31099:4:51", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31089:6:51", + "nodeType": "YulIdentifier", + "src": "31089:6:51" + }, + "nativeSrc": "31089:15:51", + "nodeType": "YulFunctionCall", + "src": "31089:15:51" + }, + "nativeSrc": "31089:15:51", + "nodeType": "YulExpressionStatement", + "src": "31089:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31124:1:51", + "nodeType": "YulLiteral", + "src": "31124:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "31127:4:51", + "nodeType": "YulLiteral", + "src": "31127:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "31117:6:51", + "nodeType": "YulIdentifier", + "src": "31117:6:51" + }, + "nativeSrc": "31117:15:51", + "nodeType": "YulFunctionCall", + "src": "31117:15:51" + }, + "nativeSrc": "31117:15:51", + "nodeType": "YulExpressionStatement", + "src": "31117:15:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "31012:5:51", + "nodeType": "YulIdentifier", + "src": "31012:5:51" + }, + { + "kind": "number", + "nativeSrc": "31019:1:51", + "nodeType": "YulLiteral", + "src": "31019:1:51", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "31009:2:51", + "nodeType": "YulIdentifier", + "src": "31009:2:51" + }, + "nativeSrc": "31009:12:51", + "nodeType": "YulFunctionCall", + "src": "31009:12:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "31002:6:51", + "nodeType": "YulIdentifier", + "src": "31002:6:51" + }, + "nativeSrc": "31002:20:51", + "nodeType": "YulFunctionCall", + "src": "31002:20:51" + }, + "nativeSrc": "30999:143:51", + "nodeType": "YulIf", + "src": "30999:143:51" + } + ] + }, + "name": "validator_assert_enum_Mode", + "nativeSrc": "30942:206:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "30978:5:51", + "nodeType": "YulTypedName", + "src": "30978:5:51", + "type": "" + } + ], + "src": "30942:206:51" + }, + { + "body": { + "nativeSrc": "31318:231:51", + "nodeType": "YulBlock", + "src": "31318:231:51", + "statements": [ + { + "nativeSrc": "31328:26:51", + "nodeType": "YulAssignment", + "src": "31328:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31340:9:51", + "nodeType": "YulIdentifier", + "src": "31340:9:51" + }, + { + "kind": "number", + "nativeSrc": "31351:2:51", + "nodeType": "YulLiteral", + "src": "31351:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31336:3:51", + "nodeType": "YulIdentifier", + "src": "31336:3:51" + }, + "nativeSrc": "31336:18:51", + "nodeType": "YulFunctionCall", + "src": "31336:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31328:4:51", + "nodeType": "YulIdentifier", + "src": "31328:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31370:9:51", + "nodeType": "YulIdentifier", + "src": "31370:9:51" + }, + { + "name": "value0", + "nativeSrc": "31381:6:51", + "nodeType": "YulIdentifier", + "src": "31381:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31363:6:51", + "nodeType": "YulIdentifier", + "src": "31363:6:51" + }, + "nativeSrc": "31363:25:51", + "nodeType": "YulFunctionCall", + "src": "31363:25:51" + }, + "nativeSrc": "31363:25:51", + "nodeType": "YulExpressionStatement", + "src": "31363:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31408:9:51", + "nodeType": "YulIdentifier", + "src": "31408:9:51" + }, + { + "kind": "number", + "nativeSrc": "31419:2:51", + "nodeType": "YulLiteral", + "src": "31419:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31404:3:51", + "nodeType": "YulIdentifier", + "src": "31404:3:51" + }, + "nativeSrc": "31404:18:51", + "nodeType": "YulFunctionCall", + "src": "31404:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "31428:6:51", + "nodeType": "YulIdentifier", + "src": "31428:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31444:3:51", + "nodeType": "YulLiteral", + "src": "31444:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "31449:1:51", + "nodeType": "YulLiteral", + "src": "31449:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "31440:3:51", + "nodeType": "YulIdentifier", + "src": "31440:3:51" + }, + "nativeSrc": "31440:11:51", + "nodeType": "YulFunctionCall", + "src": "31440:11:51" + }, + { + "kind": "number", + "nativeSrc": "31453:1:51", + "nodeType": "YulLiteral", + "src": "31453:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31436:3:51", + "nodeType": "YulIdentifier", + "src": "31436:3:51" + }, + "nativeSrc": "31436:19:51", + "nodeType": "YulFunctionCall", + "src": "31436:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "31424:3:51", + "nodeType": "YulIdentifier", + "src": "31424:3:51" + }, + "nativeSrc": "31424:32:51", + "nodeType": "YulFunctionCall", + "src": "31424:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31397:6:51", + "nodeType": "YulIdentifier", + "src": "31397:6:51" + }, + "nativeSrc": "31397:60:51", + "nodeType": "YulFunctionCall", + "src": "31397:60:51" + }, + "nativeSrc": "31397:60:51", + "nodeType": "YulExpressionStatement", + "src": "31397:60:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "31493:6:51", + "nodeType": "YulIdentifier", + "src": "31493:6:51" + } + ], + "functionName": { + "name": "validator_assert_enum_Mode", + "nativeSrc": "31466:26:51", + "nodeType": "YulIdentifier", + "src": "31466:26:51" + }, + "nativeSrc": "31466:34:51", + "nodeType": "YulFunctionCall", + "src": "31466:34:51" + }, + "nativeSrc": "31466:34:51", + "nodeType": "YulExpressionStatement", + "src": "31466:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31520:9:51", + "nodeType": "YulIdentifier", + "src": "31520:9:51" + }, + { + "kind": "number", + "nativeSrc": "31531:2:51", + "nodeType": "YulLiteral", + "src": "31531:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31516:3:51", + "nodeType": "YulIdentifier", + "src": "31516:3:51" + }, + "nativeSrc": "31516:18:51", + "nodeType": "YulFunctionCall", + "src": "31516:18:51" + }, + { + "name": "value2", + "nativeSrc": "31536:6:51", + "nodeType": "YulIdentifier", + "src": "31536:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31509:6:51", + "nodeType": "YulIdentifier", + "src": "31509:6:51" + }, + "nativeSrc": "31509:34:51", + "nodeType": "YulFunctionCall", + "src": "31509:34:51" + }, + "nativeSrc": "31509:34:51", + "nodeType": "YulExpressionStatement", + "src": "31509:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_address_t_enum$_Mode_$11261__to_t_bytes32_t_address_t_uint8__fromStack_reversed", + "nativeSrc": "31153:396:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31271:9:51", + "nodeType": "YulTypedName", + "src": "31271:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "31282:6:51", + "nodeType": "YulTypedName", + "src": "31282:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31290:6:51", + "nodeType": "YulTypedName", + "src": "31290:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31298:6:51", + "nodeType": "YulTypedName", + "src": "31298:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31309:4:51", + "nodeType": "YulTypedName", + "src": "31309:4:51", + "type": "" + } + ], + "src": "31153:396:51" + }, + { + "body": { + "nativeSrc": "31709:215:51", + "nodeType": "YulBlock", + "src": "31709:215:51", + "statements": [ + { + "nativeSrc": "31719:26:51", + "nodeType": "YulAssignment", + "src": "31719:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31731:9:51", + "nodeType": "YulIdentifier", + "src": "31731:9:51" + }, + { + "kind": "number", + "nativeSrc": "31742:2:51", + "nodeType": "YulLiteral", + "src": "31742:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31727:3:51", + "nodeType": "YulIdentifier", + "src": "31727:3:51" + }, + "nativeSrc": "31727:18:51", + "nodeType": "YulFunctionCall", + "src": "31727:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31719:4:51", + "nodeType": "YulIdentifier", + "src": "31719:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31761:9:51", + "nodeType": "YulIdentifier", + "src": "31761:9:51" + }, + { + "name": "value0", + "nativeSrc": "31772:6:51", + "nodeType": "YulIdentifier", + "src": "31772:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31754:6:51", + "nodeType": "YulIdentifier", + "src": "31754:6:51" + }, + "nativeSrc": "31754:25:51", + "nodeType": "YulFunctionCall", + "src": "31754:25:51" + }, + "nativeSrc": "31754:25:51", + "nodeType": "YulExpressionStatement", + "src": "31754:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31799:9:51", + "nodeType": "YulIdentifier", + "src": "31799:9:51" + }, + { + "kind": "number", + "nativeSrc": "31810:2:51", + "nodeType": "YulLiteral", + "src": "31810:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31795:3:51", + "nodeType": "YulIdentifier", + "src": "31795:3:51" + }, + "nativeSrc": "31795:18:51", + "nodeType": "YulFunctionCall", + "src": "31795:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "31819:6:51", + "nodeType": "YulIdentifier", + "src": "31819:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31835:3:51", + "nodeType": "YulLiteral", + "src": "31835:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "31840:1:51", + "nodeType": "YulLiteral", + "src": "31840:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "31831:3:51", + "nodeType": "YulIdentifier", + "src": "31831:3:51" + }, + "nativeSrc": "31831:11:51", + "nodeType": "YulFunctionCall", + "src": "31831:11:51" + }, + { + "kind": "number", + "nativeSrc": "31844:1:51", + "nodeType": "YulLiteral", + "src": "31844:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31827:3:51", + "nodeType": "YulIdentifier", + "src": "31827:3:51" + }, + "nativeSrc": "31827:19:51", + "nodeType": "YulFunctionCall", + "src": "31827:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "31815:3:51", + "nodeType": "YulIdentifier", + "src": "31815:3:51" + }, + "nativeSrc": "31815:32:51", + "nodeType": "YulFunctionCall", + "src": "31815:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31788:6:51", + "nodeType": "YulIdentifier", + "src": "31788:6:51" + }, + "nativeSrc": "31788:60:51", + "nodeType": "YulFunctionCall", + "src": "31788:60:51" + }, + "nativeSrc": "31788:60:51", + "nodeType": "YulExpressionStatement", + "src": "31788:60:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "31868:9:51", + "nodeType": "YulIdentifier", + "src": "31868:9:51" + }, + { + "kind": "number", + "nativeSrc": "31879:2:51", + "nodeType": "YulLiteral", + "src": "31879:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31864:3:51", + "nodeType": "YulIdentifier", + "src": "31864:3:51" + }, + "nativeSrc": "31864:18:51", + "nodeType": "YulFunctionCall", + "src": "31864:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "31888:6:51", + "nodeType": "YulIdentifier", + "src": "31888:6:51" + }, + { + "kind": "number", + "nativeSrc": "31896:20:51", + "nodeType": "YulLiteral", + "src": "31896:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "31884:3:51", + "nodeType": "YulIdentifier", + "src": "31884:3:51" + }, + "nativeSrc": "31884:33:51", + "nodeType": "YulFunctionCall", + "src": "31884:33:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31857:6:51", + "nodeType": "YulIdentifier", + "src": "31857:6:51" + }, + "nativeSrc": "31857:61:51", + "nodeType": "YulFunctionCall", + "src": "31857:61:51" + }, + "nativeSrc": "31857:61:51", + "nodeType": "YulExpressionStatement", + "src": "31857:61:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_uint72__to_t_uint256_t_address_t_uint72__fromStack_reversed", + "nativeSrc": "31554:370:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "31662:9:51", + "nodeType": "YulTypedName", + "src": "31662:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "31673:6:51", + "nodeType": "YulTypedName", + "src": "31673:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "31681:6:51", + "nodeType": "YulTypedName", + "src": "31681:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "31689:6:51", + "nodeType": "YulTypedName", + "src": "31689:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "31700:4:51", + "nodeType": "YulTypedName", + "src": "31700:4:51", + "type": "" + } + ], + "src": "31554:370:51" + }, + { + "body": { + "nativeSrc": "32047:466:51", + "nodeType": "YulBlock", + "src": "32047:466:51", + "statements": [ + { + "nativeSrc": "32057:34:51", + "nodeType": "YulVariableDeclaration", + "src": "32057:34:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "32085:5:51", + "nodeType": "YulIdentifier", + "src": "32085:5:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "32072:12:51", + "nodeType": "YulIdentifier", + "src": "32072:12:51" + }, + "nativeSrc": "32072:19:51", + "nodeType": "YulFunctionCall", + "src": "32072:19:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "32061:7:51", + "nodeType": "YulTypedName", + "src": "32061:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "32124:7:51", + "nodeType": "YulIdentifier", + "src": "32124:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint72", + "nativeSrc": "32100:23:51", + "nodeType": "YulIdentifier", + "src": "32100:23:51" + }, + "nativeSrc": "32100:32:51", + "nodeType": "YulFunctionCall", + "src": "32100:32:51" + }, + "nativeSrc": "32100:32:51", + "nodeType": "YulExpressionStatement", + "src": "32100:32:51" + }, + { + "nativeSrc": "32141:44:51", + "nodeType": "YulVariableDeclaration", + "src": "32141:44:51", + "value": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "32155:7:51", + "nodeType": "YulIdentifier", + "src": "32155:7:51" + }, + { + "kind": "number", + "nativeSrc": "32164:20:51", + "nodeType": "YulLiteral", + "src": "32164:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32151:3:51", + "nodeType": "YulIdentifier", + "src": "32151:3:51" + }, + "nativeSrc": "32151:34:51", + "nodeType": "YulFunctionCall", + "src": "32151:34:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "32145:2:51", + "nodeType": "YulTypedName", + "src": "32145:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "32194:21:51", + "nodeType": "YulVariableDeclaration", + "src": "32194:21:51", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32210:4:51", + "nodeType": "YulIdentifier", + "src": "32210:4:51" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "32204:5:51", + "nodeType": "YulIdentifier", + "src": "32204:5:51" + }, + "nativeSrc": "32204:11:51", + "nodeType": "YulFunctionCall", + "src": "32204:11:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "32198:2:51", + "nodeType": "YulTypedName", + "src": "32198:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32231:4:51", + "nodeType": "YulIdentifier", + "src": "32231:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "32244:2:51", + "nodeType": "YulIdentifier", + "src": "32244:2:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32252:20:51", + "nodeType": "YulLiteral", + "src": "32252:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "32248:3:51", + "nodeType": "YulIdentifier", + "src": "32248:3:51" + }, + "nativeSrc": "32248:25:51", + "nodeType": "YulFunctionCall", + "src": "32248:25:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32240:3:51", + "nodeType": "YulIdentifier", + "src": "32240:3:51" + }, + "nativeSrc": "32240:34:51", + "nodeType": "YulFunctionCall", + "src": "32240:34:51" + }, + { + "name": "_1", + "nativeSrc": "32276:2:51", + "nodeType": "YulIdentifier", + "src": "32276:2:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "32237:2:51", + "nodeType": "YulIdentifier", + "src": "32237:2:51" + }, + "nativeSrc": "32237:42:51", + "nodeType": "YulFunctionCall", + "src": "32237:42:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32224:6:51", + "nodeType": "YulIdentifier", + "src": "32224:6:51" + }, + "nativeSrc": "32224:56:51", + "nodeType": "YulFunctionCall", + "src": "32224:56:51" + }, + "nativeSrc": "32224:56:51", + "nodeType": "YulExpressionStatement", + "src": "32224:56:51" + }, + { + "nativeSrc": "32289:43:51", + "nodeType": "YulVariableDeclaration", + "src": "32289:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "32321:5:51", + "nodeType": "YulIdentifier", + "src": "32321:5:51" + }, + { + "kind": "number", + "nativeSrc": "32328:2:51", + "nodeType": "YulLiteral", + "src": "32328:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32317:3:51", + "nodeType": "YulIdentifier", + "src": "32317:3:51" + }, + "nativeSrc": "32317:14:51", + "nodeType": "YulFunctionCall", + "src": "32317:14:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "32304:12:51", + "nodeType": "YulIdentifier", + "src": "32304:12:51" + }, + "nativeSrc": "32304:28:51", + "nodeType": "YulFunctionCall", + "src": "32304:28:51" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "32293:7:51", + "nodeType": "YulTypedName", + "src": "32293:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "32365:7:51", + "nodeType": "YulIdentifier", + "src": "32365:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint40", + "nativeSrc": "32341:23:51", + "nodeType": "YulIdentifier", + "src": "32341:23:51" + }, + "nativeSrc": "32341:32:51", + "nodeType": "YulFunctionCall", + "src": "32341:32:51" + }, + "nativeSrc": "32341:32:51", + "nodeType": "YulExpressionStatement", + "src": "32341:32:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32389:4:51", + "nodeType": "YulIdentifier", + "src": "32389:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "32405:2:51", + "nodeType": "YulIdentifier", + "src": "32405:2:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32413:30:51", + "nodeType": "YulLiteral", + "src": "32413:30:51", + "type": "", + "value": "0xffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "32409:3:51", + "nodeType": "YulIdentifier", + "src": "32409:3:51" + }, + "nativeSrc": "32409:35:51", + "nodeType": "YulFunctionCall", + "src": "32409:35:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32401:3:51", + "nodeType": "YulIdentifier", + "src": "32401:3:51" + }, + "nativeSrc": "32401:44:51", + "nodeType": "YulFunctionCall", + "src": "32401:44:51" + }, + { + "name": "_1", + "nativeSrc": "32447:2:51", + "nodeType": "YulIdentifier", + "src": "32447:2:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "32398:2:51", + "nodeType": "YulIdentifier", + "src": "32398:2:51" + }, + "nativeSrc": "32398:52:51", + "nodeType": "YulFunctionCall", + "src": "32398:52:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32460:2:51", + "nodeType": "YulLiteral", + "src": "32460:2:51", + "type": "", + "value": "72" + }, + { + "name": "value_2", + "nativeSrc": "32464:7:51", + "nodeType": "YulIdentifier", + "src": "32464:7:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "32456:3:51", + "nodeType": "YulIdentifier", + "src": "32456:3:51" + }, + "nativeSrc": "32456:16:51", + "nodeType": "YulFunctionCall", + "src": "32456:16:51" + }, + { + "kind": "number", + "nativeSrc": "32474:30:51", + "nodeType": "YulLiteral", + "src": "32474:30:51", + "type": "", + "value": "0xffffffffff000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32452:3:51", + "nodeType": "YulIdentifier", + "src": "32452:3:51" + }, + "nativeSrc": "32452:53:51", + "nodeType": "YulFunctionCall", + "src": "32452:53:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "32395:2:51", + "nodeType": "YulIdentifier", + "src": "32395:2:51" + }, + "nativeSrc": "32395:111:51", + "nodeType": "YulFunctionCall", + "src": "32395:111:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32382:6:51", + "nodeType": "YulIdentifier", + "src": "32382:6:51" + }, + "nativeSrc": "32382:125:51", + "nodeType": "YulFunctionCall", + "src": "32382:125:51" + }, + "nativeSrc": "32382:125:51", + "nodeType": "YulExpressionStatement", + "src": "32382:125:51" + } + ] + }, + "name": "copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams", + "nativeSrc": "31929:584:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32030:4:51", + "nodeType": "YulTypedName", + "src": "32030:4:51", + "type": "" + }, + { + "name": "value", + "nativeSrc": "32036:5:51", + "nodeType": "YulTypedName", + "src": "32036:5:51", + "type": "" + } + ], + "src": "31929:584:51" + }, + { + "body": { + "nativeSrc": "32669:120:51", + "nodeType": "YulBlock", + "src": "32669:120:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32771:4:51", + "nodeType": "YulIdentifier", + "src": "32771:4:51" + }, + { + "name": "value", + "nativeSrc": "32777:5:51", + "nodeType": "YulIdentifier", + "src": "32777:5:51" + } + ], + "functionName": { + "name": "copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams", + "nativeSrc": "32679:91:51", + "nodeType": "YulIdentifier", + "src": "32679:91:51" + }, + "nativeSrc": "32679:104:51", + "nodeType": "YulFunctionCall", + "src": "32679:104:51" + }, + "nativeSrc": "32679:104:51", + "nodeType": "YulExpressionStatement", + "src": "32679:104:51" + } + ] + }, + "name": "update_storage_value_offset_0t_struct$_SubscriptionParams_$11831_calldata_ptr_to_t_struct$_SubscriptionParams_$11831_storage", + "nativeSrc": "32518:271:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32652:4:51", + "nodeType": "YulTypedName", + "src": "32652:4:51", + "type": "" + }, + { + "name": "value", + "nativeSrc": "32658:5:51", + "nodeType": "YulTypedName", + "src": "32658:5:51", + "type": "" + } + ], + "src": "32518:271:51" + }, + { + "body": { + "nativeSrc": "32865:301:51", + "nodeType": "YulBlock", + "src": "32865:301:51", + "statements": [ + { + "nativeSrc": "32875:34:51", + "nodeType": "YulVariableDeclaration", + "src": "32875:34:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "32903:5:51", + "nodeType": "YulIdentifier", + "src": "32903:5:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "32890:12:51", + "nodeType": "YulIdentifier", + "src": "32890:12:51" + }, + "nativeSrc": "32890:19:51", + "nodeType": "YulFunctionCall", + "src": "32890:19:51" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "32879:7:51", + "nodeType": "YulTypedName", + "src": "32879:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "32942:7:51", + "nodeType": "YulIdentifier", + "src": "32942:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint72", + "nativeSrc": "32918:23:51", + "nodeType": "YulIdentifier", + "src": "32918:23:51" + }, + "nativeSrc": "32918:32:51", + "nodeType": "YulFunctionCall", + "src": "32918:32:51" + }, + "nativeSrc": "32918:32:51", + "nodeType": "YulExpressionStatement", + "src": "32918:32:51" + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "32966:3:51", + "nodeType": "YulIdentifier", + "src": "32966:3:51" + }, + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "32975:7:51", + "nodeType": "YulIdentifier", + "src": "32975:7:51" + }, + { + "kind": "number", + "nativeSrc": "32984:20:51", + "nodeType": "YulLiteral", + "src": "32984:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32971:3:51", + "nodeType": "YulIdentifier", + "src": "32971:3:51" + }, + "nativeSrc": "32971:34:51", + "nodeType": "YulFunctionCall", + "src": "32971:34:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "32959:6:51", + "nodeType": "YulIdentifier", + "src": "32959:6:51" + }, + "nativeSrc": "32959:47:51", + "nodeType": "YulFunctionCall", + "src": "32959:47:51" + }, + "nativeSrc": "32959:47:51", + "nodeType": "YulExpressionStatement", + "src": "32959:47:51" + }, + { + "nativeSrc": "33015:45:51", + "nodeType": "YulVariableDeclaration", + "src": "33015:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "33047:5:51", + "nodeType": "YulIdentifier", + "src": "33047:5:51" + }, + { + "kind": "number", + "nativeSrc": "33054:4:51", + "nodeType": "YulLiteral", + "src": "33054:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33043:3:51", + "nodeType": "YulIdentifier", + "src": "33043:3:51" + }, + "nativeSrc": "33043:16:51", + "nodeType": "YulFunctionCall", + "src": "33043:16:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "33030:12:51", + "nodeType": "YulIdentifier", + "src": "33030:12:51" + }, + "nativeSrc": "33030:30:51", + "nodeType": "YulFunctionCall", + "src": "33030:30:51" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "33019:7:51", + "nodeType": "YulTypedName", + "src": "33019:7:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "33093:7:51", + "nodeType": "YulIdentifier", + "src": "33093:7:51" + } + ], + "functionName": { + "name": "validator_revert_uint40", + "nativeSrc": "33069:23:51", + "nodeType": "YulIdentifier", + "src": "33069:23:51" + }, + "nativeSrc": "33069:32:51", + "nodeType": "YulFunctionCall", + "src": "33069:32:51" + }, + "nativeSrc": "33069:32:51", + "nodeType": "YulExpressionStatement", + "src": "33069:32:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "33121:3:51", + "nodeType": "YulIdentifier", + "src": "33121:3:51" + }, + { + "kind": "number", + "nativeSrc": "33126:4:51", + "nodeType": "YulLiteral", + "src": "33126:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33117:3:51", + "nodeType": "YulIdentifier", + "src": "33117:3:51" + }, + "nativeSrc": "33117:14:51", + "nodeType": "YulFunctionCall", + "src": "33117:14:51" + }, + { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "33137:7:51", + "nodeType": "YulIdentifier", + "src": "33137:7:51" + }, + { + "kind": "number", + "nativeSrc": "33146:12:51", + "nodeType": "YulLiteral", + "src": "33146:12:51", + "type": "", + "value": "0xffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "33133:3:51", + "nodeType": "YulIdentifier", + "src": "33133:3:51" + }, + "nativeSrc": "33133:26:51", + "nodeType": "YulFunctionCall", + "src": "33133:26:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33110:6:51", + "nodeType": "YulIdentifier", + "src": "33110:6:51" + }, + "nativeSrc": "33110:50:51", + "nodeType": "YulFunctionCall", + "src": "33110:50:51" + }, + "nativeSrc": "33110:50:51", + "nodeType": "YulExpressionStatement", + "src": "33110:50:51" + } + ] + }, + "name": "abi_encode_struct_SubscriptionParams_calldata", + "nativeSrc": "32794:372:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32849:5:51", + "nodeType": "YulTypedName", + "src": "32849:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "32856:3:51", + "nodeType": "YulTypedName", + "src": "32856:3:51", + "type": "" + } + ], + "src": "32794:372:51" + }, + { + "body": { + "nativeSrc": "33376:158:51", + "nodeType": "YulBlock", + "src": "33376:158:51", + "statements": [ + { + "nativeSrc": "33386:26:51", + "nodeType": "YulAssignment", + "src": "33386:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33398:9:51", + "nodeType": "YulIdentifier", + "src": "33398:9:51" + }, + { + "kind": "number", + "nativeSrc": "33409:2:51", + "nodeType": "YulLiteral", + "src": "33409:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33394:3:51", + "nodeType": "YulIdentifier", + "src": "33394:3:51" + }, + "nativeSrc": "33394:18:51", + "nodeType": "YulFunctionCall", + "src": "33394:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "33386:4:51", + "nodeType": "YulIdentifier", + "src": "33386:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33428:9:51", + "nodeType": "YulIdentifier", + "src": "33428:9:51" + }, + { + "name": "value0", + "nativeSrc": "33439:6:51", + "nodeType": "YulIdentifier", + "src": "33439:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33421:6:51", + "nodeType": "YulIdentifier", + "src": "33421:6:51" + }, + "nativeSrc": "33421:25:51", + "nodeType": "YulFunctionCall", + "src": "33421:25:51" + }, + "nativeSrc": "33421:25:51", + "nodeType": "YulExpressionStatement", + "src": "33421:25:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "33501:6:51", + "nodeType": "YulIdentifier", + "src": "33501:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33513:9:51", + "nodeType": "YulIdentifier", + "src": "33513:9:51" + }, + { + "kind": "number", + "nativeSrc": "33524:2:51", + "nodeType": "YulLiteral", + "src": "33524:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33509:3:51", + "nodeType": "YulIdentifier", + "src": "33509:3:51" + }, + "nativeSrc": "33509:18:51", + "nodeType": "YulFunctionCall", + "src": "33509:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_SubscriptionParams_calldata", + "nativeSrc": "33455:45:51", + "nodeType": "YulIdentifier", + "src": "33455:45:51" + }, + "nativeSrc": "33455:73:51", + "nodeType": "YulFunctionCall", + "src": "33455:73:51" + }, + "nativeSrc": "33455:73:51", + "nodeType": "YulExpressionStatement", + "src": "33455:73:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_struct$_SubscriptionParams_$11831_calldata_ptr__to_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed", + "nativeSrc": "33171:363:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "33337:9:51", + "nodeType": "YulTypedName", + "src": "33337:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "33348:6:51", + "nodeType": "YulTypedName", + "src": "33348:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "33356:6:51", + "nodeType": "YulTypedName", + "src": "33356:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "33367:4:51", + "nodeType": "YulTypedName", + "src": "33367:4:51", + "type": "" + } + ], + "src": "33171:363:51" + }, + { + "body": { + "nativeSrc": "33608:176:51", + "nodeType": "YulBlock", + "src": "33608:176:51", + "statements": [ + { + "body": { + "nativeSrc": "33654:16:51", + "nodeType": "YulBlock", + "src": "33654:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "33663:1:51", + "nodeType": "YulLiteral", + "src": "33663:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "33666:1:51", + "nodeType": "YulLiteral", + "src": "33666:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "33656:6:51", + "nodeType": "YulIdentifier", + "src": "33656:6:51" + }, + "nativeSrc": "33656:12:51", + "nodeType": "YulFunctionCall", + "src": "33656:12:51" + }, + "nativeSrc": "33656:12:51", + "nodeType": "YulExpressionStatement", + "src": "33656:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "33629:7:51", + "nodeType": "YulIdentifier", + "src": "33629:7:51" + }, + { + "name": "headStart", + "nativeSrc": "33638:9:51", + "nodeType": "YulIdentifier", + "src": "33638:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "33625:3:51", + "nodeType": "YulIdentifier", + "src": "33625:3:51" + }, + "nativeSrc": "33625:23:51", + "nodeType": "YulFunctionCall", + "src": "33625:23:51" + }, + { + "kind": "number", + "nativeSrc": "33650:2:51", + "nodeType": "YulLiteral", + "src": "33650:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "33621:3:51", + "nodeType": "YulIdentifier", + "src": "33621:3:51" + }, + "nativeSrc": "33621:32:51", + "nodeType": "YulFunctionCall", + "src": "33621:32:51" + }, + "nativeSrc": "33618:52:51", + "nodeType": "YulIf", + "src": "33618:52:51" + }, + { + "nativeSrc": "33679:36:51", + "nodeType": "YulVariableDeclaration", + "src": "33679:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33705:9:51", + "nodeType": "YulIdentifier", + "src": "33705:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "33692:12:51", + "nodeType": "YulIdentifier", + "src": "33692:12:51" + }, + "nativeSrc": "33692:23:51", + "nodeType": "YulFunctionCall", + "src": "33692:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "33683:5:51", + "nodeType": "YulTypedName", + "src": "33683:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "33748:5:51", + "nodeType": "YulIdentifier", + "src": "33748:5:51" + } + ], + "functionName": { + "name": "validator_revert_uint40", + "nativeSrc": "33724:23:51", + "nodeType": "YulIdentifier", + "src": "33724:23:51" + }, + "nativeSrc": "33724:30:51", + "nodeType": "YulFunctionCall", + "src": "33724:30:51" + }, + "nativeSrc": "33724:30:51", + "nodeType": "YulExpressionStatement", + "src": "33724:30:51" + }, + { + "nativeSrc": "33763:15:51", + "nodeType": "YulAssignment", + "src": "33763:15:51", + "value": { + "name": "value", + "nativeSrc": "33773:5:51", + "nodeType": "YulIdentifier", + "src": "33773:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "33763:6:51", + "nodeType": "YulIdentifier", + "src": "33763:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint40", + "nativeSrc": "33539:245:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "33574:9:51", + "nodeType": "YulTypedName", + "src": "33574:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "33585:7:51", + "nodeType": "YulTypedName", + "src": "33585:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "33597:6:51", + "nodeType": "YulTypedName", + "src": "33597:6:51", + "type": "" + } + ], + "src": "33539:245:51" + }, + { + "body": { + "nativeSrc": "33888:95:51", + "nodeType": "YulBlock", + "src": "33888:95:51", + "statements": [ + { + "nativeSrc": "33898:26:51", + "nodeType": "YulAssignment", + "src": "33898:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33910:9:51", + "nodeType": "YulIdentifier", + "src": "33910:9:51" + }, + { + "kind": "number", + "nativeSrc": "33921:2:51", + "nodeType": "YulLiteral", + "src": "33921:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33906:3:51", + "nodeType": "YulIdentifier", + "src": "33906:3:51" + }, + "nativeSrc": "33906:18:51", + "nodeType": "YulFunctionCall", + "src": "33906:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "33898:4:51", + "nodeType": "YulIdentifier", + "src": "33898:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33940:9:51", + "nodeType": "YulIdentifier", + "src": "33940:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "33955:6:51", + "nodeType": "YulIdentifier", + "src": "33955:6:51" + }, + { + "kind": "number", + "nativeSrc": "33963:12:51", + "nodeType": "YulLiteral", + "src": "33963:12:51", + "type": "", + "value": "0xffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "33951:3:51", + "nodeType": "YulIdentifier", + "src": "33951:3:51" + }, + "nativeSrc": "33951:25:51", + "nodeType": "YulFunctionCall", + "src": "33951:25:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33933:6:51", + "nodeType": "YulIdentifier", + "src": "33933:6:51" + }, + "nativeSrc": "33933:44:51", + "nodeType": "YulFunctionCall", + "src": "33933:44:51" + }, + "nativeSrc": "33933:44:51", + "nodeType": "YulExpressionStatement", + "src": "33933:44:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint40__to_t_uint48__fromStack_reversed", + "nativeSrc": "33789:194:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "33857:9:51", + "nodeType": "YulTypedName", + "src": "33857:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "33868:6:51", + "nodeType": "YulTypedName", + "src": "33868:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "33879:4:51", + "nodeType": "YulTypedName", + "src": "33879:4:51", + "type": "" + } + ], + "src": "33789:194:51" + }, + { + "body": { + "nativeSrc": "34129:120:51", + "nodeType": "YulBlock", + "src": "34129:120:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34231:4:51", + "nodeType": "YulIdentifier", + "src": "34231:4:51" + }, + { + "name": "value", + "nativeSrc": "34237:5:51", + "nodeType": "YulIdentifier", + "src": "34237:5:51" + } + ], + "functionName": { + "name": "copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams", + "nativeSrc": "34139:91:51", + "nodeType": "YulIdentifier", + "src": "34139:91:51" + }, + "nativeSrc": "34139:104:51", + "nodeType": "YulFunctionCall", + "src": "34139:104:51" + }, + "nativeSrc": "34139:104:51", + "nodeType": "YulExpressionStatement", + "src": "34139:104:51" + } + ] + }, + "name": "update_storage_value_offset_0t_struct$_RentingParams_$11666_calldata_ptr_to_t_struct$_RentingParams_$11666_storage", + "nativeSrc": "33988:261:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "34112:4:51", + "nodeType": "YulTypedName", + "src": "34112:4:51", + "type": "" + }, + { + "name": "value", + "nativeSrc": "34118:5:51", + "nodeType": "YulTypedName", + "src": "34118:5:51", + "type": "" + } + ], + "src": "33988:261:51" + }, + { + "body": { + "nativeSrc": "34477:228:51", + "nodeType": "YulBlock", + "src": "34477:228:51", + "statements": [ + { + "nativeSrc": "34487:27:51", + "nodeType": "YulAssignment", + "src": "34487:27:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34499:9:51", + "nodeType": "YulIdentifier", + "src": "34499:9:51" + }, + { + "kind": "number", + "nativeSrc": "34510:3:51", + "nodeType": "YulLiteral", + "src": "34510:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34495:3:51", + "nodeType": "YulIdentifier", + "src": "34495:3:51" + }, + "nativeSrc": "34495:19:51", + "nodeType": "YulFunctionCall", + "src": "34495:19:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "34487:4:51", + "nodeType": "YulIdentifier", + "src": "34487:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34530:9:51", + "nodeType": "YulIdentifier", + "src": "34530:9:51" + }, + { + "name": "value0", + "nativeSrc": "34541:6:51", + "nodeType": "YulIdentifier", + "src": "34541:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34523:6:51", + "nodeType": "YulIdentifier", + "src": "34523:6:51" + }, + "nativeSrc": "34523:25:51", + "nodeType": "YulFunctionCall", + "src": "34523:25:51" + }, + "nativeSrc": "34523:25:51", + "nodeType": "YulExpressionStatement", + "src": "34523:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34568:9:51", + "nodeType": "YulIdentifier", + "src": "34568:9:51" + }, + { + "kind": "number", + "nativeSrc": "34579:2:51", + "nodeType": "YulLiteral", + "src": "34579:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34564:3:51", + "nodeType": "YulIdentifier", + "src": "34564:3:51" + }, + "nativeSrc": "34564:18:51", + "nodeType": "YulFunctionCall", + "src": "34564:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "34588:6:51", + "nodeType": "YulIdentifier", + "src": "34588:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34604:3:51", + "nodeType": "YulLiteral", + "src": "34604:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "34609:1:51", + "nodeType": "YulLiteral", + "src": "34609:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34600:3:51", + "nodeType": "YulIdentifier", + "src": "34600:3:51" + }, + "nativeSrc": "34600:11:51", + "nodeType": "YulFunctionCall", + "src": "34600:11:51" + }, + { + "kind": "number", + "nativeSrc": "34613:1:51", + "nodeType": "YulLiteral", + "src": "34613:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34596:3:51", + "nodeType": "YulIdentifier", + "src": "34596:3:51" + }, + "nativeSrc": "34596:19:51", + "nodeType": "YulFunctionCall", + "src": "34596:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34584:3:51", + "nodeType": "YulIdentifier", + "src": "34584:3:51" + }, + "nativeSrc": "34584:32:51", + "nodeType": "YulFunctionCall", + "src": "34584:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34557:6:51", + "nodeType": "YulIdentifier", + "src": "34557:6:51" + }, + "nativeSrc": "34557:60:51", + "nodeType": "YulFunctionCall", + "src": "34557:60:51" + }, + "nativeSrc": "34557:60:51", + "nodeType": "YulExpressionStatement", + "src": "34557:60:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "34672:6:51", + "nodeType": "YulIdentifier", + "src": "34672:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34684:9:51", + "nodeType": "YulIdentifier", + "src": "34684:9:51" + }, + { + "kind": "number", + "nativeSrc": "34695:2:51", + "nodeType": "YulLiteral", + "src": "34695:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34680:3:51", + "nodeType": "YulIdentifier", + "src": "34680:3:51" + }, + "nativeSrc": "34680:18:51", + "nodeType": "YulFunctionCall", + "src": "34680:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_SubscriptionParams_calldata", + "nativeSrc": "34626:45:51", + "nodeType": "YulIdentifier", + "src": "34626:45:51" + }, + "nativeSrc": "34626:73:51", + "nodeType": "YulFunctionCall", + "src": "34626:73:51" + }, + "nativeSrc": "34626:73:51", + "nodeType": "YulExpressionStatement", + "src": "34626:73:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_struct$_RentingParams_$11666_calldata_ptr__to_t_uint256_t_address_t_struct$_RentingParams_$11666_memory_ptr__fromStack_reversed", + "nativeSrc": "34254:451:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "34430:9:51", + "nodeType": "YulTypedName", + "src": "34430:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "34441:6:51", + "nodeType": "YulTypedName", + "src": "34441:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "34449:6:51", + "nodeType": "YulTypedName", + "src": "34449:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "34457:6:51", + "nodeType": "YulTypedName", + "src": "34457:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "34468:4:51", + "nodeType": "YulTypedName", + "src": "34468:4:51", + "type": "" + } + ], + "src": "34254:451:51" + }, + { + "body": { + "nativeSrc": "34839:175:51", + "nodeType": "YulBlock", + "src": "34839:175:51", + "statements": [ + { + "nativeSrc": "34849:26:51", + "nodeType": "YulAssignment", + "src": "34849:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34861:9:51", + "nodeType": "YulIdentifier", + "src": "34861:9:51" + }, + { + "kind": "number", + "nativeSrc": "34872:2:51", + "nodeType": "YulLiteral", + "src": "34872:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34857:3:51", + "nodeType": "YulIdentifier", + "src": "34857:3:51" + }, + "nativeSrc": "34857:18:51", + "nodeType": "YulFunctionCall", + "src": "34857:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "34849:4:51", + "nodeType": "YulIdentifier", + "src": "34849:4:51" + } + ] + }, + { + "nativeSrc": "34884:29:51", + "nodeType": "YulVariableDeclaration", + "src": "34884:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34902:3:51", + "nodeType": "YulLiteral", + "src": "34902:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "34907:1:51", + "nodeType": "YulLiteral", + "src": "34907:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "34898:3:51", + "nodeType": "YulIdentifier", + "src": "34898:3:51" + }, + "nativeSrc": "34898:11:51", + "nodeType": "YulFunctionCall", + "src": "34898:11:51" + }, + { + "kind": "number", + "nativeSrc": "34911:1:51", + "nodeType": "YulLiteral", + "src": "34911:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34894:3:51", + "nodeType": "YulIdentifier", + "src": "34894:3:51" + }, + "nativeSrc": "34894:19:51", + "nodeType": "YulFunctionCall", + "src": "34894:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "34888:2:51", + "nodeType": "YulTypedName", + "src": "34888:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34929:9:51", + "nodeType": "YulIdentifier", + "src": "34929:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "34944:6:51", + "nodeType": "YulIdentifier", + "src": "34944:6:51" + }, + { + "name": "_1", + "nativeSrc": "34952:2:51", + "nodeType": "YulIdentifier", + "src": "34952:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34940:3:51", + "nodeType": "YulIdentifier", + "src": "34940:3:51" + }, + "nativeSrc": "34940:15:51", + "nodeType": "YulFunctionCall", + "src": "34940:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34922:6:51", + "nodeType": "YulIdentifier", + "src": "34922:6:51" + }, + "nativeSrc": "34922:34:51", + "nodeType": "YulFunctionCall", + "src": "34922:34:51" + }, + "nativeSrc": "34922:34:51", + "nodeType": "YulExpressionStatement", + "src": "34922:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34976:9:51", + "nodeType": "YulIdentifier", + "src": "34976:9:51" + }, + { + "kind": "number", + "nativeSrc": "34987:2:51", + "nodeType": "YulLiteral", + "src": "34987:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34972:3:51", + "nodeType": "YulIdentifier", + "src": "34972:3:51" + }, + "nativeSrc": "34972:18:51", + "nodeType": "YulFunctionCall", + "src": "34972:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "34996:6:51", + "nodeType": "YulIdentifier", + "src": "34996:6:51" + }, + { + "name": "_1", + "nativeSrc": "35004:2:51", + "nodeType": "YulIdentifier", + "src": "35004:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34992:3:51", + "nodeType": "YulIdentifier", + "src": "34992:3:51" + }, + "nativeSrc": "34992:15:51", + "nodeType": "YulFunctionCall", + "src": "34992:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34965:6:51", + "nodeType": "YulIdentifier", + "src": "34965:6:51" + }, + "nativeSrc": "34965:43:51", + "nodeType": "YulFunctionCall", + "src": "34965:43:51" + }, + "nativeSrc": "34965:43:51", + "nodeType": "YulExpressionStatement", + "src": "34965:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nativeSrc": "34710:304:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "34800:9:51", + "nodeType": "YulTypedName", + "src": "34800:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "34811:6:51", + "nodeType": "YulTypedName", + "src": "34811:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "34819:6:51", + "nodeType": "YulTypedName", + "src": "34819:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "34830:4:51", + "nodeType": "YulTypedName", + "src": "34830:4:51", + "type": "" + } + ], + "src": "34710:304:51" + }, + { + "body": { + "nativeSrc": "35097:167:51", + "nodeType": "YulBlock", + "src": "35097:167:51", + "statements": [ + { + "body": { + "nativeSrc": "35143:16:51", + "nodeType": "YulBlock", + "src": "35143:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35152:1:51", + "nodeType": "YulLiteral", + "src": "35152:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35155:1:51", + "nodeType": "YulLiteral", + "src": "35155:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "35145:6:51", + "nodeType": "YulIdentifier", + "src": "35145:6:51" + }, + "nativeSrc": "35145:12:51", + "nodeType": "YulFunctionCall", + "src": "35145:12:51" + }, + "nativeSrc": "35145:12:51", + "nodeType": "YulExpressionStatement", + "src": "35145:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "35118:7:51", + "nodeType": "YulIdentifier", + "src": "35118:7:51" + }, + { + "name": "headStart", + "nativeSrc": "35127:9:51", + "nodeType": "YulIdentifier", + "src": "35127:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "35114:3:51", + "nodeType": "YulIdentifier", + "src": "35114:3:51" + }, + "nativeSrc": "35114:23:51", + "nodeType": "YulFunctionCall", + "src": "35114:23:51" + }, + { + "kind": "number", + "nativeSrc": "35139:2:51", + "nodeType": "YulLiteral", + "src": "35139:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "35110:3:51", + "nodeType": "YulIdentifier", + "src": "35110:3:51" + }, + "nativeSrc": "35110:32:51", + "nodeType": "YulFunctionCall", + "src": "35110:32:51" + }, + "nativeSrc": "35107:52:51", + "nodeType": "YulIf", + "src": "35107:52:51" + }, + { + "nativeSrc": "35168:29:51", + "nodeType": "YulVariableDeclaration", + "src": "35168:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35187:9:51", + "nodeType": "YulIdentifier", + "src": "35187:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35181:5:51", + "nodeType": "YulIdentifier", + "src": "35181:5:51" + }, + "nativeSrc": "35181:16:51", + "nodeType": "YulFunctionCall", + "src": "35181:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "35172:5:51", + "nodeType": "YulTypedName", + "src": "35172:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "35228:5:51", + "nodeType": "YulIdentifier", + "src": "35228:5:51" + } + ], + "functionName": { + "name": "validator_revert_bool", + "nativeSrc": "35206:21:51", + "nodeType": "YulIdentifier", + "src": "35206:21:51" + }, + "nativeSrc": "35206:28:51", + "nodeType": "YulFunctionCall", + "src": "35206:28:51" + }, + "nativeSrc": "35206:28:51", + "nodeType": "YulExpressionStatement", + "src": "35206:28:51" + }, + { + "nativeSrc": "35243:15:51", + "nodeType": "YulAssignment", + "src": "35243:15:51", + "value": { + "name": "value", + "nativeSrc": "35253:5:51", + "nodeType": "YulIdentifier", + "src": "35253:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "35243:6:51", + "nodeType": "YulIdentifier", + "src": "35243:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "35019:245:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "35063:9:51", + "nodeType": "YulTypedName", + "src": "35063:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "35074:7:51", + "nodeType": "YulTypedName", + "src": "35074:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "35086:6:51", + "nodeType": "YulTypedName", + "src": "35086:6:51", + "type": "" + } + ], + "src": "35019:245:51" + }, + { + "body": { + "nativeSrc": "35341:459:51", + "nodeType": "YulBlock", + "src": "35341:459:51", + "statements": [ + { + "nativeSrc": "35351:32:51", + "nodeType": "YulVariableDeclaration", + "src": "35351:32:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "35377:5:51", + "nodeType": "YulIdentifier", + "src": "35377:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35371:5:51", + "nodeType": "YulIdentifier", + "src": "35371:5:51" + }, + "nativeSrc": "35371:12:51", + "nodeType": "YulFunctionCall", + "src": "35371:12:51" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "35355:12:51", + "nodeType": "YulTypedName", + "src": "35355:12:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35399:3:51", + "nodeType": "YulIdentifier", + "src": "35399:3:51" + }, + { + "kind": "number", + "nativeSrc": "35404:4:51", + "nodeType": "YulLiteral", + "src": "35404:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35392:6:51", + "nodeType": "YulIdentifier", + "src": "35392:6:51" + }, + "nativeSrc": "35392:17:51", + "nodeType": "YulFunctionCall", + "src": "35392:17:51" + }, + "nativeSrc": "35392:17:51", + "nodeType": "YulExpressionStatement", + "src": "35392:17:51" + }, + { + "nativeSrc": "35418:68:51", + "nodeType": "YulVariableDeclaration", + "src": "35418:68:51", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "35457:12:51", + "nodeType": "YulIdentifier", + "src": "35457:12:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35475:3:51", + "nodeType": "YulIdentifier", + "src": "35475:3:51" + }, + { + "kind": "number", + "nativeSrc": "35480:4:51", + "nodeType": "YulLiteral", + "src": "35480:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35471:3:51", + "nodeType": "YulIdentifier", + "src": "35471:3:51" + }, + "nativeSrc": "35471:14:51", + "nodeType": "YulFunctionCall", + "src": "35471:14:51" + } + ], + "functionName": { + "name": "abi_encode_struct_AppOrder", + "nativeSrc": "35430:26:51", + "nodeType": "YulIdentifier", + "src": "35430:26:51" + }, + "nativeSrc": "35430:56:51", + "nodeType": "YulFunctionCall", + "src": "35430:56:51" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "35422:4:51", + "nodeType": "YulTypedName", + "src": "35422:4:51", + "type": "" + } + ] + }, + { + "nativeSrc": "35495:45:51", + "nodeType": "YulVariableDeclaration", + "src": "35495:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "35527:5:51", + "nodeType": "YulIdentifier", + "src": "35527:5:51" + }, + { + "kind": "number", + "nativeSrc": "35534:4:51", + "nodeType": "YulLiteral", + "src": "35534:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35523:3:51", + "nodeType": "YulIdentifier", + "src": "35523:3:51" + }, + "nativeSrc": "35523:16:51", + "nodeType": "YulFunctionCall", + "src": "35523:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35517:5:51", + "nodeType": "YulIdentifier", + "src": "35517:5:51" + }, + "nativeSrc": "35517:23:51", + "nodeType": "YulFunctionCall", + "src": "35517:23:51" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "35499:14:51", + "nodeType": "YulTypedName", + "src": "35499:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "35576:14:51", + "nodeType": "YulIdentifier", + "src": "35576:14:51" + } + ], + "functionName": { + "name": "validator_assert_enum_Mode", + "nativeSrc": "35549:26:51", + "nodeType": "YulIdentifier", + "src": "35549:26:51" + }, + "nativeSrc": "35549:42:51", + "nodeType": "YulFunctionCall", + "src": "35549:42:51" + }, + "nativeSrc": "35549:42:51", + "nodeType": "YulExpressionStatement", + "src": "35549:42:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35611:3:51", + "nodeType": "YulIdentifier", + "src": "35611:3:51" + }, + { + "kind": "number", + "nativeSrc": "35616:4:51", + "nodeType": "YulLiteral", + "src": "35616:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35607:3:51", + "nodeType": "YulIdentifier", + "src": "35607:3:51" + }, + "nativeSrc": "35607:14:51", + "nodeType": "YulFunctionCall", + "src": "35607:14:51" + }, + { + "name": "memberValue0_1", + "nativeSrc": "35623:14:51", + "nodeType": "YulIdentifier", + "src": "35623:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35600:6:51", + "nodeType": "YulIdentifier", + "src": "35600:6:51" + }, + "nativeSrc": "35600:38:51", + "nodeType": "YulFunctionCall", + "src": "35600:38:51" + }, + "nativeSrc": "35600:38:51", + "nodeType": "YulExpressionStatement", + "src": "35600:38:51" + }, + { + "nativeSrc": "35647:45:51", + "nodeType": "YulVariableDeclaration", + "src": "35647:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "35679:5:51", + "nodeType": "YulIdentifier", + "src": "35679:5:51" + }, + { + "kind": "number", + "nativeSrc": "35686:4:51", + "nodeType": "YulLiteral", + "src": "35686:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35675:3:51", + "nodeType": "YulIdentifier", + "src": "35675:3:51" + }, + "nativeSrc": "35675:16:51", + "nodeType": "YulFunctionCall", + "src": "35675:16:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35669:5:51", + "nodeType": "YulIdentifier", + "src": "35669:5:51" + }, + "nativeSrc": "35669:23:51", + "nodeType": "YulFunctionCall", + "src": "35669:23:51" + }, + "variables": [ + { + "name": "memberValue0_2", + "nativeSrc": "35651:14:51", + "nodeType": "YulTypedName", + "src": "35651:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "35712:3:51", + "nodeType": "YulIdentifier", + "src": "35712:3:51" + }, + { + "kind": "number", + "nativeSrc": "35717:4:51", + "nodeType": "YulLiteral", + "src": "35717:4:51", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35708:3:51", + "nodeType": "YulIdentifier", + "src": "35708:3:51" + }, + "nativeSrc": "35708:14:51", + "nodeType": "YulFunctionCall", + "src": "35708:14:51" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "35728:4:51", + "nodeType": "YulIdentifier", + "src": "35728:4:51" + }, + { + "name": "pos", + "nativeSrc": "35734:3:51", + "nodeType": "YulIdentifier", + "src": "35734:3:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "35724:3:51", + "nodeType": "YulIdentifier", + "src": "35724:3:51" + }, + "nativeSrc": "35724:14:51", + "nodeType": "YulFunctionCall", + "src": "35724:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35701:6:51", + "nodeType": "YulIdentifier", + "src": "35701:6:51" + }, + "nativeSrc": "35701:38:51", + "nodeType": "YulFunctionCall", + "src": "35701:38:51" + }, + "nativeSrc": "35701:38:51", + "nodeType": "YulExpressionStatement", + "src": "35701:38:51" + }, + { + "nativeSrc": "35748:46:51", + "nodeType": "YulAssignment", + "src": "35748:46:51", + "value": { + "arguments": [ + { + "name": "memberValue0_2", + "nativeSrc": "35773:14:51", + "nodeType": "YulIdentifier", + "src": "35773:14:51" + }, + { + "name": "tail", + "nativeSrc": "35789:4:51", + "nodeType": "YulIdentifier", + "src": "35789:4:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "35755:17:51", + "nodeType": "YulIdentifier", + "src": "35755:17:51" + }, + "nativeSrc": "35755:39:51", + "nodeType": "YulFunctionCall", + "src": "35755:39:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "35748:3:51", + "nodeType": "YulIdentifier", + "src": "35748:3:51" + } + ] + } + ] + }, + "name": "abi_encode_struct_DatasetOrderOperation", + "nativeSrc": "35269:531:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "35318:5:51", + "nodeType": "YulTypedName", + "src": "35318:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "35325:3:51", + "nodeType": "YulTypedName", + "src": "35325:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "35333:3:51", + "nodeType": "YulTypedName", + "src": "35333:3:51", + "type": "" + } + ], + "src": "35269:531:51" + }, + { + "body": { + "nativeSrc": "35986:121:51", + "nodeType": "YulBlock", + "src": "35986:121:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36003:9:51", + "nodeType": "YulIdentifier", + "src": "36003:9:51" + }, + { + "kind": "number", + "nativeSrc": "36014:2:51", + "nodeType": "YulLiteral", + "src": "36014:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35996:6:51", + "nodeType": "YulIdentifier", + "src": "35996:6:51" + }, + "nativeSrc": "35996:21:51", + "nodeType": "YulFunctionCall", + "src": "35996:21:51" + }, + "nativeSrc": "35996:21:51", + "nodeType": "YulExpressionStatement", + "src": "35996:21:51" + }, + { + "nativeSrc": "36026:75:51", + "nodeType": "YulAssignment", + "src": "36026:75:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36074:6:51", + "nodeType": "YulIdentifier", + "src": "36074:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36086:9:51", + "nodeType": "YulIdentifier", + "src": "36086:9:51" + }, + { + "kind": "number", + "nativeSrc": "36097:2:51", + "nodeType": "YulLiteral", + "src": "36097:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36082:3:51", + "nodeType": "YulIdentifier", + "src": "36082:3:51" + }, + "nativeSrc": "36082:18:51", + "nodeType": "YulFunctionCall", + "src": "36082:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_DatasetOrderOperation", + "nativeSrc": "36034:39:51", + "nodeType": "YulIdentifier", + "src": "36034:39:51" + }, + "nativeSrc": "36034:67:51", + "nodeType": "YulFunctionCall", + "src": "36034:67:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36026:4:51", + "nodeType": "YulIdentifier", + "src": "36026:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_DatasetOrderOperation_$11554_memory_ptr__to_t_struct$_DatasetOrderOperation_$11554_memory_ptr__fromStack_reversed", + "nativeSrc": "35805:302:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "35955:9:51", + "nodeType": "YulTypedName", + "src": "35955:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "35966:6:51", + "nodeType": "YulTypedName", + "src": "35966:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "35977:4:51", + "nodeType": "YulTypedName", + "src": "35977:4:51", + "type": "" + } + ], + "src": "35805:302:51" + }, + { + "body": { + "nativeSrc": "36239:172:51", + "nodeType": "YulBlock", + "src": "36239:172:51", + "statements": [ + { + "nativeSrc": "36249:26:51", + "nodeType": "YulAssignment", + "src": "36249:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36261:9:51", + "nodeType": "YulIdentifier", + "src": "36261:9:51" + }, + { + "kind": "number", + "nativeSrc": "36272:2:51", + "nodeType": "YulLiteral", + "src": "36272:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36257:3:51", + "nodeType": "YulIdentifier", + "src": "36257:3:51" + }, + "nativeSrc": "36257:18:51", + "nodeType": "YulFunctionCall", + "src": "36257:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36249:4:51", + "nodeType": "YulIdentifier", + "src": "36249:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36291:9:51", + "nodeType": "YulIdentifier", + "src": "36291:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36306:6:51", + "nodeType": "YulIdentifier", + "src": "36306:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36322:3:51", + "nodeType": "YulLiteral", + "src": "36322:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "36327:1:51", + "nodeType": "YulLiteral", + "src": "36327:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "36318:3:51", + "nodeType": "YulIdentifier", + "src": "36318:3:51" + }, + "nativeSrc": "36318:11:51", + "nodeType": "YulFunctionCall", + "src": "36318:11:51" + }, + { + "kind": "number", + "nativeSrc": "36331:1:51", + "nodeType": "YulLiteral", + "src": "36331:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36314:3:51", + "nodeType": "YulIdentifier", + "src": "36314:3:51" + }, + "nativeSrc": "36314:19:51", + "nodeType": "YulFunctionCall", + "src": "36314:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36302:3:51", + "nodeType": "YulIdentifier", + "src": "36302:3:51" + }, + "nativeSrc": "36302:32:51", + "nodeType": "YulFunctionCall", + "src": "36302:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36284:6:51", + "nodeType": "YulIdentifier", + "src": "36284:6:51" + }, + "nativeSrc": "36284:51:51", + "nodeType": "YulFunctionCall", + "src": "36284:51:51" + }, + "nativeSrc": "36284:51:51", + "nodeType": "YulExpressionStatement", + "src": "36284:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36355:9:51", + "nodeType": "YulIdentifier", + "src": "36355:9:51" + }, + { + "kind": "number", + "nativeSrc": "36366:2:51", + "nodeType": "YulLiteral", + "src": "36366:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36351:3:51", + "nodeType": "YulIdentifier", + "src": "36351:3:51" + }, + "nativeSrc": "36351:18:51", + "nodeType": "YulFunctionCall", + "src": "36351:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "36375:6:51", + "nodeType": "YulIdentifier", + "src": "36375:6:51" + }, + { + "kind": "number", + "nativeSrc": "36383:20:51", + "nodeType": "YulLiteral", + "src": "36383:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36371:3:51", + "nodeType": "YulIdentifier", + "src": "36371:3:51" + }, + "nativeSrc": "36371:33:51", + "nodeType": "YulFunctionCall", + "src": "36371:33:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36344:6:51", + "nodeType": "YulIdentifier", + "src": "36344:6:51" + }, + "nativeSrc": "36344:61:51", + "nodeType": "YulFunctionCall", + "src": "36344:61:51" + }, + "nativeSrc": "36344:61:51", + "nodeType": "YulExpressionStatement", + "src": "36344:61:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint72__to_t_address_t_uint72__fromStack_reversed", + "nativeSrc": "36112:299:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36200:9:51", + "nodeType": "YulTypedName", + "src": "36200:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "36211:6:51", + "nodeType": "YulTypedName", + "src": "36211:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36219:6:51", + "nodeType": "YulTypedName", + "src": "36219:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36230:4:51", + "nodeType": "YulTypedName", + "src": "36230:4:51", + "type": "" + } + ], + "src": "36112:299:51" + }, + { + "body": { + "nativeSrc": "36572:245:51", + "nodeType": "YulBlock", + "src": "36572:245:51", + "statements": [ + { + "nativeSrc": "36582:26:51", + "nodeType": "YulAssignment", + "src": "36582:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36594:9:51", + "nodeType": "YulIdentifier", + "src": "36594:9:51" + }, + { + "kind": "number", + "nativeSrc": "36605:2:51", + "nodeType": "YulLiteral", + "src": "36605:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36590:3:51", + "nodeType": "YulIdentifier", + "src": "36590:3:51" + }, + "nativeSrc": "36590:18:51", + "nodeType": "YulFunctionCall", + "src": "36590:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36582:4:51", + "nodeType": "YulIdentifier", + "src": "36582:4:51" + } + ] + }, + { + "nativeSrc": "36617:29:51", + "nodeType": "YulVariableDeclaration", + "src": "36617:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36635:3:51", + "nodeType": "YulLiteral", + "src": "36635:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "36640:1:51", + "nodeType": "YulLiteral", + "src": "36640:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "36631:3:51", + "nodeType": "YulIdentifier", + "src": "36631:3:51" + }, + "nativeSrc": "36631:11:51", + "nodeType": "YulFunctionCall", + "src": "36631:11:51" + }, + { + "kind": "number", + "nativeSrc": "36644:1:51", + "nodeType": "YulLiteral", + "src": "36644:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36627:3:51", + "nodeType": "YulIdentifier", + "src": "36627:3:51" + }, + "nativeSrc": "36627:19:51", + "nodeType": "YulFunctionCall", + "src": "36627:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "36621:2:51", + "nodeType": "YulTypedName", + "src": "36621:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36662:9:51", + "nodeType": "YulIdentifier", + "src": "36662:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36677:6:51", + "nodeType": "YulIdentifier", + "src": "36677:6:51" + }, + { + "name": "_1", + "nativeSrc": "36685:2:51", + "nodeType": "YulIdentifier", + "src": "36685:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36673:3:51", + "nodeType": "YulIdentifier", + "src": "36673:3:51" + }, + "nativeSrc": "36673:15:51", + "nodeType": "YulFunctionCall", + "src": "36673:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36655:6:51", + "nodeType": "YulIdentifier", + "src": "36655:6:51" + }, + "nativeSrc": "36655:34:51", + "nodeType": "YulFunctionCall", + "src": "36655:34:51" + }, + "nativeSrc": "36655:34:51", + "nodeType": "YulExpressionStatement", + "src": "36655:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36709:9:51", + "nodeType": "YulIdentifier", + "src": "36709:9:51" + }, + { + "kind": "number", + "nativeSrc": "36720:2:51", + "nodeType": "YulLiteral", + "src": "36720:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36705:3:51", + "nodeType": "YulIdentifier", + "src": "36705:3:51" + }, + "nativeSrc": "36705:18:51", + "nodeType": "YulFunctionCall", + "src": "36705:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "36729:6:51", + "nodeType": "YulIdentifier", + "src": "36729:6:51" + }, + { + "name": "_1", + "nativeSrc": "36737:2:51", + "nodeType": "YulIdentifier", + "src": "36737:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36725:3:51", + "nodeType": "YulIdentifier", + "src": "36725:3:51" + }, + "nativeSrc": "36725:15:51", + "nodeType": "YulFunctionCall", + "src": "36725:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36698:6:51", + "nodeType": "YulIdentifier", + "src": "36698:6:51" + }, + "nativeSrc": "36698:43:51", + "nodeType": "YulFunctionCall", + "src": "36698:43:51" + }, + "nativeSrc": "36698:43:51", + "nodeType": "YulExpressionStatement", + "src": "36698:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36761:9:51", + "nodeType": "YulIdentifier", + "src": "36761:9:51" + }, + { + "kind": "number", + "nativeSrc": "36772:2:51", + "nodeType": "YulLiteral", + "src": "36772:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36757:3:51", + "nodeType": "YulIdentifier", + "src": "36757:3:51" + }, + "nativeSrc": "36757:18:51", + "nodeType": "YulFunctionCall", + "src": "36757:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "36781:6:51", + "nodeType": "YulIdentifier", + "src": "36781:6:51" + }, + { + "kind": "number", + "nativeSrc": "36789:20:51", + "nodeType": "YulLiteral", + "src": "36789:20:51", + "type": "", + "value": "0xffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36777:3:51", + "nodeType": "YulIdentifier", + "src": "36777:3:51" + }, + "nativeSrc": "36777:33:51", + "nodeType": "YulFunctionCall", + "src": "36777:33:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36750:6:51", + "nodeType": "YulIdentifier", + "src": "36750:6:51" + }, + "nativeSrc": "36750:61:51", + "nodeType": "YulFunctionCall", + "src": "36750:61:51" + }, + "nativeSrc": "36750:61:51", + "nodeType": "YulExpressionStatement", + "src": "36750:61:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint72__to_t_address_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "36416:401:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36525:9:51", + "nodeType": "YulTypedName", + "src": "36525:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "36536:6:51", + "nodeType": "YulTypedName", + "src": "36536:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "36544:6:51", + "nodeType": "YulTypedName", + "src": "36544:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36552:6:51", + "nodeType": "YulTypedName", + "src": "36552:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36563:4:51", + "nodeType": "YulTypedName", + "src": "36563:4:51", + "type": "" + } + ], + "src": "36416:401:51" + }, + { + "body": { + "nativeSrc": "36979:218:51", + "nodeType": "YulBlock", + "src": "36979:218:51", + "statements": [ + { + "nativeSrc": "36989:26:51", + "nodeType": "YulAssignment", + "src": "36989:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37001:9:51", + "nodeType": "YulIdentifier", + "src": "37001:9:51" + }, + { + "kind": "number", + "nativeSrc": "37012:2:51", + "nodeType": "YulLiteral", + "src": "37012:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36997:3:51", + "nodeType": "YulIdentifier", + "src": "36997:3:51" + }, + "nativeSrc": "36997:18:51", + "nodeType": "YulFunctionCall", + "src": "36997:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36989:4:51", + "nodeType": "YulIdentifier", + "src": "36989:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37031:9:51", + "nodeType": "YulIdentifier", + "src": "37031:9:51" + }, + { + "name": "value0", + "nativeSrc": "37042:6:51", + "nodeType": "YulIdentifier", + "src": "37042:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37024:6:51", + "nodeType": "YulIdentifier", + "src": "37024:6:51" + }, + "nativeSrc": "37024:25:51", + "nodeType": "YulFunctionCall", + "src": "37024:25:51" + }, + "nativeSrc": "37024:25:51", + "nodeType": "YulExpressionStatement", + "src": "37024:25:51" + }, + { + "nativeSrc": "37058:29:51", + "nodeType": "YulVariableDeclaration", + "src": "37058:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "37076:3:51", + "nodeType": "YulLiteral", + "src": "37076:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "37081:1:51", + "nodeType": "YulLiteral", + "src": "37081:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "37072:3:51", + "nodeType": "YulIdentifier", + "src": "37072:3:51" + }, + "nativeSrc": "37072:11:51", + "nodeType": "YulFunctionCall", + "src": "37072:11:51" + }, + { + "kind": "number", + "nativeSrc": "37085:1:51", + "nodeType": "YulLiteral", + "src": "37085:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37068:3:51", + "nodeType": "YulIdentifier", + "src": "37068:3:51" + }, + "nativeSrc": "37068:19:51", + "nodeType": "YulFunctionCall", + "src": "37068:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "37062:2:51", + "nodeType": "YulTypedName", + "src": "37062:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37107:9:51", + "nodeType": "YulIdentifier", + "src": "37107:9:51" + }, + { + "kind": "number", + "nativeSrc": "37118:2:51", + "nodeType": "YulLiteral", + "src": "37118:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37103:3:51", + "nodeType": "YulIdentifier", + "src": "37103:3:51" + }, + "nativeSrc": "37103:18:51", + "nodeType": "YulFunctionCall", + "src": "37103:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "37127:6:51", + "nodeType": "YulIdentifier", + "src": "37127:6:51" + }, + { + "name": "_1", + "nativeSrc": "37135:2:51", + "nodeType": "YulIdentifier", + "src": "37135:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37123:3:51", + "nodeType": "YulIdentifier", + "src": "37123:3:51" + }, + "nativeSrc": "37123:15:51", + "nodeType": "YulFunctionCall", + "src": "37123:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37096:6:51", + "nodeType": "YulIdentifier", + "src": "37096:6:51" + }, + "nativeSrc": "37096:43:51", + "nodeType": "YulFunctionCall", + "src": "37096:43:51" + }, + "nativeSrc": "37096:43:51", + "nodeType": "YulExpressionStatement", + "src": "37096:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37159:9:51", + "nodeType": "YulIdentifier", + "src": "37159:9:51" + }, + { + "kind": "number", + "nativeSrc": "37170:2:51", + "nodeType": "YulLiteral", + "src": "37170:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37155:3:51", + "nodeType": "YulIdentifier", + "src": "37155:3:51" + }, + "nativeSrc": "37155:18:51", + "nodeType": "YulFunctionCall", + "src": "37155:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "37179:6:51", + "nodeType": "YulIdentifier", + "src": "37179:6:51" + }, + { + "name": "_1", + "nativeSrc": "37187:2:51", + "nodeType": "YulIdentifier", + "src": "37187:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37175:3:51", + "nodeType": "YulIdentifier", + "src": "37175:3:51" + }, + "nativeSrc": "37175:15:51", + "nodeType": "YulFunctionCall", + "src": "37175:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37148:6:51", + "nodeType": "YulIdentifier", + "src": "37148:6:51" + }, + "nativeSrc": "37148:43:51", + "nodeType": "YulFunctionCall", + "src": "37148:43:51" + }, + "nativeSrc": "37148:43:51", + "nodeType": "YulExpressionStatement", + "src": "37148:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed", + "nativeSrc": "36822:375:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36932:9:51", + "nodeType": "YulTypedName", + "src": "36932:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "36943:6:51", + "nodeType": "YulTypedName", + "src": "36943:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "36951:6:51", + "nodeType": "YulTypedName", + "src": "36951:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36959:6:51", + "nodeType": "YulTypedName", + "src": "36959:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36970:4:51", + "nodeType": "YulTypedName", + "src": "36970:4:51", + "type": "" + } + ], + "src": "36822:375:51" + }, + { + "body": { + "nativeSrc": "37405:144:51", + "nodeType": "YulBlock", + "src": "37405:144:51", + "statements": [ + { + "nativeSrc": "37415:26:51", + "nodeType": "YulAssignment", + "src": "37415:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37427:9:51", + "nodeType": "YulIdentifier", + "src": "37427:9:51" + }, + { + "kind": "number", + "nativeSrc": "37438:2:51", + "nodeType": "YulLiteral", + "src": "37438:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37423:3:51", + "nodeType": "YulIdentifier", + "src": "37423:3:51" + }, + "nativeSrc": "37423:18:51", + "nodeType": "YulFunctionCall", + "src": "37423:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37415:4:51", + "nodeType": "YulIdentifier", + "src": "37415:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37457:9:51", + "nodeType": "YulIdentifier", + "src": "37457:9:51" + }, + { + "name": "value0", + "nativeSrc": "37468:6:51", + "nodeType": "YulIdentifier", + "src": "37468:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37450:6:51", + "nodeType": "YulIdentifier", + "src": "37450:6:51" + }, + "nativeSrc": "37450:25:51", + "nodeType": "YulFunctionCall", + "src": "37450:25:51" + }, + "nativeSrc": "37450:25:51", + "nodeType": "YulExpressionStatement", + "src": "37450:25:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "37516:6:51", + "nodeType": "YulIdentifier", + "src": "37516:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37528:9:51", + "nodeType": "YulIdentifier", + "src": "37528:9:51" + }, + { + "kind": "number", + "nativeSrc": "37539:2:51", + "nodeType": "YulLiteral", + "src": "37539:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37524:3:51", + "nodeType": "YulIdentifier", + "src": "37524:3:51" + }, + "nativeSrc": "37524:18:51", + "nodeType": "YulFunctionCall", + "src": "37524:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_RentingParams", + "nativeSrc": "37484:31:51", + "nodeType": "YulIdentifier", + "src": "37484:31:51" + }, + "nativeSrc": "37484:59:51", + "nodeType": "YulFunctionCall", + "src": "37484:59:51" + }, + "nativeSrc": "37484:59:51", + "nodeType": "YulExpressionStatement", + "src": "37484:59:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__to_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed", + "nativeSrc": "37202:347:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37366:9:51", + "nodeType": "YulTypedName", + "src": "37366:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "37377:6:51", + "nodeType": "YulTypedName", + "src": "37377:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "37385:6:51", + "nodeType": "YulTypedName", + "src": "37385:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37396:4:51", + "nodeType": "YulTypedName", + "src": "37396:4:51", + "type": "" + } + ], + "src": "37202:347:51" + }, + { + "body": { + "nativeSrc": "37601:129:51", + "nodeType": "YulBlock", + "src": "37601:129:51", + "statements": [ + { + "nativeSrc": "37611:24:51", + "nodeType": "YulVariableDeclaration", + "src": "37611:24:51", + "value": { + "kind": "number", + "nativeSrc": "37621:14:51", + "nodeType": "YulLiteral", + "src": "37621:14:51", + "type": "", + "value": "0xffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "37615:2:51", + "nodeType": "YulTypedName", + "src": "37615:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "37644:34:51", + "nodeType": "YulAssignment", + "src": "37644:34:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "37659:1:51", + "nodeType": "YulIdentifier", + "src": "37659:1:51" + }, + { + "name": "_1", + "nativeSrc": "37662:2:51", + "nodeType": "YulIdentifier", + "src": "37662:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37655:3:51", + "nodeType": "YulIdentifier", + "src": "37655:3:51" + }, + "nativeSrc": "37655:10:51", + "nodeType": "YulFunctionCall", + "src": "37655:10:51" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "37671:1:51", + "nodeType": "YulIdentifier", + "src": "37671:1:51" + }, + { + "name": "_1", + "nativeSrc": "37674:2:51", + "nodeType": "YulIdentifier", + "src": "37674:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37667:3:51", + "nodeType": "YulIdentifier", + "src": "37667:3:51" + }, + "nativeSrc": "37667:10:51", + "nodeType": "YulFunctionCall", + "src": "37667:10:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37651:3:51", + "nodeType": "YulIdentifier", + "src": "37651:3:51" + }, + "nativeSrc": "37651:27:51", + "nodeType": "YulFunctionCall", + "src": "37651:27:51" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "37644:3:51", + "nodeType": "YulIdentifier", + "src": "37644:3:51" + } + ] + }, + { + "body": { + "nativeSrc": "37702:22:51", + "nodeType": "YulBlock", + "src": "37702:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "37704:16:51", + "nodeType": "YulIdentifier", + "src": "37704:16:51" + }, + "nativeSrc": "37704:18:51", + "nodeType": "YulFunctionCall", + "src": "37704:18:51" + }, + "nativeSrc": "37704:18:51", + "nodeType": "YulExpressionStatement", + "src": "37704:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nativeSrc": "37693:3:51", + "nodeType": "YulIdentifier", + "src": "37693:3:51" + }, + { + "name": "_1", + "nativeSrc": "37698:2:51", + "nodeType": "YulIdentifier", + "src": "37698:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "37690:2:51", + "nodeType": "YulIdentifier", + "src": "37690:2:51" + }, + "nativeSrc": "37690:11:51", + "nodeType": "YulFunctionCall", + "src": "37690:11:51" + }, + "nativeSrc": "37687:37:51", + "nodeType": "YulIf", + "src": "37687:37:51" + } + ] + }, + "name": "checked_add_t_uint48", + "nativeSrc": "37554:176:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "37584:1:51", + "nodeType": "YulTypedName", + "src": "37584:1:51", + "type": "" + }, + { + "name": "y", + "nativeSrc": "37587:1:51", + "nodeType": "YulTypedName", + "src": "37587:1:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "37593:3:51", + "nodeType": "YulTypedName", + "src": "37593:3:51", + "type": "" + } + ], + "src": "37554:176:51" + }, + { + "body": { + "nativeSrc": "37862:140:51", + "nodeType": "YulBlock", + "src": "37862:140:51", + "statements": [ + { + "nativeSrc": "37872:26:51", + "nodeType": "YulAssignment", + "src": "37872:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37884:9:51", + "nodeType": "YulIdentifier", + "src": "37884:9:51" + }, + { + "kind": "number", + "nativeSrc": "37895:2:51", + "nodeType": "YulLiteral", + "src": "37895:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37880:3:51", + "nodeType": "YulIdentifier", + "src": "37880:3:51" + }, + "nativeSrc": "37880:18:51", + "nodeType": "YulFunctionCall", + "src": "37880:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "37872:4:51", + "nodeType": "YulIdentifier", + "src": "37872:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37914:9:51", + "nodeType": "YulIdentifier", + "src": "37914:9:51" + }, + { + "name": "value0", + "nativeSrc": "37925:6:51", + "nodeType": "YulIdentifier", + "src": "37925:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37907:6:51", + "nodeType": "YulIdentifier", + "src": "37907:6:51" + }, + "nativeSrc": "37907:25:51", + "nodeType": "YulFunctionCall", + "src": "37907:25:51" + }, + "nativeSrc": "37907:25:51", + "nodeType": "YulExpressionStatement", + "src": "37907:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37952:9:51", + "nodeType": "YulIdentifier", + "src": "37952:9:51" + }, + { + "kind": "number", + "nativeSrc": "37963:2:51", + "nodeType": "YulLiteral", + "src": "37963:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37948:3:51", + "nodeType": "YulIdentifier", + "src": "37948:3:51" + }, + "nativeSrc": "37948:18:51", + "nodeType": "YulFunctionCall", + "src": "37948:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "37972:6:51", + "nodeType": "YulIdentifier", + "src": "37972:6:51" + }, + { + "kind": "number", + "nativeSrc": "37980:14:51", + "nodeType": "YulLiteral", + "src": "37980:14:51", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "37968:3:51", + "nodeType": "YulIdentifier", + "src": "37968:3:51" + }, + "nativeSrc": "37968:27:51", + "nodeType": "YulFunctionCall", + "src": "37968:27:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37941:6:51", + "nodeType": "YulIdentifier", + "src": "37941:6:51" + }, + "nativeSrc": "37941:55:51", + "nodeType": "YulFunctionCall", + "src": "37941:55:51" + }, + "nativeSrc": "37941:55:51", + "nodeType": "YulExpressionStatement", + "src": "37941:55:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint48__to_t_uint256_t_uint48__fromStack_reversed", + "nativeSrc": "37735:267:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "37823:9:51", + "nodeType": "YulTypedName", + "src": "37823:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "37834:6:51", + "nodeType": "YulTypedName", + "src": "37834:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "37842:6:51", + "nodeType": "YulTypedName", + "src": "37842:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "37853:4:51", + "nodeType": "YulTypedName", + "src": "37853:4:51", + "type": "" + } + ], + "src": "37735:267:51" + }, + { + "body": { + "nativeSrc": "38200:170:51", + "nodeType": "YulBlock", + "src": "38200:170:51", + "statements": [ + { + "nativeSrc": "38210:26:51", + "nodeType": "YulAssignment", + "src": "38210:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38222:9:51", + "nodeType": "YulIdentifier", + "src": "38222:9:51" + }, + { + "kind": "number", + "nativeSrc": "38233:2:51", + "nodeType": "YulLiteral", + "src": "38233:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38218:3:51", + "nodeType": "YulIdentifier", + "src": "38218:3:51" + }, + "nativeSrc": "38218:18:51", + "nodeType": "YulFunctionCall", + "src": "38218:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38210:4:51", + "nodeType": "YulIdentifier", + "src": "38210:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38252:9:51", + "nodeType": "YulIdentifier", + "src": "38252:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38267:6:51", + "nodeType": "YulIdentifier", + "src": "38267:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "38283:3:51", + "nodeType": "YulLiteral", + "src": "38283:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "38288:1:51", + "nodeType": "YulLiteral", + "src": "38288:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "38279:3:51", + "nodeType": "YulIdentifier", + "src": "38279:3:51" + }, + "nativeSrc": "38279:11:51", + "nodeType": "YulFunctionCall", + "src": "38279:11:51" + }, + { + "kind": "number", + "nativeSrc": "38292:1:51", + "nodeType": "YulLiteral", + "src": "38292:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38275:3:51", + "nodeType": "YulIdentifier", + "src": "38275:3:51" + }, + "nativeSrc": "38275:19:51", + "nodeType": "YulFunctionCall", + "src": "38275:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "38263:3:51", + "nodeType": "YulIdentifier", + "src": "38263:3:51" + }, + "nativeSrc": "38263:32:51", + "nodeType": "YulFunctionCall", + "src": "38263:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38245:6:51", + "nodeType": "YulIdentifier", + "src": "38245:6:51" + }, + "nativeSrc": "38245:51:51", + "nodeType": "YulFunctionCall", + "src": "38245:51:51" + }, + "nativeSrc": "38245:51:51", + "nodeType": "YulExpressionStatement", + "src": "38245:51:51" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38337:6:51", + "nodeType": "YulIdentifier", + "src": "38337:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38349:9:51", + "nodeType": "YulIdentifier", + "src": "38349:9:51" + }, + { + "kind": "number", + "nativeSrc": "38360:2:51", + "nodeType": "YulLiteral", + "src": "38360:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38345:3:51", + "nodeType": "YulIdentifier", + "src": "38345:3:51" + }, + "nativeSrc": "38345:18:51", + "nodeType": "YulFunctionCall", + "src": "38345:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_RentingParams", + "nativeSrc": "38305:31:51", + "nodeType": "YulIdentifier", + "src": "38305:31:51" + }, + "nativeSrc": "38305:59:51", + "nodeType": "YulFunctionCall", + "src": "38305:59:51" + }, + "nativeSrc": "38305:59:51", + "nodeType": "YulExpressionStatement", + "src": "38305:59:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_struct$_RentingParams_$11666_memory_ptr__to_t_address_t_struct$_RentingParams_$11666_memory_ptr__fromStack_reversed", + "nativeSrc": "38007:363:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38161:9:51", + "nodeType": "YulTypedName", + "src": "38161:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38172:6:51", + "nodeType": "YulTypedName", + "src": "38172:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38180:6:51", + "nodeType": "YulTypedName", + "src": "38180:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38191:4:51", + "nodeType": "YulTypedName", + "src": "38191:4:51", + "type": "" + } + ], + "src": "38007:363:51" + }, + { + "body": { + "nativeSrc": "38558:283:51", + "nodeType": "YulBlock", + "src": "38558:283:51", + "statements": [ + { + "nativeSrc": "38568:27:51", + "nodeType": "YulAssignment", + "src": "38568:27:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38580:9:51", + "nodeType": "YulIdentifier", + "src": "38580:9:51" + }, + { + "kind": "number", + "nativeSrc": "38591:3:51", + "nodeType": "YulLiteral", + "src": "38591:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38576:3:51", + "nodeType": "YulIdentifier", + "src": "38576:3:51" + }, + "nativeSrc": "38576:19:51", + "nodeType": "YulFunctionCall", + "src": "38576:19:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "38568:4:51", + "nodeType": "YulIdentifier", + "src": "38568:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38611:9:51", + "nodeType": "YulIdentifier", + "src": "38611:9:51" + }, + { + "name": "value0", + "nativeSrc": "38622:6:51", + "nodeType": "YulIdentifier", + "src": "38622:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38604:6:51", + "nodeType": "YulIdentifier", + "src": "38604:6:51" + }, + "nativeSrc": "38604:25:51", + "nodeType": "YulFunctionCall", + "src": "38604:25:51" + }, + "nativeSrc": "38604:25:51", + "nodeType": "YulExpressionStatement", + "src": "38604:25:51" + }, + { + "nativeSrc": "38638:29:51", + "nodeType": "YulVariableDeclaration", + "src": "38638:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "38656:3:51", + "nodeType": "YulLiteral", + "src": "38656:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "38661:1:51", + "nodeType": "YulLiteral", + "src": "38661:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "38652:3:51", + "nodeType": "YulIdentifier", + "src": "38652:3:51" + }, + "nativeSrc": "38652:11:51", + "nodeType": "YulFunctionCall", + "src": "38652:11:51" + }, + { + "kind": "number", + "nativeSrc": "38665:1:51", + "nodeType": "YulLiteral", + "src": "38665:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "38648:3:51", + "nodeType": "YulIdentifier", + "src": "38648:3:51" + }, + "nativeSrc": "38648:19:51", + "nodeType": "YulFunctionCall", + "src": "38648:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "38642:2:51", + "nodeType": "YulTypedName", + "src": "38642:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38687:9:51", + "nodeType": "YulIdentifier", + "src": "38687:9:51" + }, + { + "kind": "number", + "nativeSrc": "38698:2:51", + "nodeType": "YulLiteral", + "src": "38698:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38683:3:51", + "nodeType": "YulIdentifier", + "src": "38683:3:51" + }, + "nativeSrc": "38683:18:51", + "nodeType": "YulFunctionCall", + "src": "38683:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38707:6:51", + "nodeType": "YulIdentifier", + "src": "38707:6:51" + }, + { + "name": "_1", + "nativeSrc": "38715:2:51", + "nodeType": "YulIdentifier", + "src": "38715:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "38703:3:51", + "nodeType": "YulIdentifier", + "src": "38703:3:51" + }, + "nativeSrc": "38703:15:51", + "nodeType": "YulFunctionCall", + "src": "38703:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38676:6:51", + "nodeType": "YulIdentifier", + "src": "38676:6:51" + }, + "nativeSrc": "38676:43:51", + "nodeType": "YulFunctionCall", + "src": "38676:43:51" + }, + "nativeSrc": "38676:43:51", + "nodeType": "YulExpressionStatement", + "src": "38676:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38739:9:51", + "nodeType": "YulIdentifier", + "src": "38739:9:51" + }, + { + "kind": "number", + "nativeSrc": "38750:2:51", + "nodeType": "YulLiteral", + "src": "38750:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38735:3:51", + "nodeType": "YulIdentifier", + "src": "38735:3:51" + }, + "nativeSrc": "38735:18:51", + "nodeType": "YulFunctionCall", + "src": "38735:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "38759:6:51", + "nodeType": "YulIdentifier", + "src": "38759:6:51" + }, + { + "name": "_1", + "nativeSrc": "38767:2:51", + "nodeType": "YulIdentifier", + "src": "38767:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "38755:3:51", + "nodeType": "YulIdentifier", + "src": "38755:3:51" + }, + "nativeSrc": "38755:15:51", + "nodeType": "YulFunctionCall", + "src": "38755:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38728:6:51", + "nodeType": "YulIdentifier", + "src": "38728:6:51" + }, + "nativeSrc": "38728:43:51", + "nodeType": "YulFunctionCall", + "src": "38728:43:51" + }, + "nativeSrc": "38728:43:51", + "nodeType": "YulExpressionStatement", + "src": "38728:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38791:9:51", + "nodeType": "YulIdentifier", + "src": "38791:9:51" + }, + { + "kind": "number", + "nativeSrc": "38802:2:51", + "nodeType": "YulLiteral", + "src": "38802:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38787:3:51", + "nodeType": "YulIdentifier", + "src": "38787:3:51" + }, + "nativeSrc": "38787:18:51", + "nodeType": "YulFunctionCall", + "src": "38787:18:51" + }, + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "38811:6:51", + "nodeType": "YulIdentifier", + "src": "38811:6:51" + }, + { + "kind": "number", + "nativeSrc": "38819:14:51", + "nodeType": "YulLiteral", + "src": "38819:14:51", + "type": "", + "value": "0xffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "38807:3:51", + "nodeType": "YulIdentifier", + "src": "38807:3:51" + }, + "nativeSrc": "38807:27:51", + "nodeType": "YulFunctionCall", + "src": "38807:27:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "38780:6:51", + "nodeType": "YulIdentifier", + "src": "38780:6:51" + }, + "nativeSrc": "38780:55:51", + "nodeType": "YulFunctionCall", + "src": "38780:55:51" + }, + "nativeSrc": "38780:55:51", + "nodeType": "YulExpressionStatement", + "src": "38780:55:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address_t_address_t_uint48__to_t_uint256_t_address_t_address_t_uint48__fromStack_reversed", + "nativeSrc": "38375:466:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "38503:9:51", + "nodeType": "YulTypedName", + "src": "38503:9:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "38514:6:51", + "nodeType": "YulTypedName", + "src": "38514:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "38522:6:51", + "nodeType": "YulTypedName", + "src": "38522:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38530:6:51", + "nodeType": "YulTypedName", + "src": "38530:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38538:6:51", + "nodeType": "YulTypedName", + "src": "38538:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "38549:4:51", + "nodeType": "YulTypedName", + "src": "38549:4:51", + "type": "" + } + ], + "src": "38375:466:51" + }, + { + "body": { + "nativeSrc": "38983:150:51", + "nodeType": "YulBlock", + "src": "38983:150:51", + "statements": [ + { + "nativeSrc": "38993:27:51", + "nodeType": "YulVariableDeclaration", + "src": "38993:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39013:6:51", + "nodeType": "YulIdentifier", + "src": "39013:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "39007:5:51", + "nodeType": "YulIdentifier", + "src": "39007:5:51" + }, + "nativeSrc": "39007:13:51", + "nodeType": "YulFunctionCall", + "src": "39007:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "38997:6:51", + "nodeType": "YulTypedName", + "src": "38997:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39068:6:51", + "nodeType": "YulIdentifier", + "src": "39068:6:51" + }, + { + "kind": "number", + "nativeSrc": "39076:4:51", + "nodeType": "YulLiteral", + "src": "39076:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39064:3:51", + "nodeType": "YulIdentifier", + "src": "39064:3:51" + }, + "nativeSrc": "39064:17:51", + "nodeType": "YulFunctionCall", + "src": "39064:17:51" + }, + { + "name": "pos", + "nativeSrc": "39083:3:51", + "nodeType": "YulIdentifier", + "src": "39083:3:51" + }, + { + "name": "length", + "nativeSrc": "39088:6:51", + "nodeType": "YulIdentifier", + "src": "39088:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "39029:34:51", + "nodeType": "YulIdentifier", + "src": "39029:34:51" + }, + "nativeSrc": "39029:66:51", + "nodeType": "YulFunctionCall", + "src": "39029:66:51" + }, + "nativeSrc": "39029:66:51", + "nodeType": "YulExpressionStatement", + "src": "39029:66:51" + }, + { + "nativeSrc": "39104:23:51", + "nodeType": "YulAssignment", + "src": "39104:23:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "39115:3:51", + "nodeType": "YulIdentifier", + "src": "39115:3:51" + }, + { + "name": "length", + "nativeSrc": "39120:6:51", + "nodeType": "YulIdentifier", + "src": "39120:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39111:3:51", + "nodeType": "YulIdentifier", + "src": "39111:3:51" + }, + "nativeSrc": "39111:16:51", + "nodeType": "YulFunctionCall", + "src": "39111:16:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "39104:3:51", + "nodeType": "YulIdentifier", + "src": "39104:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "38846:287:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "38959:3:51", + "nodeType": "YulTypedName", + "src": "38959:3:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38964:6:51", + "nodeType": "YulTypedName", + "src": "38964:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "38975:3:51", + "nodeType": "YulTypedName", + "src": "38975:3:51", + "type": "" + } + ], + "src": "38846:287:51" + }, + { + "body": { + "nativeSrc": "39341:286:51", + "nodeType": "YulBlock", + "src": "39341:286:51", + "statements": [ + { + "nativeSrc": "39351:29:51", + "nodeType": "YulVariableDeclaration", + "src": "39351:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39369:3:51", + "nodeType": "YulLiteral", + "src": "39369:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "39374:1:51", + "nodeType": "YulLiteral", + "src": "39374:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "39365:3:51", + "nodeType": "YulIdentifier", + "src": "39365:3:51" + }, + "nativeSrc": "39365:11:51", + "nodeType": "YulFunctionCall", + "src": "39365:11:51" + }, + { + "kind": "number", + "nativeSrc": "39378:1:51", + "nodeType": "YulLiteral", + "src": "39378:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39361:3:51", + "nodeType": "YulIdentifier", + "src": "39361:3:51" + }, + "nativeSrc": "39361:19:51", + "nodeType": "YulFunctionCall", + "src": "39361:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "39355:2:51", + "nodeType": "YulTypedName", + "src": "39355:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39396:9:51", + "nodeType": "YulIdentifier", + "src": "39396:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39411:6:51", + "nodeType": "YulIdentifier", + "src": "39411:6:51" + }, + { + "name": "_1", + "nativeSrc": "39419:2:51", + "nodeType": "YulIdentifier", + "src": "39419:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39407:3:51", + "nodeType": "YulIdentifier", + "src": "39407:3:51" + }, + "nativeSrc": "39407:15:51", + "nodeType": "YulFunctionCall", + "src": "39407:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39389:6:51", + "nodeType": "YulIdentifier", + "src": "39389:6:51" + }, + "nativeSrc": "39389:34:51", + "nodeType": "YulFunctionCall", + "src": "39389:34:51" + }, + "nativeSrc": "39389:34:51", + "nodeType": "YulExpressionStatement", + "src": "39389:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39443:9:51", + "nodeType": "YulIdentifier", + "src": "39443:9:51" + }, + { + "kind": "number", + "nativeSrc": "39454:2:51", + "nodeType": "YulLiteral", + "src": "39454:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39439:3:51", + "nodeType": "YulIdentifier", + "src": "39439:3:51" + }, + "nativeSrc": "39439:18:51", + "nodeType": "YulFunctionCall", + "src": "39439:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39463:6:51", + "nodeType": "YulIdentifier", + "src": "39463:6:51" + }, + { + "name": "_1", + "nativeSrc": "39471:2:51", + "nodeType": "YulIdentifier", + "src": "39471:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "39459:3:51", + "nodeType": "YulIdentifier", + "src": "39459:3:51" + }, + "nativeSrc": "39459:15:51", + "nodeType": "YulFunctionCall", + "src": "39459:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39432:6:51", + "nodeType": "YulIdentifier", + "src": "39432:6:51" + }, + "nativeSrc": "39432:43:51", + "nodeType": "YulFunctionCall", + "src": "39432:43:51" + }, + "nativeSrc": "39432:43:51", + "nodeType": "YulExpressionStatement", + "src": "39432:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39495:9:51", + "nodeType": "YulIdentifier", + "src": "39495:9:51" + }, + { + "kind": "number", + "nativeSrc": "39506:2:51", + "nodeType": "YulLiteral", + "src": "39506:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39491:3:51", + "nodeType": "YulIdentifier", + "src": "39491:3:51" + }, + "nativeSrc": "39491:18:51", + "nodeType": "YulFunctionCall", + "src": "39491:18:51" + }, + { + "name": "value2", + "nativeSrc": "39511:6:51", + "nodeType": "YulIdentifier", + "src": "39511:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39484:6:51", + "nodeType": "YulIdentifier", + "src": "39484:6:51" + }, + "nativeSrc": "39484:34:51", + "nodeType": "YulFunctionCall", + "src": "39484:34:51" + }, + "nativeSrc": "39484:34:51", + "nodeType": "YulExpressionStatement", + "src": "39484:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39538:9:51", + "nodeType": "YulIdentifier", + "src": "39538:9:51" + }, + { + "kind": "number", + "nativeSrc": "39549:2:51", + "nodeType": "YulLiteral", + "src": "39549:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39534:3:51", + "nodeType": "YulIdentifier", + "src": "39534:3:51" + }, + "nativeSrc": "39534:18:51", + "nodeType": "YulFunctionCall", + "src": "39534:18:51" + }, + { + "kind": "number", + "nativeSrc": "39554:3:51", + "nodeType": "YulLiteral", + "src": "39554:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39527:6:51", + "nodeType": "YulIdentifier", + "src": "39527:6:51" + }, + "nativeSrc": "39527:31:51", + "nodeType": "YulFunctionCall", + "src": "39527:31:51" + }, + "nativeSrc": "39527:31:51", + "nodeType": "YulExpressionStatement", + "src": "39527:31:51" + }, + { + "nativeSrc": "39567:54:51", + "nodeType": "YulAssignment", + "src": "39567:54:51", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "39593:6:51", + "nodeType": "YulIdentifier", + "src": "39593:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39605:9:51", + "nodeType": "YulIdentifier", + "src": "39605:9:51" + }, + { + "kind": "number", + "nativeSrc": "39616:3:51", + "nodeType": "YulLiteral", + "src": "39616:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39601:3:51", + "nodeType": "YulIdentifier", + "src": "39601:3:51" + }, + "nativeSrc": "39601:19:51", + "nodeType": "YulFunctionCall", + "src": "39601:19:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "39575:17:51", + "nodeType": "YulIdentifier", + "src": "39575:17:51" + }, + "nativeSrc": "39575:46:51", + "nodeType": "YulFunctionCall", + "src": "39575:46:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39567:4:51", + "nodeType": "YulIdentifier", + "src": "39567:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "39138:489:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39286:9:51", + "nodeType": "YulTypedName", + "src": "39286:9:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "39297:6:51", + "nodeType": "YulTypedName", + "src": "39297:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "39305:6:51", + "nodeType": "YulTypedName", + "src": "39305:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "39313:6:51", + "nodeType": "YulTypedName", + "src": "39313:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39321:6:51", + "nodeType": "YulTypedName", + "src": "39321:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39332:4:51", + "nodeType": "YulTypedName", + "src": "39332:4:51", + "type": "" + } + ], + "src": "39138:489:51" + }, + { + "body": { + "nativeSrc": "39712:169:51", + "nodeType": "YulBlock", + "src": "39712:169:51", + "statements": [ + { + "body": { + "nativeSrc": "39758:16:51", + "nodeType": "YulBlock", + "src": "39758:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39767:1:51", + "nodeType": "YulLiteral", + "src": "39767:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "39770:1:51", + "nodeType": "YulLiteral", + "src": "39770:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "39760:6:51", + "nodeType": "YulIdentifier", + "src": "39760:6:51" + }, + "nativeSrc": "39760:12:51", + "nodeType": "YulFunctionCall", + "src": "39760:12:51" + }, + "nativeSrc": "39760:12:51", + "nodeType": "YulExpressionStatement", + "src": "39760:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "39733:7:51", + "nodeType": "YulIdentifier", + "src": "39733:7:51" + }, + { + "name": "headStart", + "nativeSrc": "39742:9:51", + "nodeType": "YulIdentifier", + "src": "39742:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39729:3:51", + "nodeType": "YulIdentifier", + "src": "39729:3:51" + }, + "nativeSrc": "39729:23:51", + "nodeType": "YulFunctionCall", + "src": "39729:23:51" + }, + { + "kind": "number", + "nativeSrc": "39754:2:51", + "nodeType": "YulLiteral", + "src": "39754:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "39725:3:51", + "nodeType": "YulIdentifier", + "src": "39725:3:51" + }, + "nativeSrc": "39725:32:51", + "nodeType": "YulFunctionCall", + "src": "39725:32:51" + }, + "nativeSrc": "39722:52:51", + "nodeType": "YulIf", + "src": "39722:52:51" + }, + { + "nativeSrc": "39783:29:51", + "nodeType": "YulVariableDeclaration", + "src": "39783:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39802:9:51", + "nodeType": "YulIdentifier", + "src": "39802:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "39796:5:51", + "nodeType": "YulIdentifier", + "src": "39796:5:51" + }, + "nativeSrc": "39796:16:51", + "nodeType": "YulFunctionCall", + "src": "39796:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "39787:5:51", + "nodeType": "YulTypedName", + "src": "39787:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "39845:5:51", + "nodeType": "YulIdentifier", + "src": "39845:5:51" + } + ], + "functionName": { + "name": "validator_revert_bytes4", + "nativeSrc": "39821:23:51", + "nodeType": "YulIdentifier", + "src": "39821:23:51" + }, + "nativeSrc": "39821:30:51", + "nodeType": "YulFunctionCall", + "src": "39821:30:51" + }, + "nativeSrc": "39821:30:51", + "nodeType": "YulExpressionStatement", + "src": "39821:30:51" + }, + { + "nativeSrc": "39860:15:51", + "nodeType": "YulAssignment", + "src": "39860:15:51", + "value": { + "name": "value", + "nativeSrc": "39870:5:51", + "nodeType": "YulIdentifier", + "src": "39870:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "39860:6:51", + "nodeType": "YulIdentifier", + "src": "39860:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "39632:249:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "39678:9:51", + "nodeType": "YulTypedName", + "src": "39678:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "39689:7:51", + "nodeType": "YulTypedName", + "src": "39689:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "39701:6:51", + "nodeType": "YulTypedName", + "src": "39701:6:51", + "type": "" + } + ], + "src": "39632:249:51" + }, + { + "body": { + "nativeSrc": "39918:95:51", + "nodeType": "YulBlock", + "src": "39918:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39935:1:51", + "nodeType": "YulLiteral", + "src": "39935:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39942:3:51", + "nodeType": "YulLiteral", + "src": "39942:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "39947:10:51", + "nodeType": "YulLiteral", + "src": "39947:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "39938:3:51", + "nodeType": "YulIdentifier", + "src": "39938:3:51" + }, + "nativeSrc": "39938:20:51", + "nodeType": "YulFunctionCall", + "src": "39938:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39928:6:51", + "nodeType": "YulIdentifier", + "src": "39928:6:51" + }, + "nativeSrc": "39928:31:51", + "nodeType": "YulFunctionCall", + "src": "39928:31:51" + }, + "nativeSrc": "39928:31:51", + "nodeType": "YulExpressionStatement", + "src": "39928:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39975:1:51", + "nodeType": "YulLiteral", + "src": "39975:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "39978:4:51", + "nodeType": "YulLiteral", + "src": "39978:4:51", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39968:6:51", + "nodeType": "YulIdentifier", + "src": "39968:6:51" + }, + "nativeSrc": "39968:15:51", + "nodeType": "YulFunctionCall", + "src": "39968:15:51" + }, + "nativeSrc": "39968:15:51", + "nodeType": "YulExpressionStatement", + "src": "39968:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "39999:1:51", + "nodeType": "YulLiteral", + "src": "39999:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "40002:4:51", + "nodeType": "YulLiteral", + "src": "40002:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "39992:6:51", + "nodeType": "YulIdentifier", + "src": "39992:6:51" + }, + "nativeSrc": "39992:15:51", + "nodeType": "YulFunctionCall", + "src": "39992:15:51" + }, + "nativeSrc": "39992:15:51", + "nodeType": "YulExpressionStatement", + "src": "39992:15:51" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "39886:127:51", + "nodeType": "YulFunctionDefinition", + "src": "39886:127:51" + }, + { + "body": { + "nativeSrc": "40189:124:51", + "nodeType": "YulBlock", + "src": "40189:124:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40206:9:51", + "nodeType": "YulIdentifier", + "src": "40206:9:51" + }, + { + "kind": "number", + "nativeSrc": "40217:2:51", + "nodeType": "YulLiteral", + "src": "40217:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40199:6:51", + "nodeType": "YulIdentifier", + "src": "40199:6:51" + }, + "nativeSrc": "40199:21:51", + "nodeType": "YulFunctionCall", + "src": "40199:21:51" + }, + "nativeSrc": "40199:21:51", + "nodeType": "YulExpressionStatement", + "src": "40199:21:51" + }, + { + "nativeSrc": "40229:78:51", + "nodeType": "YulAssignment", + "src": "40229:78:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "40280:6:51", + "nodeType": "YulIdentifier", + "src": "40280:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40292:9:51", + "nodeType": "YulIdentifier", + "src": "40292:9:51" + }, + { + "kind": "number", + "nativeSrc": "40303:2:51", + "nodeType": "YulLiteral", + "src": "40303:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40288:3:51", + "nodeType": "YulIdentifier", + "src": "40288:3:51" + }, + "nativeSrc": "40288:18:51", + "nodeType": "YulFunctionCall", + "src": "40288:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_WorkerpoolOrder_calldata", + "nativeSrc": "40237:42:51", + "nodeType": "YulIdentifier", + "src": "40237:42:51" + }, + "nativeSrc": "40237:70:51", + "nodeType": "YulFunctionCall", + "src": "40237:70:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40229:4:51", + "nodeType": "YulIdentifier", + "src": "40229:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_WorkerpoolOrder_$11503_calldata_ptr__to_t_struct$_WorkerpoolOrder_$11503_memory_ptr__fromStack_reversed", + "nativeSrc": "40018:295:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40158:9:51", + "nodeType": "YulTypedName", + "src": "40158:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40169:6:51", + "nodeType": "YulTypedName", + "src": "40169:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40180:4:51", + "nodeType": "YulTypedName", + "src": "40180:4:51", + "type": "" + } + ], + "src": "40018:295:51" + }, + { + "body": { + "nativeSrc": "40491:121:51", + "nodeType": "YulBlock", + "src": "40491:121:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40508:9:51", + "nodeType": "YulIdentifier", + "src": "40508:9:51" + }, + { + "kind": "number", + "nativeSrc": "40519:2:51", + "nodeType": "YulLiteral", + "src": "40519:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40501:6:51", + "nodeType": "YulIdentifier", + "src": "40501:6:51" + }, + "nativeSrc": "40501:21:51", + "nodeType": "YulFunctionCall", + "src": "40501:21:51" + }, + "nativeSrc": "40501:21:51", + "nodeType": "YulExpressionStatement", + "src": "40501:21:51" + }, + { + "nativeSrc": "40531:75:51", + "nodeType": "YulAssignment", + "src": "40531:75:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "40579:6:51", + "nodeType": "YulIdentifier", + "src": "40579:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40591:9:51", + "nodeType": "YulIdentifier", + "src": "40591:9:51" + }, + { + "kind": "number", + "nativeSrc": "40602:2:51", + "nodeType": "YulLiteral", + "src": "40602:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40587:3:51", + "nodeType": "YulIdentifier", + "src": "40587:3:51" + }, + "nativeSrc": "40587:18:51", + "nodeType": "YulFunctionCall", + "src": "40587:18:51" + } + ], + "functionName": { + "name": "abi_encode_struct_DatasetOrderOperation", + "nativeSrc": "40539:39:51", + "nodeType": "YulIdentifier", + "src": "40539:39:51" + }, + "nativeSrc": "40539:67:51", + "nodeType": "YulFunctionCall", + "src": "40539:67:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40531:4:51", + "nodeType": "YulIdentifier", + "src": "40531:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_AppOrderOperation_$11545_memory_ptr__to_t_struct$_AppOrderOperation_$11545_memory_ptr__fromStack_reversed", + "nativeSrc": "40318:294:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40460:9:51", + "nodeType": "YulTypedName", + "src": "40460:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40471:6:51", + "nodeType": "YulTypedName", + "src": "40471:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40482:4:51", + "nodeType": "YulTypedName", + "src": "40482:4:51", + "type": "" + } + ], + "src": "40318:294:51" + }, + { + "body": { + "nativeSrc": "40798:549:51", + "nodeType": "YulBlock", + "src": "40798:549:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40815:9:51", + "nodeType": "YulIdentifier", + "src": "40815:9:51" + }, + { + "kind": "number", + "nativeSrc": "40826:2:51", + "nodeType": "YulLiteral", + "src": "40826:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40808:6:51", + "nodeType": "YulIdentifier", + "src": "40808:6:51" + }, + "nativeSrc": "40808:21:51", + "nodeType": "YulFunctionCall", + "src": "40808:21:51" + }, + "nativeSrc": "40808:21:51", + "nodeType": "YulExpressionStatement", + "src": "40808:21:51" + }, + { + "nativeSrc": "40838:33:51", + "nodeType": "YulVariableDeclaration", + "src": "40838:33:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "40864:6:51", + "nodeType": "YulIdentifier", + "src": "40864:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "40858:5:51", + "nodeType": "YulIdentifier", + "src": "40858:5:51" + }, + "nativeSrc": "40858:13:51", + "nodeType": "YulFunctionCall", + "src": "40858:13:51" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "40842:12:51", + "nodeType": "YulTypedName", + "src": "40842:12:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40891:9:51", + "nodeType": "YulIdentifier", + "src": "40891:9:51" + }, + { + "kind": "number", + "nativeSrc": "40902:2:51", + "nodeType": "YulLiteral", + "src": "40902:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40887:3:51", + "nodeType": "YulIdentifier", + "src": "40887:3:51" + }, + "nativeSrc": "40887:18:51", + "nodeType": "YulFunctionCall", + "src": "40887:18:51" + }, + { + "kind": "number", + "nativeSrc": "40907:4:51", + "nodeType": "YulLiteral", + "src": "40907:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "40880:6:51", + "nodeType": "YulIdentifier", + "src": "40880:6:51" + }, + "nativeSrc": "40880:32:51", + "nodeType": "YulFunctionCall", + "src": "40880:32:51" + }, + "nativeSrc": "40880:32:51", + "nodeType": "YulExpressionStatement", + "src": "40880:32:51" + }, + { + "nativeSrc": "40921:79:51", + "nodeType": "YulVariableDeclaration", + "src": "40921:79:51", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "40966:12:51", + "nodeType": "YulIdentifier", + "src": "40966:12:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40984:9:51", + "nodeType": "YulIdentifier", + "src": "40984:9:51" + }, + { + "kind": "number", + "nativeSrc": "40995:3:51", + "nodeType": "YulLiteral", + "src": "40995:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40980:3:51", + "nodeType": "YulIdentifier", + "src": "40980:3:51" + }, + "nativeSrc": "40980:19:51", + "nodeType": "YulFunctionCall", + "src": "40980:19:51" + } + ], + "functionName": { + "name": "abi_encode_struct_RequestOrder", + "nativeSrc": "40935:30:51", + "nodeType": "YulIdentifier", + "src": "40935:30:51" + }, + "nativeSrc": "40935:65:51", + "nodeType": "YulFunctionCall", + "src": "40935:65:51" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "40925:6:51", + "nodeType": "YulTypedName", + "src": "40925:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "41009:44:51", + "nodeType": "YulVariableDeclaration", + "src": "41009:44:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "41041:6:51", + "nodeType": "YulIdentifier", + "src": "41041:6:51" + }, + { + "kind": "number", + "nativeSrc": "41049:2:51", + "nodeType": "YulLiteral", + "src": "41049:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41037:3:51", + "nodeType": "YulIdentifier", + "src": "41037:3:51" + }, + "nativeSrc": "41037:15:51", + "nodeType": "YulFunctionCall", + "src": "41037:15:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "41031:5:51", + "nodeType": "YulIdentifier", + "src": "41031:5:51" + }, + "nativeSrc": "41031:22:51", + "nodeType": "YulFunctionCall", + "src": "41031:22:51" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "41013:14:51", + "nodeType": "YulTypedName", + "src": "41013:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "41089:14:51", + "nodeType": "YulIdentifier", + "src": "41089:14:51" + } + ], + "functionName": { + "name": "validator_assert_enum_Mode", + "nativeSrc": "41062:26:51", + "nodeType": "YulIdentifier", + "src": "41062:26:51" + }, + "nativeSrc": "41062:42:51", + "nodeType": "YulFunctionCall", + "src": "41062:42:51" + }, + "nativeSrc": "41062:42:51", + "nodeType": "YulExpressionStatement", + "src": "41062:42:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41124:9:51", + "nodeType": "YulIdentifier", + "src": "41124:9:51" + }, + { + "kind": "number", + "nativeSrc": "41135:2:51", + "nodeType": "YulLiteral", + "src": "41135:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41120:3:51", + "nodeType": "YulIdentifier", + "src": "41120:3:51" + }, + "nativeSrc": "41120:18:51", + "nodeType": "YulFunctionCall", + "src": "41120:18:51" + }, + { + "name": "memberValue0_1", + "nativeSrc": "41140:14:51", + "nodeType": "YulIdentifier", + "src": "41140:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41113:6:51", + "nodeType": "YulIdentifier", + "src": "41113:6:51" + }, + "nativeSrc": "41113:42:51", + "nodeType": "YulFunctionCall", + "src": "41113:42:51" + }, + "nativeSrc": "41113:42:51", + "nodeType": "YulExpressionStatement", + "src": "41113:42:51" + }, + { + "nativeSrc": "41164:44:51", + "nodeType": "YulVariableDeclaration", + "src": "41164:44:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "41196:6:51", + "nodeType": "YulIdentifier", + "src": "41196:6:51" + }, + { + "kind": "number", + "nativeSrc": "41204:2:51", + "nodeType": "YulLiteral", + "src": "41204:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41192:3:51", + "nodeType": "YulIdentifier", + "src": "41192:3:51" + }, + "nativeSrc": "41192:15:51", + "nodeType": "YulFunctionCall", + "src": "41192:15:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "41186:5:51", + "nodeType": "YulIdentifier", + "src": "41186:5:51" + }, + "nativeSrc": "41186:22:51", + "nodeType": "YulFunctionCall", + "src": "41186:22:51" + }, + "variables": [ + { + "name": "memberValue0_2", + "nativeSrc": "41168:14:51", + "nodeType": "YulTypedName", + "src": "41168:14:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41228:9:51", + "nodeType": "YulIdentifier", + "src": "41228:9:51" + }, + { + "kind": "number", + "nativeSrc": "41239:4:51", + "nodeType": "YulLiteral", + "src": "41239:4:51", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41224:3:51", + "nodeType": "YulIdentifier", + "src": "41224:3:51" + }, + "nativeSrc": "41224:20:51", + "nodeType": "YulFunctionCall", + "src": "41224:20:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "41254:6:51", + "nodeType": "YulIdentifier", + "src": "41254:6:51" + }, + { + "name": "headStart", + "nativeSrc": "41262:9:51", + "nodeType": "YulIdentifier", + "src": "41262:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41250:3:51", + "nodeType": "YulIdentifier", + "src": "41250:3:51" + }, + "nativeSrc": "41250:22:51", + "nodeType": "YulFunctionCall", + "src": "41250:22:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "41278:2:51", + "nodeType": "YulLiteral", + "src": "41278:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "41274:3:51", + "nodeType": "YulIdentifier", + "src": "41274:3:51" + }, + "nativeSrc": "41274:7:51", + "nodeType": "YulFunctionCall", + "src": "41274:7:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41246:3:51", + "nodeType": "YulIdentifier", + "src": "41246:3:51" + }, + "nativeSrc": "41246:36:51", + "nodeType": "YulFunctionCall", + "src": "41246:36:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41217:6:51", + "nodeType": "YulIdentifier", + "src": "41217:6:51" + }, + "nativeSrc": "41217:66:51", + "nodeType": "YulFunctionCall", + "src": "41217:66:51" + }, + "nativeSrc": "41217:66:51", + "nodeType": "YulExpressionStatement", + "src": "41217:66:51" + }, + { + "nativeSrc": "41292:49:51", + "nodeType": "YulAssignment", + "src": "41292:49:51", + "value": { + "arguments": [ + { + "name": "memberValue0_2", + "nativeSrc": "41318:14:51", + "nodeType": "YulIdentifier", + "src": "41318:14:51" + }, + { + "name": "tail_1", + "nativeSrc": "41334:6:51", + "nodeType": "YulIdentifier", + "src": "41334:6:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "41300:17:51", + "nodeType": "YulIdentifier", + "src": "41300:17:51" + }, + "nativeSrc": "41300:41:51", + "nodeType": "YulFunctionCall", + "src": "41300:41:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "41292:4:51", + "nodeType": "YulIdentifier", + "src": "41292:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_RequestOrderOperation_$11572_memory_ptr__to_t_struct$_RequestOrderOperation_$11572_memory_ptr__fromStack_reversed", + "nativeSrc": "40617:730:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "40767:9:51", + "nodeType": "YulTypedName", + "src": "40767:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40778:6:51", + "nodeType": "YulTypedName", + "src": "40778:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40789:4:51", + "nodeType": "YulTypedName", + "src": "40789:4:51", + "type": "" + } + ], + "src": "40617:730:51" + }, + { + "body": { + "nativeSrc": "41481:145:51", + "nodeType": "YulBlock", + "src": "41481:145:51", + "statements": [ + { + "nativeSrc": "41491:26:51", + "nodeType": "YulAssignment", + "src": "41491:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41503:9:51", + "nodeType": "YulIdentifier", + "src": "41503:9:51" + }, + { + "kind": "number", + "nativeSrc": "41514:2:51", + "nodeType": "YulLiteral", + "src": "41514:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41499:3:51", + "nodeType": "YulIdentifier", + "src": "41499:3:51" + }, + "nativeSrc": "41499:18:51", + "nodeType": "YulFunctionCall", + "src": "41499:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "41491:4:51", + "nodeType": "YulIdentifier", + "src": "41491:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41533:9:51", + "nodeType": "YulIdentifier", + "src": "41533:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "41548:6:51", + "nodeType": "YulIdentifier", + "src": "41548:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "41564:3:51", + "nodeType": "YulLiteral", + "src": "41564:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "41569:1:51", + "nodeType": "YulLiteral", + "src": "41569:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "41560:3:51", + "nodeType": "YulIdentifier", + "src": "41560:3:51" + }, + "nativeSrc": "41560:11:51", + "nodeType": "YulFunctionCall", + "src": "41560:11:51" + }, + { + "kind": "number", + "nativeSrc": "41573:1:51", + "nodeType": "YulLiteral", + "src": "41573:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41556:3:51", + "nodeType": "YulIdentifier", + "src": "41556:3:51" + }, + "nativeSrc": "41556:19:51", + "nodeType": "YulFunctionCall", + "src": "41556:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "41544:3:51", + "nodeType": "YulIdentifier", + "src": "41544:3:51" + }, + "nativeSrc": "41544:32:51", + "nodeType": "YulFunctionCall", + "src": "41544:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41526:6:51", + "nodeType": "YulIdentifier", + "src": "41526:6:51" + }, + "nativeSrc": "41526:51:51", + "nodeType": "YulFunctionCall", + "src": "41526:51:51" + }, + "nativeSrc": "41526:51:51", + "nodeType": "YulExpressionStatement", + "src": "41526:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41597:9:51", + "nodeType": "YulIdentifier", + "src": "41597:9:51" + }, + { + "kind": "number", + "nativeSrc": "41608:2:51", + "nodeType": "YulLiteral", + "src": "41608:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41593:3:51", + "nodeType": "YulIdentifier", + "src": "41593:3:51" + }, + "nativeSrc": "41593:18:51", + "nodeType": "YulFunctionCall", + "src": "41593:18:51" + }, + { + "name": "value1", + "nativeSrc": "41613:6:51", + "nodeType": "YulIdentifier", + "src": "41613:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41586:6:51", + "nodeType": "YulIdentifier", + "src": "41586:6:51" + }, + "nativeSrc": "41586:34:51", + "nodeType": "YulFunctionCall", + "src": "41586:34:51" + }, + "nativeSrc": "41586:34:51", + "nodeType": "YulExpressionStatement", + "src": "41586:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "41352:274:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "41442:9:51", + "nodeType": "YulTypedName", + "src": "41442:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "41453:6:51", + "nodeType": "YulTypedName", + "src": "41453:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "41461:6:51", + "nodeType": "YulTypedName", + "src": "41461:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "41472:4:51", + "nodeType": "YulTypedName", + "src": "41472:4:51", + "type": "" + } + ], + "src": "41352:274:51" + }, + { + "body": { + "nativeSrc": "41679:31:51", + "nodeType": "YulBlock", + "src": "41679:31:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "41688:3:51", + "nodeType": "YulIdentifier", + "src": "41688:3:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "41697:3:51", + "nodeType": "YulLiteral", + "src": "41697:3:51", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "41702:4:51", + "nodeType": "YulLiteral", + "src": "41702:4:51", + "type": "", + "value": "8829" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "41693:3:51", + "nodeType": "YulIdentifier", + "src": "41693:3:51" + }, + "nativeSrc": "41693:14:51", + "nodeType": "YulFunctionCall", + "src": "41693:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "41681:6:51", + "nodeType": "YulIdentifier", + "src": "41681:6:51" + }, + "nativeSrc": "41681:27:51", + "nodeType": "YulFunctionCall", + "src": "41681:27:51" + }, + "nativeSrc": "41681:27:51", + "nodeType": "YulExpressionStatement", + "src": "41681:27:51" + } + ] + }, + "name": "abi_encode_stringliteral_835b", + "nativeSrc": "41631:79:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "41670:3:51", + "nodeType": "YulTypedName", + "src": "41670:3:51", + "type": "" + } + ], + "src": "41631:79:51" + }, + { + "body": { + "nativeSrc": "42133:1041:51", + "nodeType": "YulBlock", + "src": "42133:1041:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "42150:3:51", + "nodeType": "YulIdentifier", + "src": "42150:3:51" + }, + { + "kind": "number", + "nativeSrc": "42155:66:51", + "nodeType": "YulLiteral", + "src": "42155:66:51", + "type": "", + "value": "0x7b2269657865635f726573756c745f656e6372797074696f6e223a7472756500" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42143:6:51", + "nodeType": "YulIdentifier", + "src": "42143:6:51" + }, + "nativeSrc": "42143:79:51", + "nodeType": "YulFunctionCall", + "src": "42143:79:51" + }, + "nativeSrc": "42143:79:51", + "nodeType": "YulExpressionStatement", + "src": "42143:79:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "42242:3:51", + "nodeType": "YulIdentifier", + "src": "42242:3:51" + }, + { + "kind": "number", + "nativeSrc": "42247:2:51", + "nodeType": "YulLiteral", + "src": "42247:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42238:3:51", + "nodeType": "YulIdentifier", + "src": "42238:3:51" + }, + "nativeSrc": "42238:12:51", + "nodeType": "YulFunctionCall", + "src": "42238:12:51" + }, + { + "kind": "number", + "nativeSrc": "42252:66:51", + "nodeType": "YulLiteral", + "src": "42252:66:51", + "type": "", + "value": "0x2c2269657865635f726573756c745f73746f726167655f70726f766964657222" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42231:6:51", + "nodeType": "YulIdentifier", + "src": "42231:6:51" + }, + "nativeSrc": "42231:88:51", + "nodeType": "YulFunctionCall", + "src": "42231:88:51" + }, + "nativeSrc": "42231:88:51", + "nodeType": "YulExpressionStatement", + "src": "42231:88:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "42339:3:51", + "nodeType": "YulIdentifier", + "src": "42339:3:51" + }, + { + "kind": "number", + "nativeSrc": "42344:2:51", + "nodeType": "YulLiteral", + "src": "42344:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42335:3:51", + "nodeType": "YulIdentifier", + "src": "42335:3:51" + }, + "nativeSrc": "42335:12:51", + "nodeType": "YulFunctionCall", + "src": "42335:12:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "42353:3:51", + "nodeType": "YulLiteral", + "src": "42353:3:51", + "type": "", + "value": "241" + }, + { + "kind": "number", + "nativeSrc": "42358:4:51", + "nodeType": "YulLiteral", + "src": "42358:4:51", + "type": "", + "value": "7441" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "42349:3:51", + "nodeType": "YulIdentifier", + "src": "42349:3:51" + }, + "nativeSrc": "42349:14:51", + "nodeType": "YulFunctionCall", + "src": "42349:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42328:6:51", + "nodeType": "YulIdentifier", + "src": "42328:6:51" + }, + "nativeSrc": "42328:36:51", + "nodeType": "YulFunctionCall", + "src": "42328:36:51" + }, + "nativeSrc": "42328:36:51", + "nodeType": "YulExpressionStatement", + "src": "42328:36:51" + }, + { + "nativeSrc": "42373:12:51", + "nodeType": "YulVariableDeclaration", + "src": "42373:12:51", + "value": { + "kind": "number", + "nativeSrc": "42383:2:51", + "nodeType": "YulLiteral", + "src": "42383:2:51", + "type": "", + "value": "65" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "42377:2:51", + "nodeType": "YulTypedName", + "src": "42377:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "42394:12:51", + "nodeType": "YulVariableDeclaration", + "src": "42394:12:51", + "value": { + "kind": "number", + "nativeSrc": "42405:1:51", + "nodeType": "YulLiteral", + "src": "42405:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "ret", + "nativeSrc": "42398:3:51", + "nodeType": "YulTypedName", + "src": "42398:3:51", + "type": "" + } + ] + }, + { + "nativeSrc": "42415:30:51", + "nodeType": "YulVariableDeclaration", + "src": "42415:30:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "42438:6:51", + "nodeType": "YulIdentifier", + "src": "42438:6:51" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "42432:5:51", + "nodeType": "YulIdentifier", + "src": "42432:5:51" + }, + "nativeSrc": "42432:13:51", + "nodeType": "YulFunctionCall", + "src": "42432:13:51" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "42419:9:51", + "nodeType": "YulTypedName", + "src": "42419:9:51", + "type": "" + } + ] + }, + { + "nativeSrc": "42454:50:51", + "nodeType": "YulVariableDeclaration", + "src": "42454:50:51", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "42494:9:51", + "nodeType": "YulIdentifier", + "src": "42494:9:51" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "42468:25:51", + "nodeType": "YulIdentifier", + "src": "42468:25:51" + }, + "nativeSrc": "42468:36:51", + "nodeType": "YulFunctionCall", + "src": "42468:36:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "42458:6:51", + "nodeType": "YulTypedName", + "src": "42458:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "42513:11:51", + "nodeType": "YulVariableDeclaration", + "src": "42513:11:51", + "value": { + "kind": "number", + "nativeSrc": "42523:1:51", + "nodeType": "YulLiteral", + "src": "42523:1:51", + "type": "", + "value": "1" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "42517:2:51", + "nodeType": "YulTypedName", + "src": "42517:2:51", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "42573:144:51", + "nodeType": "YulBlock", + "src": "42573:144:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "42598:3:51", + "nodeType": "YulIdentifier", + "src": "42598:3:51" + }, + { + "kind": "number", + "nativeSrc": "42603:2:51", + "nodeType": "YulLiteral", + "src": "42603:2:51", + "type": "", + "value": "65" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42594:3:51", + "nodeType": "YulIdentifier", + "src": "42594:3:51" + }, + "nativeSrc": "42594:12:51", + "nodeType": "YulFunctionCall", + "src": "42594:12:51" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "42612:9:51", + "nodeType": "YulIdentifier", + "src": "42612:9:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "42627:3:51", + "nodeType": "YulLiteral", + "src": "42627:3:51", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "42623:3:51", + "nodeType": "YulIdentifier", + "src": "42623:3:51" + }, + "nativeSrc": "42623:8:51", + "nodeType": "YulFunctionCall", + "src": "42623:8:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "42608:3:51", + "nodeType": "YulIdentifier", + "src": "42608:3:51" + }, + "nativeSrc": "42608:24:51", + "nodeType": "YulFunctionCall", + "src": "42608:24:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42587:6:51", + "nodeType": "YulIdentifier", + "src": "42587:6:51" + }, + "nativeSrc": "42587:46:51", + "nodeType": "YulFunctionCall", + "src": "42587:46:51" + }, + "nativeSrc": "42587:46:51", + "nodeType": "YulExpressionStatement", + "src": "42587:46:51" + }, + { + "nativeSrc": "42646:61:51", + "nodeType": "YulAssignment", + "src": "42646:61:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "42661:3:51", + "nodeType": "YulIdentifier", + "src": "42661:3:51" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "42670:6:51", + "nodeType": "YulIdentifier", + "src": "42670:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "42692:6:51", + "nodeType": "YulIdentifier", + "src": "42692:6:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "42685:6:51", + "nodeType": "YulIdentifier", + "src": "42685:6:51" + }, + "nativeSrc": "42685:14:51", + "nodeType": "YulFunctionCall", + "src": "42685:14:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "42678:6:51", + "nodeType": "YulIdentifier", + "src": "42678:6:51" + }, + "nativeSrc": "42678:22:51", + "nodeType": "YulFunctionCall", + "src": "42678:22:51" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "42666:3:51", + "nodeType": "YulIdentifier", + "src": "42666:3:51" + }, + "nativeSrc": "42666:35:51", + "nodeType": "YulFunctionCall", + "src": "42666:35:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42657:3:51", + "nodeType": "YulIdentifier", + "src": "42657:3:51" + }, + "nativeSrc": "42657:45:51", + "nodeType": "YulFunctionCall", + "src": "42657:45:51" + }, + { + "kind": "number", + "nativeSrc": "42704:2:51", + "nodeType": "YulLiteral", + "src": "42704:2:51", + "type": "", + "value": "65" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42653:3:51", + "nodeType": "YulIdentifier", + "src": "42653:3:51" + }, + "nativeSrc": "42653:54:51", + "nodeType": "YulFunctionCall", + "src": "42653:54:51" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "42646:3:51", + "nodeType": "YulIdentifier", + "src": "42646:3:51" + } + ] + } + ] + }, + "nativeSrc": "42566:151:51", + "nodeType": "YulCase", + "src": "42566:151:51", + "value": { + "kind": "number", + "nativeSrc": "42571:1:51", + "nodeType": "YulLiteral", + "src": "42571:1:51", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "42733:365:51", + "nodeType": "YulBlock", + "src": "42733:365:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "42754:1:51", + "nodeType": "YulLiteral", + "src": "42754:1:51", + "type": "", + "value": "0" + }, + { + "name": "value0", + "nativeSrc": "42757:6:51", + "nodeType": "YulIdentifier", + "src": "42757:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42747:6:51", + "nodeType": "YulIdentifier", + "src": "42747:6:51" + }, + "nativeSrc": "42747:17:51", + "nodeType": "YulFunctionCall", + "src": "42747:17:51" + }, + "nativeSrc": "42747:17:51", + "nodeType": "YulExpressionStatement", + "src": "42747:17:51" + }, + { + "nativeSrc": "42777:12:51", + "nodeType": "YulVariableDeclaration", + "src": "42777:12:51", + "value": { + "kind": "number", + "nativeSrc": "42787:2:51", + "nodeType": "YulLiteral", + "src": "42787:2:51", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "42781:2:51", + "nodeType": "YulTypedName", + "src": "42781:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "42802:31:51", + "nodeType": "YulVariableDeclaration", + "src": "42802:31:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "42827:1:51", + "nodeType": "YulLiteral", + "src": "42827:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "42830:2:51", + "nodeType": "YulLiteral", + "src": "42830:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "42817:9:51", + "nodeType": "YulIdentifier", + "src": "42817:9:51" + }, + "nativeSrc": "42817:16:51", + "nodeType": "YulFunctionCall", + "src": "42817:16:51" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "42806:7:51", + "nodeType": "YulTypedName", + "src": "42806:7:51", + "type": "" + } + ] + }, + { + "nativeSrc": "42846:10:51", + "nodeType": "YulVariableDeclaration", + "src": "42846:10:51", + "value": { + "kind": "number", + "nativeSrc": "42855:1:51", + "nodeType": "YulLiteral", + "src": "42855:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "42850:1:51", + "nodeType": "YulTypedName", + "src": "42850:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "42923:120:51", + "nodeType": "YulBlock", + "src": "42923:120:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "42956:3:51", + "nodeType": "YulIdentifier", + "src": "42956:3:51" + }, + { + "name": "i", + "nativeSrc": "42961:1:51", + "nodeType": "YulIdentifier", + "src": "42961:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42952:3:51", + "nodeType": "YulIdentifier", + "src": "42952:3:51" + }, + "nativeSrc": "42952:11:51", + "nodeType": "YulFunctionCall", + "src": "42952:11:51" + }, + { + "name": "_1", + "nativeSrc": "42965:2:51", + "nodeType": "YulIdentifier", + "src": "42965:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42948:3:51", + "nodeType": "YulIdentifier", + "src": "42948:3:51" + }, + "nativeSrc": "42948:20:51", + "nodeType": "YulFunctionCall", + "src": "42948:20:51" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "42976:7:51", + "nodeType": "YulIdentifier", + "src": "42976:7:51" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "42970:5:51", + "nodeType": "YulIdentifier", + "src": "42970:5:51" + }, + "nativeSrc": "42970:14:51", + "nodeType": "YulFunctionCall", + "src": "42970:14:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "42941:6:51", + "nodeType": "YulIdentifier", + "src": "42941:6:51" + }, + "nativeSrc": "42941:44:51", + "nodeType": "YulFunctionCall", + "src": "42941:44:51" + }, + "nativeSrc": "42941:44:51", + "nodeType": "YulExpressionStatement", + "src": "42941:44:51" + }, + { + "nativeSrc": "43002:27:51", + "nodeType": "YulAssignment", + "src": "43002:27:51", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "43017:7:51", + "nodeType": "YulIdentifier", + "src": "43017:7:51" + }, + { + "name": "_2", + "nativeSrc": "43026:2:51", + "nodeType": "YulIdentifier", + "src": "43026:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "43013:3:51", + "nodeType": "YulIdentifier", + "src": "43013:3:51" + }, + "nativeSrc": "43013:16:51", + "nodeType": "YulFunctionCall", + "src": "43013:16:51" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "43002:7:51", + "nodeType": "YulIdentifier", + "src": "43002:7:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "42880:1:51", + "nodeType": "YulIdentifier", + "src": "42880:1:51" + }, + { + "name": "length", + "nativeSrc": "42883:6:51", + "nodeType": "YulIdentifier", + "src": "42883:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "42877:2:51", + "nodeType": "YulIdentifier", + "src": "42877:2:51" + }, + "nativeSrc": "42877:13:51", + "nodeType": "YulFunctionCall", + "src": "42877:13:51" + }, + "nativeSrc": "42869:174:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "42891:19:51", + "nodeType": "YulBlock", + "src": "42891:19:51", + "statements": [ + { + "nativeSrc": "42893:15:51", + "nodeType": "YulAssignment", + "src": "42893:15:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "42902:1:51", + "nodeType": "YulIdentifier", + "src": "42902:1:51" + }, + { + "name": "_3", + "nativeSrc": "42905:2:51", + "nodeType": "YulIdentifier", + "src": "42905:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "42898:3:51", + "nodeType": "YulIdentifier", + "src": "42898:3:51" + }, + "nativeSrc": "42898:10:51", + "nodeType": "YulFunctionCall", + "src": "42898:10:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "42893:1:51", + "nodeType": "YulIdentifier", + "src": "42893:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "42873:3:51", + "nodeType": "YulBlock", + "src": "42873:3:51", + "statements": [] + }, + "src": "42869:174:51" + }, + { + "nativeSrc": "43056:32:51", + "nodeType": "YulAssignment", + "src": "43056:32:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "43071:3:51", + "nodeType": "YulIdentifier", + "src": "43071:3:51" + }, + { + "name": "length", + "nativeSrc": "43076:6:51", + "nodeType": "YulIdentifier", + "src": "43076:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "43067:3:51", + "nodeType": "YulIdentifier", + "src": "43067:3:51" + }, + "nativeSrc": "43067:16:51", + "nodeType": "YulFunctionCall", + "src": "43067:16:51" + }, + { + "kind": "number", + "nativeSrc": "43085:2:51", + "nodeType": "YulLiteral", + "src": "43085:2:51", + "type": "", + "value": "65" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "43063:3:51", + "nodeType": "YulIdentifier", + "src": "43063:3:51" + }, + "nativeSrc": "43063:25:51", + "nodeType": "YulFunctionCall", + "src": "43063:25:51" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "43056:3:51", + "nodeType": "YulIdentifier", + "src": "43056:3:51" + } + ] + } + ] + }, + "nativeSrc": "42726:372:51", + "nodeType": "YulCase", + "src": "42726:372:51", + "value": { + "kind": "number", + "nativeSrc": "42731:1:51", + "nodeType": "YulLiteral", + "src": "42731:1:51", + "type": "", + "value": "1" + } + } + ], + "expression": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "42544:9:51", + "nodeType": "YulIdentifier", + "src": "42544:9:51" + }, + { + "kind": "number", + "nativeSrc": "42555:1:51", + "nodeType": "YulLiteral", + "src": "42555:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "42540:3:51", + "nodeType": "YulIdentifier", + "src": "42540:3:51" + }, + "nativeSrc": "42540:17:51", + "nodeType": "YulFunctionCall", + "src": "42540:17:51" + }, + "nativeSrc": "42533:565:51", + "nodeType": "YulSwitch", + "src": "42533:565:51" + }, + { + "expression": { + "arguments": [ + { + "name": "ret", + "nativeSrc": "43137:3:51", + "nodeType": "YulIdentifier", + "src": "43137:3:51" + } + ], + "functionName": { + "name": "abi_encode_stringliteral_835b", + "nativeSrc": "43107:29:51", + "nodeType": "YulIdentifier", + "src": "43107:29:51" + }, + "nativeSrc": "43107:34:51", + "nodeType": "YulFunctionCall", + "src": "43107:34:51" + }, + "nativeSrc": "43107:34:51", + "nodeType": "YulExpressionStatement", + "src": "43107:34:51" + }, + { + "nativeSrc": "43150:18:51", + "nodeType": "YulAssignment", + "src": "43150:18:51", + "value": { + "arguments": [ + { + "name": "ret", + "nativeSrc": "43161:3:51", + "nodeType": "YulIdentifier", + "src": "43161:3:51" + }, + { + "kind": "number", + "nativeSrc": "43166:1:51", + "nodeType": "YulLiteral", + "src": "43166:1:51", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "43157:3:51", + "nodeType": "YulIdentifier", + "src": "43157:3:51" + }, + "nativeSrc": "43157:11:51", + "nodeType": "YulFunctionCall", + "src": "43157:11:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "43150:3:51", + "nodeType": "YulIdentifier", + "src": "43150:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_de43f859c5b41ae763b3cf3079fdf2eb03404edf87902f203872493397b6d5eb_t_stringliteral_64a0632b25b099a8394a67910c746124d56bcfe74154e02a072981b112e5aafe_t_string_storage_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_bytes31_t_string_memory_ptr_t_string_memory_ptr_t_bytes2__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "41715:1459:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "42109:3:51", + "nodeType": "YulTypedName", + "src": "42109:3:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "42114:6:51", + "nodeType": "YulTypedName", + "src": "42114:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "42125:3:51", + "nodeType": "YulTypedName", + "src": "42125:3:51", + "type": "" + } + ], + "src": "41715:1459:51" + }, + { + "body": { + "nativeSrc": "43308:145:51", + "nodeType": "YulBlock", + "src": "43308:145:51", + "statements": [ + { + "nativeSrc": "43318:26:51", + "nodeType": "YulAssignment", + "src": "43318:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "43330:9:51", + "nodeType": "YulIdentifier", + "src": "43330:9:51" + }, + { + "kind": "number", + "nativeSrc": "43341:2:51", + "nodeType": "YulLiteral", + "src": "43341:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "43326:3:51", + "nodeType": "YulIdentifier", + "src": "43326:3:51" + }, + "nativeSrc": "43326:18:51", + "nodeType": "YulFunctionCall", + "src": "43326:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "43318:4:51", + "nodeType": "YulIdentifier", + "src": "43318:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "43360:9:51", + "nodeType": "YulIdentifier", + "src": "43360:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "43375:6:51", + "nodeType": "YulIdentifier", + "src": "43375:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "43391:3:51", + "nodeType": "YulLiteral", + "src": "43391:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "43396:1:51", + "nodeType": "YulLiteral", + "src": "43396:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "43387:3:51", + "nodeType": "YulIdentifier", + "src": "43387:3:51" + }, + "nativeSrc": "43387:11:51", + "nodeType": "YulFunctionCall", + "src": "43387:11:51" + }, + { + "kind": "number", + "nativeSrc": "43400:1:51", + "nodeType": "YulLiteral", + "src": "43400:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "43383:3:51", + "nodeType": "YulIdentifier", + "src": "43383:3:51" + }, + "nativeSrc": "43383:19:51", + "nodeType": "YulFunctionCall", + "src": "43383:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "43371:3:51", + "nodeType": "YulIdentifier", + "src": "43371:3:51" + }, + "nativeSrc": "43371:32:51", + "nodeType": "YulFunctionCall", + "src": "43371:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "43353:6:51", + "nodeType": "YulIdentifier", + "src": "43353:6:51" + }, + "nativeSrc": "43353:51:51", + "nodeType": "YulFunctionCall", + "src": "43353:51:51" + }, + "nativeSrc": "43353:51:51", + "nodeType": "YulExpressionStatement", + "src": "43353:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "43424:9:51", + "nodeType": "YulIdentifier", + "src": "43424:9:51" + }, + { + "kind": "number", + "nativeSrc": "43435:2:51", + "nodeType": "YulLiteral", + "src": "43435:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "43420:3:51", + "nodeType": "YulIdentifier", + "src": "43420:3:51" + }, + "nativeSrc": "43420:18:51", + "nodeType": "YulFunctionCall", + "src": "43420:18:51" + }, + { + "name": "value1", + "nativeSrc": "43440:6:51", + "nodeType": "YulIdentifier", + "src": "43440:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "43413:6:51", + "nodeType": "YulIdentifier", + "src": "43413:6:51" + }, + "nativeSrc": "43413:34:51", + "nodeType": "YulFunctionCall", + "src": "43413:34:51" + }, + "nativeSrc": "43413:34:51", + "nodeType": "YulExpressionStatement", + "src": "43413:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "43179:274:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "43269:9:51", + "nodeType": "YulTypedName", + "src": "43269:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "43280:6:51", + "nodeType": "YulTypedName", + "src": "43280:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "43288:6:51", + "nodeType": "YulTypedName", + "src": "43288:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "43299:4:51", + "nodeType": "YulTypedName", + "src": "43299:4:51", + "type": "" + } + ], + "src": "43179:274:51" + } + ] + }, + "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 validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function 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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\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_decode_tuple_t_addresst_uint256(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 value1 := calldataload(add(headStart, 32))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_available_length_string(src, length, end) -> array\n {\n let _1 := 0xffffffffffffffff\n if gt(length, _1) { panic_error_0x41() }\n let _2 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(length, 31), _2), 63), _2))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n array := 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 }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n value0 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(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 value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\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_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 value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\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_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_encode_struct_RentingParams(value, pos)\n {\n mstore(pos, and(mload(value), 0xffffffffffffffffff))\n mstore(add(pos, 0x20), and(mload(add(value, 0x20)), 0xffffffffff))\n }\n function abi_encode_tuple_t_uint256_t_contract$_IAddOnlyAppWhitelist_$11098_t_uint48_t_bool_t_struct$_RentingParams_$11666_memory_ptr_t_struct$_SellingParams_$11746_memory_ptr__to_t_uint256_t_address_t_uint48_t_bool_t_struct$_RentingParams_$11666_memory_ptr_t_struct$_SellingParams_$11746_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, 0xffffffffffff))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n abi_encode_struct_RentingParams(value4, add(headStart, 128))\n mstore(add(headStart, 192), iszero(iszero(mload(value5))))\n mstore(add(headStart, 224), and(mload(add(value5, 32)), 0xffffffffffffffffff))\n }\n function abi_decode_tuple_t_uint256t_addresst_contract$_IAddOnlyAppWhitelist_$11098(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n }\n function abi_encode_tuple_t_contract$_AddOnlyAppWhitelistRegistry_$12170__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 validator_revert_uint72(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_uint72(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 := calldataload(add(headStart, 64))\n validator_revert_uint72(value_2)\n value2 := value_2\n }\n function abi_decode_tuple_t_addresst_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\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 value1 := calldataload(add(headStart, 32))\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value3 := add(_2, 32)\n value4 := length\n }\n function validator_revert_uint40(value)\n {\n if iszero(eq(value, and(value, 0xffffffffff))) { revert(0, 0) }\n }\n function abi_decode_struct_RentingParams(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x40) { revert(0, 0) }\n let memPtr := mload(0x40)\n let newFreePtr := add(memPtr, 0x40)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(0x40, newFreePtr)\n value := memPtr\n let value_1 := calldataload(headStart)\n validator_revert_uint72(value_1)\n mstore(memPtr, value_1)\n let value_2 := calldataload(add(headStart, 32))\n validator_revert_uint40(value_2)\n mstore(add(memPtr, 32), value_2)\n }\n function abi_decode_tuple_t_addresst_struct$_RentingParams_$11666_memory_ptr(headStart, dataEnd) -> value0, value1\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 value1 := abi_decode_struct_RentingParams(add(headStart, 32), dataEnd)\n }\n function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffff))\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_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 let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n value0 := add(_2, 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 _1 := 32\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, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_struct$_SubscriptionParams_$11831_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_struct_RentingParams(add(headStart, 32), dataEnd)\n }\n function abi_decode_tuple_t_addresst_struct$_WorkerpoolOrder_$11503_calldata_ptrt_address(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 offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 352) { revert(0, 0) }\n value1 := _1\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n }\n function abi_decode_tuple_t_addresst_uint72(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_uint72(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_uint256_t_uint48_t_struct$_SubscriptionParams_$11831_memory_ptr__to_t_uint256_t_uint48_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffff))\n abi_encode_struct_RentingParams(value2, add(headStart, 64))\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_decode_struct_SubscriptionParams_calldata(offset, end) -> value\n {\n if slt(sub(end, offset), 64) { revert(0, 0) }\n value := offset\n }\n function abi_decode_tuple_t_uint256t_struct$_SubscriptionParams_$11831_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_struct_SubscriptionParams_calldata(add(headStart, 32), dataEnd)\n }\n function abi_decode_tuple_t_addresst_struct$_RentingParams_$11666_calldata_ptr(headStart, dataEnd) -> value0, value1\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 value1 := abi_decode_struct_SubscriptionParams_calldata(add(headStart, 32), dataEnd)\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 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 let _1 := 0\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 _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\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, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\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 panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\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_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\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 validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\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_address_t_uint256_t_rational_0_by_1_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 let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function 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 convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4(array, len) -> value\n {\n let _1 := calldataload(array)\n let _2 := shl(224, 0xffffffff)\n value := and(_1, _2)\n if lt(len, 4)\n {\n value := and(and(_1, shl(shl(3, sub(4, len)), _2)), _2)\n }\n }\n function abi_decode_tuple_t_address_payablet_struct$_RentingParams_$11666_memory_ptr(headStart, dataEnd) -> value0, value1\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 value1 := abi_decode_struct_RentingParams(add(headStart, 32), dataEnd)\n }\n function abi_decode_tuple_t_address_payablet_address_payablet_uint72(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 := calldataload(add(headStart, 64))\n validator_revert_uint72(value_2)\n value2 := value_2\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 panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n let length := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), _1, length)\n end := add(_1, length)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address_t_rational_0_by_1_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 let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_struct_AppOrder(value, pos) -> end\n {\n let _1 := 0x0120\n mstore(pos, and(mload(value), sub(shl(160, 1), 1)))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n let memberValue0 := mload(add(value, 0x80))\n abi_encode_address(memberValue0, add(pos, 0x80))\n let memberValue0_1 := mload(add(value, 0xa0))\n abi_encode_address(memberValue0_1, add(pos, 0xa0))\n let memberValue0_2 := mload(add(value, 0xc0))\n abi_encode_address(memberValue0_2, add(pos, 0xc0))\n mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n let _2 := 0x0100\n let memberValue0_3 := mload(add(value, _2))\n mstore(add(pos, _2), _1)\n end := abi_encode_string(memberValue0_3, add(pos, _1))\n }\n function calldata_access_bytes_calldata(base_ref, ptr) -> value, length\n {\n let rel_offset_of_tail := calldataload(ptr)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let value_1 := add(rel_offset_of_tail, base_ref)\n length := calldataload(value_1)\n value := add(value_1, 0x20)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n if sgt(value, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\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_struct_WorkerpoolOrder_calldata(value, pos) -> end\n {\n let _1 := 0x0160\n abi_encode_address(abi_decode_address(value), pos)\n mstore(add(pos, 0x20), calldataload(add(value, 0x20)))\n mstore(add(pos, 0x40), calldataload(add(value, 0x40)))\n mstore(add(pos, 0x60), calldataload(add(value, 0x60)))\n mstore(add(pos, 0x80), calldataload(add(value, 0x80)))\n mstore(add(pos, 0xa0), calldataload(add(value, 0xa0)))\n let memberValue0 := abi_decode_address(add(value, 0xc0))\n abi_encode_address(memberValue0, add(pos, 0xc0))\n let memberValue0_1 := abi_decode_address(add(value, 0xe0))\n abi_encode_address(memberValue0_1, add(pos, 0xe0))\n let _2 := 0x0100\n let memberValue0_2 := abi_decode_address(add(value, _2))\n abi_encode_address(memberValue0_2, add(pos, _2))\n let _3 := 0x0120\n mstore(add(pos, _3), calldataload(add(value, _3)))\n let _4 := 0x0140\n let memberValue0_3, memberValue1 := calldata_access_bytes_calldata(value, add(value, _4))\n mstore(add(pos, _4), _1)\n end := abi_encode_bytes_calldata(memberValue0_3, memberValue1, add(pos, _1))\n }\n function abi_encode_struct_RequestOrder(value, pos) -> end\n {\n let _1 := 0x0200\n abi_encode_address(mload(value), pos)\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_address(memberValue0, add(pos, 0x40))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n let memberValue0_1 := mload(add(value, 0x80))\n abi_encode_address(memberValue0_1, add(pos, 0x80))\n mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n let memberValue0_2 := mload(add(value, 0xc0))\n abi_encode_address(memberValue0_2, add(pos, 0xc0))\n mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n let _2 := 0x0100\n mstore(add(pos, _2), mload(add(value, _2)))\n let _3 := 0x0120\n mstore(add(pos, _3), mload(add(value, _3)))\n let _4 := 0x0140\n mstore(add(pos, _4), mload(add(value, _4)))\n let _5 := 0x0160\n let memberValue0_3 := mload(add(value, _5))\n abi_encode_address(memberValue0_3, add(pos, _5))\n let _6 := 0x0180\n let memberValue0_4 := mload(add(value, _6))\n abi_encode_address(memberValue0_4, add(pos, _6))\n let _7 := 0x01a0\n let memberValue0_5 := mload(add(value, _7))\n mstore(add(pos, _7), _1)\n let tail := abi_encode_string(memberValue0_5, add(pos, _1))\n let _8 := 0x01c0\n mstore(add(pos, _8), mload(add(value, _8)))\n let _9 := 0x01e0\n let memberValue0_6 := mload(add(value, _9))\n mstore(add(pos, _9), sub(tail, pos))\n end := abi_encode_string(memberValue0_6, tail)\n }\n function abi_encode_tuple_t_struct$_AppOrder_$11461_memory_ptr_t_struct$_DatasetOrder_$11480_memory_ptr_t_struct$_WorkerpoolOrder_$11503_calldata_ptr_t_struct$_RequestOrder_$11536_memory_ptr__to_t_struct$_AppOrder_$11461_memory_ptr_t_struct$_DatasetOrder_$11480_memory_ptr_t_struct$_WorkerpoolOrder_$11503_memory_ptr_t_struct$_RequestOrder_$11536_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n let tail_1 := abi_encode_struct_AppOrder(value0, add(headStart, 128))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_struct_AppOrder(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_struct_WorkerpoolOrder_calldata(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n tail := abi_encode_struct_RequestOrder(value3, tail_3)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_assert_enum_Mode(value)\n {\n if iszero(lt(value, 2))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_bytes32_t_address_t_enum$_Mode_$11261__to_t_bytes32_t_address_t_uint8__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 validator_assert_enum_Mode(value2)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_address_t_uint72__to_t_uint256_t_address_t_uint72__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, 0xffffffffffffffffff))\n }\n function copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams(slot, value)\n {\n let value_1 := calldataload(value)\n validator_revert_uint72(value_1)\n let _1 := and(value_1, 0xffffffffffffffffff)\n let _2 := sload(slot)\n sstore(slot, or(and(_2, not(0xffffffffffffffffff)), _1))\n let value_2 := calldataload(add(value, 32))\n validator_revert_uint40(value_2)\n sstore(slot, or(or(and(_2, not(0xffffffffffffffffffffffffffff)), _1), and(shl(72, value_2), 0xffffffffff000000000000000000)))\n }\n function update_storage_value_offset_0t_struct$_SubscriptionParams_$11831_calldata_ptr_to_t_struct$_SubscriptionParams_$11831_storage(slot, value)\n {\n copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams(slot, value)\n }\n function abi_encode_struct_SubscriptionParams_calldata(value, pos)\n {\n let value_1 := calldataload(value)\n validator_revert_uint72(value_1)\n mstore(pos, and(value_1, 0xffffffffffffffffff))\n let value_2 := calldataload(add(value, 0x20))\n validator_revert_uint40(value_2)\n mstore(add(pos, 0x20), and(value_2, 0xffffffffff))\n }\n function abi_encode_tuple_t_uint256_t_struct$_SubscriptionParams_$11831_calldata_ptr__to_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n abi_encode_struct_SubscriptionParams_calldata(value1, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint40(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint40(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint40__to_t_uint48__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffff))\n }\n function update_storage_value_offset_0t_struct$_RentingParams_$11666_calldata_ptr_to_t_struct$_RentingParams_$11666_storage(slot, value)\n {\n copy_struct_to_storage_from_struct_SubscriptionParams_calldata_to_struct_SubscriptionParams(slot, value)\n }\n function abi_encode_tuple_t_uint256_t_address_t_struct$_RentingParams_$11666_calldata_ptr__to_t_uint256_t_address_t_struct$_RentingParams_$11666_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n abi_encode_struct_SubscriptionParams_calldata(value2, add(headStart, 64))\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 let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _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_struct_DatasetOrderOperation(value, pos) -> end\n {\n let memberValue0 := mload(value)\n mstore(pos, 0x60)\n let tail := abi_encode_struct_AppOrder(memberValue0, add(pos, 0x60))\n let memberValue0_1 := mload(add(value, 0x20))\n validator_assert_enum_Mode(memberValue0_1)\n mstore(add(pos, 0x20), memberValue0_1)\n let memberValue0_2 := mload(add(value, 0x40))\n mstore(add(pos, 0x40), sub(tail, pos))\n end := abi_encode_string(memberValue0_2, tail)\n }\n function abi_encode_tuple_t_struct$_DatasetOrderOperation_$11554_memory_ptr__to_t_struct$_DatasetOrderOperation_$11554_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_DatasetOrderOperation(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_address_t_uint72__to_t_address_t_uint72__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, 0xffffffffffffffffff))\n }\n function abi_encode_tuple_t_address_t_address_t_uint72__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, 0xffffffffffffffffff))\n }\n function abi_encode_tuple_t_uint256_t_address_t_address__to_t_uint256_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__to_t_uint256_t_struct$_SubscriptionParams_$11831_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n abi_encode_struct_RentingParams(value1, add(headStart, 32))\n }\n function checked_add_t_uint48(x, y) -> sum\n {\n let _1 := 0xffffffffffff\n sum := add(and(x, _1), and(y, _1))\n if gt(sum, _1) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_uint256_t_uint48__to_t_uint256_t_uint48__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffff))\n }\n function abi_encode_tuple_t_address_t_struct$_RentingParams_$11666_memory_ptr__to_t_address_t_struct$_RentingParams_$11666_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n abi_encode_struct_RentingParams(value1, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_uint48__to_t_uint256_t_address_t_address_t_uint48__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, 0xffffffffffff))\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_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_struct$_WorkerpoolOrder_$11503_calldata_ptr__to_t_struct$_WorkerpoolOrder_$11503_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_WorkerpoolOrder_calldata(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_struct$_AppOrderOperation_$11545_memory_ptr__to_t_struct$_AppOrderOperation_$11545_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_DatasetOrderOperation(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_struct$_RequestOrderOperation_$11572_memory_ptr__to_t_struct$_RequestOrderOperation_$11572_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 32), 0x60)\n let tail_1 := abi_encode_struct_RequestOrder(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 32))\n validator_assert_enum_Mode(memberValue0_1)\n mstore(add(headStart, 64), memberValue0_1)\n let memberValue0_2 := mload(add(value0, 64))\n mstore(add(headStart, 0x60), add(sub(tail_1, headStart), not(31)))\n tail := abi_encode_string(memberValue0_2, tail_1)\n }\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_stringliteral_835b(pos)\n { mstore(pos, shl(240, 8829)) }\n function abi_encode_tuple_packed_t_stringliteral_de43f859c5b41ae763b3cf3079fdf2eb03404edf87902f203872493397b6d5eb_t_stringliteral_64a0632b25b099a8394a67910c746124d56bcfe74154e02a072981b112e5aafe_t_string_storage_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_bytes31_t_string_memory_ptr_t_string_memory_ptr_t_bytes2__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, 0x7b2269657865635f726573756c745f656e6372797074696f6e223a7472756500)\n mstore(add(pos, 31), 0x2c2269657865635f726573756c745f73746f726167655f70726f766964657222)\n mstore(add(pos, 63), shl(241, 7441))\n let _1 := 65\n let ret := 0\n let slotValue := sload(value0)\n let length := extract_byte_array_length(slotValue)\n let _2 := 1\n switch and(slotValue, 1)\n case 0 {\n mstore(add(pos, 65), and(slotValue, not(255)))\n ret := add(add(pos, mul(length, iszero(iszero(length)))), 65)\n }\n case 1 {\n mstore(0, value0)\n let _3 := 32\n let dataPos := keccak256(0, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, _3) }\n {\n mstore(add(add(pos, i), _1), sload(dataPos))\n dataPos := add(dataPos, _2)\n }\n ret := add(add(pos, length), 65)\n }\n abi_encode_stringliteral_835b(ret)\n end := add(ret, 2)\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}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "9280": [ + { + "length": 32, + "start": 1226 + }, + { + "length": 32, + "start": 2827 + } + ], + "9283": [ + { + "length": 32, + "start": 2966 + }, + { + "length": 32, + "start": 5199 + }, + { + "length": 32, + "start": 7250 + }, + { + "length": 32, + "start": 7409 + }, + { + "length": 32, + "start": 7570 + }, + { + "length": 32, + "start": 8076 + } + ], + "10788": [ + { + "length": 32, + "start": 4089 + }, + { + "length": 32, + "start": 5551 + }, + { + "length": 32, + "start": 7728 + }, + { + "length": 32, + "start": 8170 + }, + { + "length": 32, + "start": 8887 + }, + { + "length": 32, + "start": 9470 + }, + { + "length": 32, + "start": 10930 + }, + { + "length": 32, + "start": 11504 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x27F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8129FC1C GT PUSH2 0x15C JUMPI DUP1 PUSH4 0xD0B06C66 GT PUSH2 0xCE JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x70F JUMPI DUP1 PUSH4 0xEA46D1AA EQ PUSH2 0x722 JUMPI DUP1 PUSH4 0xF4C0FAB4 EQ PUSH2 0x767 JUMPI DUP1 PUSH4 0xFE4C31A4 EQ PUSH2 0x787 JUMPI DUP1 PUSH4 0xFF19D9DF EQ PUSH2 0x79A JUMPI DUP1 PUSH4 0xFF811F60 EQ PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD0B06C66 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xD3C52389 EQ PUSH2 0x64E JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0xD835C337 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xDC30B8FC EQ PUSH2 0x687 JUMPI DUP1 PUSH4 0xDFE0BC11 EQ PUSH2 0x69A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA217FDDF GT PUSH2 0x120 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x598 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x5A0 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x5D3 JUMPI DUP1 PUSH4 0xC3533BA2 EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x628 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x538 JUMPI DUP1 PUSH4 0x8F4FFCB1 EQ PUSH2 0x540 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x553 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x566 JUMPI DUP1 PUSH4 0x9A82C2BD EQ PUSH2 0x56E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x1F5 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x1B9 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x4B2 JUMPI DUP1 PUSH4 0x4AFECAFF EQ PUSH2 0x4C5 JUMPI DUP1 PUSH4 0x53574F9E EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x4FF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x512 JUMPI DUP1 PUSH4 0x72D570CE EQ PUSH2 0x525 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x3AD JUMPI DUP1 PUSH4 0x328CB1F7 EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x479 JUMPI DUP1 PUSH4 0x40E6158D EQ PUSH2 0x48C JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x49F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB9F187B GT PUSH2 0x247 JUMPI DUP1 PUSH4 0xB9F187B EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0x185E4E8D EQ PUSH2 0x353 JUMPI DUP1 PUSH4 0x2069E953 EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1D0B634 EQ PUSH2 0x284 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2C1 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x301 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x297 PUSH2 0x292 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x7C0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2AC PUSH2 0x2A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x3550 JUMP JUMPDEST PUSH2 0x836 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C9 PUSH2 0x847 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x35BD JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0x8EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x35E9 JUMP JUMPDEST PUSH2 0x900 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x36A0 JUMP JUMPDEST PUSH2 0x90F JUMP JUMPDEST PUSH2 0x33A PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x36E8 JUMP JUMPDEST PUSH2 0x92B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x361 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x93C JUMP JUMPDEST PUSH2 0x379 PUSH2 0x374 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x9B6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x395 CALLDATASIZE PUSH1 0x4 PUSH2 0x3767 JUMP JUMPDEST PUSH2 0x9D9 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x3A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x3BB CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0xA8B JUMP JUMPDEST PUSH2 0x467 PUSH2 0x3CE CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP1 DUP3 AND DUP4 MSTORE PUSH1 0x1 PUSH1 0x48 SHL SWAP1 SWAP2 DIV PUSH5 0xFFFFFFFFFF AND DUP3 DUP8 ADD MSTORE DUP7 MLOAD DUP1 DUP9 ADD SWAP1 SWAP8 MSTORE PUSH1 0x4 SWAP1 SWAP5 ADD SLOAD PUSH1 0xFF DUP1 DUP3 AND ISZERO ISZERO DUP9 MSTORE PUSH2 0x100 SWAP1 SWAP2 DIV SWAP1 SWAP5 AND SWAP5 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP1 SWAP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP4 PUSH1 0x1 PUSH1 0xA0 SHL DUP4 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP4 PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 SWAP4 DIV SWAP1 SWAP3 AND SWAP2 SWAP1 DUP7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x37D8 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x487 CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0xAA7 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x49A CALLDATASIZE PUSH1 0x4 PUSH2 0x3853 JUMP JUMPDEST PUSH2 0xADA JUMP JUMPDEST PUSH2 0x297 PUSH2 0x4AD CALLDATASIZE PUSH1 0x4 PUSH2 0x3767 JUMP JUMPDEST PUSH2 0xD34 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x4C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0xD4F JUMP JUMPDEST PUSH2 0x2E9 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x4FA CALLDATASIZE PUSH1 0x4 PUSH2 0x38AA JUMP JUMPDEST PUSH2 0xD5B JUMP JUMPDEST PUSH2 0x2E9 PUSH2 0x50D CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0xD67 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x520 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x533 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0xDCE JUMP JUMPDEST PUSH2 0x297 PUSH2 0xE47 JUMP JUMPDEST PUSH2 0x2AC PUSH2 0x54E CALLDATASIZE PUSH1 0x4 PUSH2 0x38EA JUMP JUMPDEST PUSH2 0xFEC JUMP JUMPDEST PUSH2 0x2AC PUSH2 0x561 CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0x116E JUMP JUMPDEST PUSH2 0x2C9 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x581 PUSH2 0x57C CALLDATASIZE PUSH1 0x4 PUSH2 0x39FD JUMP JUMPDEST PUSH2 0x11E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x379 PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x5AE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A41 JUMP JUMPDEST PUSH2 0x11F9 JUMP JUMPDEST PUSH2 0x5C6 PUSH2 0x5C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A6F JUMP JUMPDEST PUSH2 0x1204 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x3AE3 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x5E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x36E8 JUMP JUMPDEST PUSH2 0x12EB JUMP JUMPDEST PUSH2 0x581 PUSH2 0x5F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH6 0xFFFFFFFFFFFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C9 PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH2 0x1303 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x649 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x1377 JUMP JUMPDEST PUSH2 0x581 PUSH2 0x65C CALLDATASIZE PUSH1 0x4 PUSH2 0x3B47 JUMP JUMPDEST PUSH2 0x1505 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x37A8 JUMP JUMPDEST PUSH2 0x1512 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x682 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B6B JUMP JUMPDEST PUSH2 0x152E JUMP JUMPDEST PUSH2 0x297 PUSH2 0x695 CALLDATASIZE PUSH1 0x4 PUSH2 0x3BB9 JUMP JUMPDEST PUSH2 0x1675 JUMP JUMPDEST PUSH2 0x700 PUSH2 0x6A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x35D0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP2 AND DUP6 MSTORE PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND SWAP3 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP1 DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3BE7 JUMP JUMPDEST PUSH2 0x2AC PUSH2 0x71D CALLDATASIZE PUSH1 0x4 PUSH2 0x3C23 JUMP JUMPDEST PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x581 PUSH2 0x730 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C23 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH6 0xFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH2 0x379 PUSH2 0x775 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x795 CALLDATASIZE PUSH1 0x4 PUSH2 0x351D JUMP JUMPDEST PUSH2 0x17F0 JUMP JUMPDEST PUSH2 0x297 PUSH2 0x7A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C69 JUMP JUMPDEST PUSH2 0x186F JUMP JUMPDEST PUSH2 0x297 PUSH2 0x7BB CALLDATASIZE PUSH1 0x4 PUSH2 0x3C8D JUMP JUMPDEST PUSH2 0x18C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x7E3 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x3FB0561A34A824AD00E49427875F49120AEBA57A15999BAEF5FBAE14E664D972 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x841 DUP3 PUSH2 0x19C1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x867 SWAP1 PUSH2 0x3CBA 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 0x893 SWAP1 PUSH2 0x3CBA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x8E0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x8B5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x8E0 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 0x8C3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F6 DUP3 PUSH2 0x19E6 JUMP JUMPDEST POP PUSH2 0x841 DUP3 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 CALLER PUSH2 0x1A58 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x91A DUP2 PUSH2 0x1A65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x926 DUP4 DUP3 PUSH2 0x3D36 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x95F DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH14 0xFFFFFFFFFF000000000000000000 NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xB76A4377A20C8298064CD897C0095E802F478CCB93D1150D391A2DD268D7E5FB SWAP2 ADD PUSH2 0x829 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD PUSH2 0x9C8 SWAP1 PUSH2 0x3E0B JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP1 POP PUSH2 0x841 DUP4 DUP3 PUSH2 0x1A6F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xA08 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA15 DUP4 DUP4 CALLER PUSH2 0x1A89 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA63 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x9FF JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xA94 DUP3 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0xA9D DUP2 PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0x1B05 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xAD0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x334BD919 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x926 DUP3 DUP3 PUSH2 0x1BB1 JUMP JUMPDEST PUSH2 0xAE3 DUP4 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xAEC DUP3 PUSH2 0x1C2D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB52 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 0xB76 SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x42842E0E SWAP1 DUP3 SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE5 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 0xC09 SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE SWAP1 DUP6 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 DUP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP7 DUP9 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE DUP8 DUP2 SSTORE DUP8 DUP5 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP4 SWAP3 SWAP1 SWAP2 PUSH2 0xCC6 SWAP1 DUP5 SWAP1 PUSH2 0x3E41 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0xCD6 SWAP1 POP DUP4 DUP4 PUSH2 0x1E1A JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP4 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x701E4990DF91F34F0C6E42C039715E077AA32F81AF006F9F5E8165CBDA0FDDDD SWAP1 PUSH1 0x80 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0x926 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x12EB JUMP JUMPDEST PUSH2 0x90B PUSH1 0x0 DUP3 CALLER PUSH2 0x1A89 JUMP JUMPDEST PUSH2 0x926 DUP4 CALLER DUP5 DUP5 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x841 DUP3 PUSH2 0x19E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xDAD JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0xDF1 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0xDFA DUP2 PUSH2 0x2141 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xD0 SHL NOT AND SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x619BC890D3C88741CAABA887A528D314FE6FA1C2BA35730EB1DB180C8BDC1757 SWAP2 ADD PUSH2 0x829 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE51 PUSH2 0x217F 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 0xE78 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xE94 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xEA2 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xEC0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xEEA JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xF5E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6945786563204461746150726F746563746F7253686172696E67000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x69457865634461746150726F746563746F7253686172696E6700000000000000 DUP2 MSTORE POP PUSH2 0x21A8 JUMP JUMPDEST PUSH2 0xF66 PUSH2 0x21BA JUMP JUMPDEST PUSH2 0xF6E PUSH2 0x21BA JUMP JUMPDEST PUSH2 0xF79 PUSH1 0x0 CALLER PUSH2 0x1B05 JUMP JUMPDEST POP PUSH2 0xF9F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x69706673 PUSH1 0xE0 SHL DUP2 MSTORE POP PUSH2 0x90F JUMP JUMPDEST DUP4 ISZERO PUSH2 0xFE5 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 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ PUSH2 0x1039 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCA41B301 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 SUB PUSH2 0x105B JUMPI PUSH1 0x40 MLOAD PUSH4 0x3E0F8361 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x106A PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0x3E54 JUMP JUMPDEST PUSH2 0x1073 SWAP2 PUSH2 0x3E7E JUMP JUMPDEST SWAP1 POP PUSH4 0x2C3ADC77 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND ADD PUSH2 0x10C6 JUMPI PUSH1 0x0 DUP1 PUSH2 0x109D DUP6 PUSH1 0x4 DUP2 DUP10 PUSH2 0x3E54 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x10AA SWAP2 SWAP1 PUSH2 0x3B47 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x10B9 DUP3 DUP11 DUP4 PUSH2 0x21C4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1165 JUMP JUMPDEST PUSH4 0x657D3D43 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND ADD PUSH2 0x110A JUMPI PUSH1 0x0 DUP1 PUSH2 0x10EE DUP6 PUSH1 0x4 DUP2 DUP10 PUSH2 0x3E54 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x10FB SWAP2 SWAP1 PUSH2 0x39FD JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x10B9 DUP3 DUP11 DUP4 PUSH2 0x23B6 JUMP JUMPDEST PUSH4 0x56545831 PUSH1 0xE1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND ADD PUSH2 0x115F JUMPI PUSH1 0x0 DUP1 DUP1 PUSH2 0x1133 DUP7 PUSH1 0x4 DUP2 DUP11 PUSH2 0x3E54 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x1140 SWAP2 SWAP1 PUSH2 0x38AA JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x1152 DUP4 DUP12 DUP5 DUP5 PUSH2 0x1EF0 JUMP JUMPDEST PUSH1 0x1 SWAP5 POP POP POP POP POP PUSH2 0x1165 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x867 SWAP1 PUSH2 0x3CBA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F2 DUP4 CALLER DUP5 PUSH2 0x23B6 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x90B CALLER DUP4 DUP4 PUSH2 0x260E 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 0x122E JUMPI PUSH2 0x122E PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1261 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x124C JUMPI SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x12E3 JUMPI PUSH2 0x12BE ADDRESS DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x1285 JUMPI PUSH2 0x1285 PUSH2 0x3EBF JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1297 SWAP2 SWAP1 PUSH2 0x3ED5 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12AA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F22 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x26BF JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x12D0 JUMPI PUSH2 0x12D0 PUSH2 0x3EBF JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x1267 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12F6 DUP5 DUP5 DUP5 PUSH2 0x9D9 JUMP JUMPDEST PUSH2 0xA63 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0x272C JUMP JUMPDEST PUSH1 0x60 PUSH2 0x130E DUP3 PUSH2 0x19E6 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1326 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x1346 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x11F2 JUMP JUMPDEST DUP1 PUSH2 0x1350 DUP5 PUSH2 0x2856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1361 SWAP3 SWAP2 SWAP1 PUSH2 0x3F49 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1399 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x13A2 DUP2 PUSH2 0x2141 JUMP JUMPDEST PUSH2 0x13AB DUP3 PUSH2 0x28E8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP4 DUP2 SSTORE PUSH1 0x1 DUP1 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x4 SWAP1 SWAP2 ADD DUP1 SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE DUP5 DUP5 MSTORE PUSH1 0x6 SWAP1 SWAP3 MSTORE DUP3 KECCAK256 DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 PUSH2 0x141F SWAP1 DUP5 SWAP1 PUSH2 0x3EAC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1493 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x701E4990DF91F34F0C6E42C039715E077AA32F81AF006F9F5E8165CBDA0FDDDD SWAP3 POP PUSH1 0x80 ADD SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11F2 DUP4 CALLER DUP5 PUSH2 0x21C4 JUMP JUMPDEST PUSH2 0x151B DUP3 PUSH2 0xA69 JUMP JUMPDEST PUSH2 0x1524 DUP2 PUSH2 0x1A65 JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0x1BB1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x153B DUP6 DUP6 PUSH2 0x293E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP3 SWAP4 POP SWAP2 PUSH2 0x1568 SWAP2 DUP9 SWAP2 AND PUSH2 0x2A31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1575 DUP6 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1595 DUP9 DUP8 PUSH2 0x158B PUSH1 0x20 DUP12 ADD DUP12 PUSH2 0x351D JUMP JUMPDEST DUP11 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x2B71 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5586535 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x156194D4 SWAP1 PUSH2 0x15EA SWAP1 DUP6 SWAP1 DUP8 SWAP1 DUP13 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4283 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1609 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 0x162D SWAP2 SWAP1 PUSH2 0x42D0 JUMP JUMPDEST SWAP5 POP PUSH32 0x9BB563D4351A41CFCB2E1A9E3CAABD85077D013AFA5EF5B60CD460C56F7FF12 DUP6 DUP10 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1662 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x431D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1698 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x16A1 DUP5 PUSH2 0x28E8 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x16E0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x123C6C3B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND ISZERO PUSH2 0x1723 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E6991F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP6 AND PUSH2 0x100 MUL PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP2 AND OR PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0xEC81370602852D2A562027F306877D179384B7DF480E4F2C68D233DE886CFD92 SWAP1 PUSH2 0xD26 SWAP1 DUP4 SWAP1 DUP8 SWAP1 DUP8 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x1813 DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x181C DUP4 PUSH2 0x2D6A JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH1 0xFF PUSH1 0xD0 SHL NOT AND PUSH1 0x1 PUSH1 0xD0 SHL OR SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x806E162C7EF4165A275B5DF55317F9F7BE1E2BB257C6CC87FBBB0FABB6B2F97B SWAP2 ADD PUSH2 0x829 JUMP JUMPDEST PUSH2 0x1878 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 PUSH1 0x2 ADD PUSH2 0x1895 DUP3 DUP3 PUSH2 0x43B2 JUMP JUMPDEST SWAP1 POP POP PUSH32 0xD33315CB494162D759F3AB7D813BE7D0A6E0E70F717FC31C258F84A729004F78 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x14F9 SWAP3 SWAP2 SWAP1 PUSH2 0x43F2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH2 0x18EC DUP2 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x18F5 DUP5 PUSH2 0x2D6A JUMP JUMPDEST PUSH2 0x1905 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x4406 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF AND PUSH1 0x0 SUB PUSH2 0x1946 JUMPI PUSH2 0x1923 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x4406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2A94078B PUSH1 0xE0 SHL DUP2 MSTORE PUSH5 0xFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST DUP3 PUSH1 0x2 DUP4 ADD PUSH2 0x1955 DUP3 DUP3 PUSH2 0x43B2 JUMP JUMPDEST SWAP1 POP POP PUSH32 0x796FCA2DE82B5272091DDFD0AB5D10F279E96EB8F47150D0F63F8411399B32AC DUP2 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xD26 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4423 JUMP JUMPDEST PUSH2 0x199E PUSH2 0x1997 DUP3 PUSH2 0xD67 JUMP JUMPDEST CALLER DUP4 PUSH2 0x2DB2 JUMP JUMPDEST PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x73ED0187 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x841 JUMPI POP PUSH2 0x841 DUP3 PUSH2 0x2E17 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x19F2 DUP4 PUSH2 0x2E67 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x841 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x926 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x2EA1 JUMP JUMPDEST PUSH2 0x19BE DUP2 CALLER PUSH2 0x2FB7 JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x2FF0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0x1AFA JUMPI DUP1 SLOAD ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x86ACF7FD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND GT ISZERO PUSH2 0x1AFA JUMPI PUSH1 0x40 MLOAD PUSH4 0x4AEE26F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x1165 DUP6 DUP6 DUP6 PUSH2 0x3008 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1B20 DUP5 DUP5 PUSH2 0x116E JUMP JUMPDEST PUSH2 0x1BA0 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1B56 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x841 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x841 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4740 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1BCC DUP5 DUP5 PUSH2 0x116E JUMP JUMPDEST ISZERO PUSH2 0x1BA0 JUMPI PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP3 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP8 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 PUSH1 0x1 SWAP2 POP POP PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD DUP2 SWAP1 MSTORE SWAP2 PUSH1 0x0 SWAP2 PUSH32 0x0 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C99 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 0x1CBD SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x1D67 JUMPI POP PUSH1 0x40 MLOAD PUSH4 0x20604BF PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND SWAP1 PUSH4 0x81812FC SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D38 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 0x1D5C SWAP2 SWAP1 PUSH2 0x3E24 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 PUSH2 0x1DFD JUMPI POP PUSH1 0x40 MLOAD PUSH4 0xE985E9C5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE CALLER PUSH1 0x24 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0xE985E9C5 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DD9 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 0x1DFD SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST PUSH2 0x926 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEDE508E5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E22 PUSH2 0x34AA JUMP JUMPDEST PUSH2 0x1E2C DUP4 DUP4 PUSH2 0x2A31 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4B747106 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1E81 JUMPI PUSH2 0x1E81 PUSH2 0x42E9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x1EB8 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ED2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1EE6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1F11 DUP6 PUSH2 0x3112 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP4 DUP2 AND PUSH2 0x100 SWAP1 SWAP3 DIV AND EQ PUSH2 0x1F5F JUMPI PUSH1 0x40 MLOAD PUSH3 0x553509 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x21421707 PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH32 0x0 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FE4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP6 PUSH2 0x2025 DUP5 PUSH1 0x0 ADD SLOAD PUSH2 0xD67 JUMP JUMPDEST PUSH1 0x4 DUP6 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0xE0 DUP7 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH2 0x205B SWAP5 SWAP4 SWAP3 PUSH2 0x100 SWAP1 SWAP3 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND SWAP2 ADD PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x207A 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 0x209E SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE DUP8 AND DUP3 DUP3 ADD MSTORE MLOAD PUSH32 0x39E9DE3F8FB17AA9D0E1DF99A67605205F5E86D0AC765EE0299FB8EA4F2BAA21 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP1 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xD8 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x70 SHL SUB NOT AND SWAP1 SSTORE PUSH1 0x4 ADD DUP1 SLOAD PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x4AEE26F7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x21B0 PUSH2 0x3159 JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 PUSH2 0x317E JUMP JUMPDEST PUSH2 0x21C2 PUSH2 0x3159 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP3 MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO DUP1 PUSH2 0x220D JUMPI POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x222F JUMPI DUP5 DUP4 PUSH1 0x40 MLOAD PUSH4 0x2441E4E3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FF SWAP3 SWAP2 SWAP1 PUSH2 0x44E5 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x224C SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x4513 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP5 ADD SLOAD SWAP3 SWAP5 POP PUSH2 0x2295 SWAP3 SWAP1 SWAP2 AND PUSH2 0x31AF JUMP JUMPDEST PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP6 PUSH2 0x22EE DUP9 PUSH2 0xD67 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x231F SWAP4 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND SWAP1 PUSH1 0x4 ADD PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x233E 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 0x2362 SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH6 0xFFFFFFFFFFFF DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP2 PUSH32 0x2366234D2D402EFC07153C0D03FC5EC74A9EF5496E1ACCADC4B1AAF51D7F73B9 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND DUP3 SUB PUSH2 0x240B JUMPI PUSH1 0x40 MLOAD PUSH4 0x14460185 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ ISZERO DUP1 PUSH2 0x2446 JUMPI POP DUP3 MLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB SWAP1 DUP2 AND SWAP2 AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x2468 JUMPI DUP5 DUP4 PUSH1 0x40 MLOAD PUSH4 0x46AA9515 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FF SWAP3 SWAP2 SWAP1 PUSH2 0x4532 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD PUSH2 0x2485 SWAP1 PUSH1 0x1 PUSH1 0x48 SHL SWAP1 DIV PUSH5 0xFFFFFFFFFF AND TIMESTAMP PUSH2 0x4513 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH6 0xFFFFFFFFFFFF NOT AND PUSH6 0xFFFFFFFFFFFF DUP4 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP5 ADD SLOAD SWAP3 SWAP5 POP PUSH2 0x24D6 SWAP3 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV AND PUSH2 0x31AF JUMP JUMPDEST DUP2 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP6 PUSH2 0x2539 DUP5 PUSH1 0x0 ADD SLOAD PUSH2 0xD67 JUMP JUMPDEST PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP7 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x256A SWAP4 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND SWAP1 PUSH1 0x4 ADD PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2589 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 0x25AD SWAP2 SWAP1 PUSH2 0x4446 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE DUP7 AND DUP3 DUP3 ADD MSTORE PUSH6 0xFFFFFFFFFFFF DUP5 AND PUSH1 0x60 DUP4 ADD MSTORE MLOAD PUSH32 0xE2D5D453D44004623A821EF386E026D37FCCBAC3F56CEF0CB5918CAB5C11DC88 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x264F JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x26DC SWAP2 SWAP1 PUSH2 0x4569 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2717 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 0x271C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x1165 DUP6 DUP4 DUP4 PUSH2 0x31BF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0xFE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x276E SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x4585 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x27A9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x27A6 SWAP2 DUP2 ADD SWAP1 PUSH2 0x45B8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2812 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x27D7 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 0x27DC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x280A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0x284E JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2863 DUP4 PUSH2 0x321B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2882 JUMPI PUSH2 0x2882 PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x28AC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x28B6 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD TIMESTAMP PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV PUSH6 0xFFFFFFFFFFFF AND LT PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E448F1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD CALLDATALOAD ISZERO PUSH2 0x2965 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH4 0x85461E9B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9FF SWAP2 SWAP1 PUSH2 0x45D5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD CALLER DUP6 MSTORE PUSH1 0x3 DUP3 ADD SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT PUSH2 0x29AA JUMPI PUSH1 0x1 SWAP3 POP POP POP PUSH2 0x841 JUMP JUMPDEST DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x29C4 JUMPI POP PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0xD0 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST DUP1 ISZERO PUSH2 0x29F6 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE PUSH1 0x3 ADD SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD TIMESTAMP PUSH6 0xFFFFFFFFFFFF SWAP1 SWAP2 AND LT ISZERO JUMPDEST ISZERO PUSH2 0x2A06 JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xE39D6B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x2A39 PUSH2 0x34AA JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 NOT DUP4 DUP6 ADD MSTORE PUSH1 0x3 PUSH1 0x60 DUP5 ADD MSTORE SWAP4 SWAP1 SWAP5 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE ADDRESS PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 MLOAD SWAP4 DUP5 MSTORE SWAP2 DUP4 ADD SWAP1 MSTORE PUSH2 0x100 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x2AA5 PUSH2 0x34AA JUMP JUMPDEST PUSH2 0x2AAE DUP3 PUSH2 0x32F3 JUMP JUMPDEST SWAP1 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB2B07E66 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2B03 JUMPI PUSH2 0x2B03 PUSH2 0x42E9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE SWAP1 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH2 0x2B3A SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x44A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2B68 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x200 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xA0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xC0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xE0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x120 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x140 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x160 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x180 DUP3 ADD DUP4 SWAP1 MSTORE PUSH2 0x1A0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x1C0 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x1E0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x200 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 PUSH1 0x0 SHL DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2CA3 PUSH2 0x335B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2CB0 PUSH2 0x3383 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP5 MSTORE SWAP4 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 DUP5 MSTORE DUP4 DUP3 ADD DUP4 SWAP1 MSTORE DUP1 MLOAD SWAP3 DUP4 MSTORE SWAP1 DUP3 ADD DUP2 MSTORE SWAP2 DUP3 ADD MSTORE MLOAD PUSH4 0x8DD971D5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x8DD971D5 SWAP1 PUSH2 0x2D2D SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x45E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2D5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP SWAP2 MLOAD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x25E3E05D PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x934 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x2DEC JUMPI POP PUSH2 0x2DEC DUP5 DUP5 PUSH2 0x17A3 JUMP JUMPDEST DUP1 PUSH2 0x934 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E05 DUP4 PUSH2 0x1A1E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2E48 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x841 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x841 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0x2EC4 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2F86 JUMPI PUSH1 0x0 PUSH2 0x2ED4 DUP6 PUSH2 0x19E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x2F00 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x2F13 JUMPI POP PUSH2 0x2F11 DUP2 DUP6 PUSH2 0x17A3 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x2F3C JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST DUP3 ISZERO PUSH2 0x2F84 JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2FC1 DUP3 DUP3 PUSH2 0x116E JUMP JUMPDEST PUSH2 0x90B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE2517D3F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x2FFA DUP4 DUP4 PUSH2 0x339E JUMP JUMPDEST PUSH2 0x926 CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0x272C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x3023 DUP6 PUSH2 0x2E67 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x303F JUMPI PUSH2 0x303F DUP2 DUP6 DUP8 PUSH2 0x3403 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x307F JUMPI PUSH2 0x305C PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0x2EA1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x30B0 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND PUSH2 0x19BE JUMPI PUSH1 0x40 MLOAD PUSH4 0x46BB405D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x3161 PUSH2 0x3467 JUMP JUMPDEST PUSH2 0x21C2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3186 PUSH2 0x3159 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4720 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0x31A0 DUP5 DUP3 PUSH2 0x3D36 JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0xA63 DUP4 DUP3 PUSH2 0x3D36 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 XOR DUP3 DUP5 GT MUL DUP3 XOR PUSH2 0x11F2 JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x31D4 JUMPI PUSH2 0x31CF DUP3 PUSH2 0x3481 JUMP JUMPDEST PUSH2 0x11F2 JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x31EB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x3214 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST POP DUP1 PUSH2 0x11F2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0x325A JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x3286 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x32A4 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x32BC JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x32D0 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x32E2 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x841 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x32FB PUSH2 0x34AA JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x0 PUSH1 0x20 DUP1 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 NOT DUP5 DUP5 ADD MSTORE PUSH1 0x3 PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP5 ADD DUP3 SWAP1 MSTORE ADDRESS PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xE0 DUP5 ADD DUP3 SWAP1 MSTORE DUP3 MLOAD SWAP2 DUP3 MSTORE DUP2 ADD SWAP1 SWAP2 MSTORE PUSH2 0x100 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x336F SWAP2 SWAP1 PUSH2 0x4636 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP2 SLOAD PUSH2 0x3394 SWAP1 PUSH2 0x3E0B JUMP JUMPDEST SWAP2 DUP3 SWAP1 SSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x33C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33D6 DUP4 DUP4 PUSH1 0x0 PUSH2 0x1A89 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x926 JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH2 0x340E DUP4 DUP4 DUP4 PUSH2 0x2DB2 JUMP JUMPDEST PUSH2 0x926 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x343C JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x9FF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3471 PUSH2 0x217F JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x3491 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 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xA0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xC0 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0xE0 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH2 0x100 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3518 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x352F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11F2 DUP2 PUSH2 0x34F8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3562 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11F2 DUP2 PUSH2 0x353A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3588 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3570 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x35A9 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x356D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x35FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3607 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP5 GT ISZERO PUSH2 0x3645 JUMPI PUSH2 0x3645 PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP6 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x366D JUMPI PUSH2 0x366D PUSH2 0x3615 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP1 SWAP4 POP DUP6 DUP2 MSTORE DUP7 DUP7 DUP7 ADD GT ISZERO PUSH2 0x3686 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 DUP6 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP8 DUP4 ADD ADD MSTORE POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x36C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x36D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x934 DUP5 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x362B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x36FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3709 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3719 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x373B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 ADD PUSH1 0x1F DUP2 ADD DUP8 SGT PUSH2 0x374C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x375B DUP8 DUP3 CALLDATALOAD PUSH1 0x20 DUP5 ADD PUSH2 0x362B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x377C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3787 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3797 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x37BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x34F8 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP7 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH6 0xFFFFFFFFFFFF DUP6 AND PUSH1 0x40 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x100 DUP2 ADD PUSH2 0x382C PUSH1 0x80 DUP4 ADD DUP6 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST DUP3 MLOAD ISZERO ISZERO PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB PUSH1 0x20 DUP5 ADD MLOAD AND PUSH1 0xE0 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3868 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x387A DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x388A DUP2 PUSH2 0x34F8 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x38BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x38CA DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x38DA DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x388A DUP2 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3902 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x390D DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x3924 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x3940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3954 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3963 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3975 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x40 DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x39CF JUMPI PUSH2 0x39CF PUSH2 0x3615 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 POP DUP1 DUP3 CALLDATALOAD PUSH2 0x39E0 DUP2 PUSH2 0x3895 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x39F0 DUP2 PUSH2 0x3988 JUMP JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A1B DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x399B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x19BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A54 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3A5F DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x3A33 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x3A99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3AAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3ABC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x3AD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD PUSH1 0x20 DUP5 MSTORE DUP1 DUP6 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP7 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP3 POP PUSH1 0x20 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3B3A JUMPI PUSH1 0x3F NOT DUP9 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x3B28 DUP6 DUP4 MLOAD PUSH2 0x3591 JUMP JUMPDEST SWAP5 POP SWAP3 DUP6 ADD SWAP3 SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3B0C JUMP JUMPDEST POP SWAP3 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x399B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3B80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x3B8B DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 ADD PUSH2 0x160 DUP2 DUP8 SUB SLT ISZERO PUSH2 0x387A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3BCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3BD7 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x3895 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH6 0xFFFFFFFFFFFF DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x934 PUSH1 0x40 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3C41 DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x37CD DUP2 PUSH2 0x34F8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C7C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x3C51 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3CA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3CAB DUP2 PUSH2 0x34F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x3A2A DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x3C51 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3CCE JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3C63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x926 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x3D17 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x284E JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3D23 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3D4F JUMPI PUSH2 0x3D4F PUSH2 0x3615 JUMP JUMPDEST PUSH2 0x3D63 DUP2 PUSH2 0x3D5D DUP5 SLOAD PUSH2 0x3CBA JUMP JUMPDEST DUP5 PUSH2 0x3CEE JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3D98 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3D80 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0x284E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3DC7 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x3DA8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x3DE5 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x3E1D JUMPI PUSH2 0x3E1D PUSH2 0x3DF5 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11F2 DUP2 PUSH2 0x34F8 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x841 JUMPI PUSH2 0x841 PUSH2 0x3DF5 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x3E64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x3E71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0x12E3 JUMPI PUSH1 0x4 SWAP5 SWAP1 SWAP5 SUB PUSH1 0x3 SHL DUP5 SWAP1 SHL AND SWAP1 SWAP3 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x841 JUMPI PUSH2 0x841 PUSH2 0x3DF5 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 0x3EEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x3F1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD PUSH1 0x0 DUP2 MSTORE DUP4 MLOAD PUSH2 0x3F3F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x356D JUMP JUMPDEST ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x3F5B DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x356D JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x3F6F DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x356D JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND DUP5 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x3FC1 PUSH1 0x80 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x3FDC PUSH1 0xA0 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x3FF7 PUSH1 0xC0 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP3 DUP3 DUP8 ADD MSTORE PUSH2 0x401A DUP4 DUP8 ADD DUP3 PUSH2 0x3591 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x403B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x405A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x3F1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 PUSH2 0x40B1 DUP5 PUSH2 0x40A4 DUP6 PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP6 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x40EF PUSH1 0xC0 DUP5 ADD PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 DUP6 ADD MSTORE PUSH2 0x4109 PUSH1 0xE0 DUP5 ADD PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 PUSH2 0x4125 DUP5 DUP3 ADD PUSH2 0x350D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP6 ADD MSTORE PUSH2 0x120 DUP4 DUP2 ADD CALLDATALOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x140 PUSH2 0x414C DUP2 DUP6 ADD DUP6 PUSH2 0x4024 JUMP JUMPDEST DUP4 DUP4 DUP9 ADD MSTORE PUSH2 0x415E DUP5 DUP9 ADD DUP3 DUP5 PUSH2 0x4069 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 MSTORE PUSH1 0x0 PUSH2 0x200 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x419F PUSH1 0x40 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP6 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x41C4 PUSH1 0x80 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x41E9 PUSH1 0xC0 DUP7 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0xE0 DUP4 DUP2 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x120 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x140 DUP1 DUP5 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 DUP8 ADD MSTORE POP POP PUSH2 0x180 DUP4 DUP2 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP7 DUP4 ADD MSTORE POP POP PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD DUP3 DUP3 DUP8 ADD MSTORE PUSH2 0x425B DUP4 DUP8 ADD DUP3 PUSH2 0x3591 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x1C0 DUP1 DUP5 ADD MLOAD DUP2 DUP7 ADD MSTORE POP PUSH2 0x1E0 DUP1 DUP5 ADD MLOAD DUP6 DUP4 SUB DUP3 DUP8 ADD MSTORE PUSH2 0x401A DUP4 DUP3 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x4296 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x3F78 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x42A8 DUP2 DUP8 PUSH2 0x3F78 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x42BC DUP2 DUP7 PUSH2 0x4092 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 SUB PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x415E DUP2 DUP6 PUSH2 0x4169 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD 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 0x2 DUP2 LT PUSH2 0x19BE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x433C DUP4 PUSH2 0x42FF JUMP JUMPDEST DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4355 DUP2 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB DUP2 AND SWAP1 POP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB NOT DUP3 AND OR DUP4 SSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x4380 DUP2 PUSH2 0x3988 JUMP JUMPDEST PUSH14 0xFFFFFFFFFF000000000000000000 DUP2 PUSH1 0x48 SHL AND DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP5 AND OR OR DUP5 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x90B DUP3 DUP3 PUSH2 0x434A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x43C7 DUP2 PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 DUP2 ADD CALLDATALOAD PUSH2 0x43E0 DUP2 PUSH2 0x3988 JUMP JUMPDEST PUSH5 0xFFFFFFFFFF DUP2 AND PUSH1 0x20 DUP5 ADD MSTORE POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x43BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x11F2 DUP2 PUSH2 0x3988 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x934 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x43BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11F2 DUP2 PUSH2 0x3A33 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x60 DUP5 MSTORE PUSH2 0x4478 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x3F78 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4488 DUP2 PUSH2 0x42FF JUMP JUMPDEST DUP1 PUSH1 0x20 DUP7 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1165 DUP3 DUP3 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4463 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 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP1 DUP3 GT ISZERO PUSH2 0x1BAA JUMPI PUSH2 0x1BAA PUSH2 0x3DF5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x48 SHL SUB AND DUP3 MSTORE PUSH1 0x20 SWAP1 DUP2 ADD MLOAD PUSH5 0xFFFFFFFFFF AND SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x457B DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x356D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x401A SWAP1 DUP4 ADD DUP5 PUSH2 0x3591 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x45CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x11F2 DUP2 PUSH2 0x353A JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x11F2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4092 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD PUSH1 0x60 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4604 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x4169 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP5 ADD MLOAD PUSH2 0x4614 DUP2 PUSH2 0x42FF JUMP JUMPDEST DUP1 PUSH1 0x40 DUP6 ADD MSTORE POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x1F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x1165 DUP3 DUP3 PUSH2 0x3591 JUMP JUMPDEST PUSH32 0x7B2269657865635F726573756C745F656E6372797074696F6E223A7472756500 DUP2 MSTORE PUSH32 0x2C2269657865635F726573756C745F73746F726167655F70726F766964657222 PUSH1 0x1F DUP3 ADD MSTORE PUSH2 0x1D11 PUSH1 0xF1 SHL PUSH1 0x3F DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x41 PUSH1 0x0 DUP5 SLOAD PUSH2 0x469B DUP2 PUSH2 0x3CBA JUMP JUMPDEST PUSH1 0x1 DUP3 DUP2 AND DUP1 ISZERO PUSH2 0x46B3 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46CE JUMPI PUSH2 0x4702 JUMP JUMPDEST PUSH1 0xFF NOT DUP5 AND PUSH1 0x41 DUP10 ADD MSTORE PUSH1 0x41 DUP4 ISZERO ISZERO DUP5 MUL DUP10 ADD ADD SWAP5 POP PUSH2 0x4702 JUMP JUMPDEST DUP9 PUSH1 0x0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x0 KECCAK256 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x46F6 JUMPI DUP2 SLOAD DUP12 DUP3 ADD DUP11 ADD MSTORE SWAP1 DUP5 ADD SWAP1 DUP3 ADD PUSH2 0x46DB JUMP JUMPDEST POP POP POP PUSH1 0x41 DUP4 DUP10 ADD ADD SWAP5 POP JUMPDEST POP POP POP POP PUSH2 0x4714 DUP2 PUSH2 0x227D PUSH1 0xF0 SHL SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x2 ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID DUP1 0xBB 0x2B PUSH4 0x8CC20BC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB007930002DD7BC7DEC4DCEEDDA775E58DD541E0 DUP11 GT PUSH13 0x6C53815C0BD028192F7B626800 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MCOPY 0x4F ADDMOD 0xE2 0x22 0xEC BLOBBASEFEE PUSH7 0x7CAF0A065C5F78 0xC5 SWAP8 0xE4 0x26 0xB7 0xBA 0xD9 XOR LOG0 0x4F SELFBALANCE 0x2D PUSH3 0x4BBEC2 EXP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "2313:21145:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23015:441;;;;;;:::i;:::-;;:::i;:::-;;8368:202;;;;;;:::i;:::-;;:::i;:::-;;;1092:14:51;;1085:22;1067:41;;1055:2;1040:18;8368:202:35;;;;;;;;3545:146:2;;;:::i;:::-;;;;;;;:::i;4791:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2333:32:51;;;2315:51;;2303:2;2288:18;4791:154:2;2169:203:51;4617:113:2;;;;;;:::i;:::-;;:::i;11629:186:35:-;;;;;;:::i;:::-;;:::i;639:153:21:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;4884:33:51;;;4866:52;;4854:2;4839:18;639:153:21;4722:202:51;20258:443:35;;;;;;:::i;:::-;;:::i;12096:221::-;;;;;;:::i;:::-;;:::i;:::-;;;5075:25:51;;;5063:2;5048:18;12096:221:35;4929:177:51;5494:578:2;;;;;;:::i;:::-;;:::i;4759:191:0:-;;;;;;:::i;:::-;;:::i;5246:136::-;;;;;;:::i;:::-;;:::i;2944:68:35:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2944:68:35;;;;;-1:-1:-1;;;2944:68:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2944:68:35;;;-1:-1:-1;;;2944:68:35;;;;;-1:-1:-1;;;2944:68:35;;;;;;;;;;;;;;;;;;;;;;:::i;6348:245:0:-;;;;;;:::i;:::-;;:::i;12355:1043:35:-;;;;;;:::i;:::-;;:::i;6138:132:2:-;;;;;;:::i;:::-;;:::i;878:314:3:-;;;;;;:::i;:::-;;:::i;2629:76:35:-;;;;;20976:167;;;;;;:::i;:::-;;:::i;3365:118:2:-;;;;;;:::i;:::-;;:::i;3043:265::-;;;;;;:::i;:::-;;:::i;16606:508:35:-;;;;;;:::i;:::-;;:::i;3778:275::-;;;:::i;9916:1464::-;;;;;;:::i;:::-;;:::i;3732:207:0:-;;;;;;:::i;:::-;;:::i;3755:150:2:-;;;:::i;17795:228:35:-;;;;;;:::i;:::-;;:::i;:::-;;;11010:14:51;10998:27;;;10980:46;;10968:2;10953:18;17795:228:35;10836:196:51;2317:49:0;;2362:4;2317:49;;5012:144:2;;;;;;:::i;:::-;;:::i;1518:484:5:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6336:233:2:-;;;;;;:::i;:::-;;:::i;9635::35:-;;;;;;:::i;:::-;9767:6;9792:37;;;:17;:37;;;;;;;;-1:-1:-1;;;;;9792:69:35;;;;:49;;:69;;;;;;;;9635:233;;;;;3971:255:2;;;;;;:::i;:::-;;:::i;13436:689:35:-;;;;;;:::i;:::-;;:::i;14408:259::-;;;;;;:::i;:::-;;:::i;5662:138:0:-;;;;;;:::i;:::-;;:::i;7332:1030:35:-;;;;;;:::i;:::-;;:::i;22094:889::-;;;;;;:::i;:::-;;:::i;3067:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3067:62:35;;;;-1:-1:-1;;;3067:62:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5222:210:2:-;;;;;;:::i;:::-;;:::i;9372:215:35:-;;;;;;:::i;:::-;-1:-1:-1;;;;;9520:36:35;;;9495:6;9520:36;;;:20;:36;;;;;;;;:60;;;;;;:44;;;;:60;;;;;;;;9372:215;2844:42;;;;;;:::i;:::-;;;;;;;;;;;;;;16071:495;;;;;;:::i;:::-;;:::i;17154:364::-;;;;;;:::i;:::-;;:::i;19538:686::-;;;;;;:::i;:::-;;:::i;23015:441::-;-1:-1:-1;;;;;23145:36:35;;23092:50;23145:36;;;:20;:36;;;;;23220:32;;23262:44;23220:32;23262:24;:44::i;:::-;23317:35;;;:53;;-1:-1:-1;;23317:53:35;;;23385:64;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16657:2;16642:18;;16635:60;23385:64:35;;16574:18:51;23385:64:35;;;;;;;;23082:374;;23015:441;:::o;8368:202::-;8504:4;8527:36;8551:11;8527:23;:36::i;:::-;8520:43;8368:202;-1:-1:-1;;8368:202:35:o;3545:146:2:-;-1:-1:-1;;;;;;;;;;;3670:14:2;;3590:13;;2076:21;;;3670:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:146;:::o;4791:154::-;4858:7;4877:22;4891:7;4877:13;:22::i;:::-;;4917:21;4930:7;4917:12;:21::i;4617:113::-;4688:35;4697:2;4701:7;966:10:4;4688:8:2;:35::i;:::-;4617:113;;:::o;11629:186:35:-;2362:4:0;3191:16;2362:4;3191:10;:16::i;:::-;11751:27:35::1;:57;11781:27:::0;11751;:57:::1;:::i;:::-;;11629:186:::0;;:::o;639:153:21:-;-1:-1:-1;;;639:153:21;;;;;;;:::o;20258:443:35:-;-1:-1:-1;;;;;20392:36:35;;20339:50;20392:36;;;:20;:36;;;;;20467:32;;20509:44;20467:32;20509:24;:44::i;:::-;20564:35;;;:48;;-1:-1:-1;;20564:48:35;;;20627:67;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16657:2;16642:18;;16635:60;20627:67:35;;16574:18:51;20627:67:35;16427:274:51;12096:221:35;12151:7;12170:15;12190:22;;12188:24;;;;;:::i;:::-;;;;;-1:-1:-1;12188:24:35;-1:-1:-1;12263:23:35;12273:3;12188:24;12263:9;:23::i;5494:578:2:-;-1:-1:-1;;;;;5588:16:2;;5584:87;;5627:33;;-1:-1:-1;;;5627:33:2;;5657:1;5627:33;;;2315:51:51;2288:18;;5627:33:2;;;;;;;;5584:87;5889:21;5913:34;5921:2;5925:7;966:10:4;5913:7:2;:34::i;:::-;5889:58;;5978:4;-1:-1:-1;;;;;5961:21:2;:13;-1:-1:-1;;;;;5961:21:2;;5957:109;;6005:50;;-1:-1:-1;;;6005:50:2;;-1:-1:-1;;;;;19816:15:51;;;6005:50:2;;;19798:34:51;19848:18;;;19841:34;;;19911:15;;19891:18;;;19884:43;19733:18;;6005:50:2;19558:375:51;5957:109:2;5574:498;5494:578;;;:::o;4759:191:0:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:0;;;;;:24;;;;4759:191::o;5246:136::-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;6348:245::-:0;-1:-1:-1;;;;;6441:34:0;;966:10:4;6441:34:0;6437:102;;6498:30;;-1:-1:-1;;;6498:30:0;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;12355:1043:35:-;12528:44;12553:18;12528:24;:44::i;:::-;12582:43;12610:14;12582:27;:43::i;:::-;12636:81;;-1:-1:-1;;;12636:81:35;;-1:-1:-1;;;;;12676:40:35;;;12636:81;;;5075:25:51;12636:31:35;:39;;;;5048:18:51;;12636:81:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12781:65:35;;-1:-1:-1;;;12781:65:35;;-1:-1:-1;;;;;12813:32:35;;;12781:65;;;5075:25:51;12727:23:35;:40;;;;;;12781:31;;5048:18:51;;12781:65:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12727:202;;-1:-1:-1;;;;;;12727:202:35;;;;;;;-1:-1:-1;;;;;20452:15:51;;;12727:202:35;;;20434:34:51;12868:4:35;20484:18:51;;;20477:43;12887:32:35;;;20536:18:51;;;20529:34;20369:18;;12727:202:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;12992:36:35;;;12939:50;12992:36;;;:20;:36;;;;;;;;13038:41;;;;:57;;-1:-1:-1;;;;;;13038:57:35;;;;;;;;;;;13105:53;;;13168:37;;;:17;:37;;;;;:47;;12992:36;;13038:41;13168:37;;:47;;13038:41;;13168:47;:::i;:::-;;;;-1:-1:-1;13226:66:35;;-1:-1:-1;13253:14:35;13277:13;13226:26;:66::i;:::-;-1:-1:-1;13307:84:35;;;-1:-1:-1;;;;;20999:15:51;;;20981:34;;21046:2;21031:18;;21024:34;;;13365:1:35;21074:18:51;;;21067:34;;;;21137:15;;;21132:2;21117:18;;21110:43;13307:84:35;;20930:3:51;20915:19;13307:84:35;;;;;;;;12518:880;12355:1043;;;:::o;6138:132:2:-;6224:39;6241:4;6247:2;6251:7;6224:39;;;;;;;;;;;;:16;:39::i;878:314:3:-;1143:42;1159:1;1163:7;966:10:4;5913:7:2;:34::i;20976:167:35:-;21078:58;21096:14;21112:10;21124:3;21129:6;21078:17;:58::i;3365:118:2:-;3428:7;3454:22;3468:7;3454:13;:22::i;3043:265::-;3106:7;-1:-1:-1;;;;;;;;;;;;;;;;3184:19:2;;3180:87;;3226:30;;-1:-1:-1;;;3226:30:2;;3253:1;3226:30;;;2315:51:51;2288:18;;3226:30:2;2169:203:51;3180:87:2;-1:-1:-1;;;;;3283:18:2;;;;;;;:11;;;;:18;;-1:-1:-1;3283:18:2;;;;;3043:265::o;16606:508:35:-;-1:-1:-1;;;;;16745:36:35;;16692:50;16745:36;;;:20;:36;;;;;16820:32;;16862:44;16820:32;16862:24;:44::i;:::-;16916:49;16946:18;16916:29;:49::i;:::-;16976:36;;;:44;;-1:-1:-1;;;;16976:44:35;;;17035:72;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16657:2;16642:18;;16635:60;17035:72:35;;16574:18:51;17035:72:35;16427:274:51;3778:275:35;4158:30:1;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:1;-1:-1:-1;;;4302:15:1;;;4301:16;;-1:-1:-1;;;;;4348:14:1;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:1;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:1;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:1;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:1;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:1;-1:-1:-1;;;5011:22:1;;;4977:67;3829:72:35::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;::::0;:13:::1;:72::i;:::-;3911:23;:21;:23::i;:::-;3944:22;:20;:22::i;:::-;3976:42;2362:4:0;4007:10:35;3976;:42::i;:::-;;4029:17;;;;;;;;;;;;;;-1:-1:-1::0;;;4029:17:35::1;;::::0;:9:::1;:17::i;:::-;5068:14:1::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:1;;;5140:14;;-1:-1:-1;21317:50:51;;5140:14:1;;21305:2:51;21290:18;5140:14:1;;;;;;;5064:101;4092:1079;;;;;3778:275:35:o;9916:1464::-;10057:4;10077:10;-1:-1:-1;;;;;10099:13:35;10077:36;;10073:110;;10136:36;;-1:-1:-1;;;10136:36:35;;10161:10;10136:36;;;2315:51:51;2288:18;;10136:36:35;2169:203:51;10073:110:35;10217:1;10196:22;;;10192:75;;10241:15;;-1:-1:-1;;;10241:15:35;;;;;;;;;;;10192:75;10276:15;10301:14;10313:1;10276:15;10301:10;;:14;:::i;:::-;10294:22;;;:::i;:::-;10276:40;-1:-1:-1;;;;;;;;;;10331:47:35;;;10327:1024;;10395:25;;10498:14;:10;10509:1;10498:10;;:14;:::i;:::-;10470:103;;;;;;;:::i;:::-;10394:179;;;;10587:70;10610:17;10629:7;10638:18;10587:22;:70::i;:::-;;10678:4;10671:11;;;;;;;10327:1024;-1:-1:-1;;;;;;;;;10703:43:35;;;10699:652;;10763:21;;10852:14;:10;10863:1;10852:10;;:14;:::i;:::-;10824:98;;;;;;;:::i;:::-;10762:160;;;;10936:57;10955:13;10970:7;10979:13;10936:18;:57::i;10699:652::-;-1:-1:-1;;;;;;;;;11039:42:35;;;11035:316;;11098:21;;;11177:14;:10;11188:1;11177:10;;:14;:::i;:::-;11149:100;;;;;;;:::i;:::-;11097:152;;;;;;11263:52;11281:13;11296:7;11305:2;11309:5;11263:17;:52::i;:::-;11336:4;11329:11;;;;;;;;11035:316;11368:5;11361:12;;;9916:1464;;;;;;;;:::o;3732:207:0:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:0;;;;;;;;-1:-1:-1;;;;;3901:31:0;;;;;;;;;;;;;;;3732:207::o;3755:150:2:-;3889:9;3882:16;;3802:13;;-1:-1:-1;;;;;;;;;;;2076:21:2;3882:16;;;:::i;17795:228:35:-;17921:14;17954:62;17973:14;17989:10;18001:14;17954:18;:62::i;:::-;17947:69;17795:228;-1:-1:-1;;;17795:228:35:o;5012:144:2:-;5097:52;966:10:4;5130:8:2;5140;5097:18;:52::i;1518:484:5:-;1684:12;;;1620:20;1684:12;;;;;;;;1586:22;;1795:4;-1:-1:-1;;;;;1783:24:5;;;;;;;:::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;6336:233:2:-;6449:31;6462:4;6468:2;6472:7;6449:12;:31::i;:::-;6490:72;966:10:4;6538:4:2;6544:2;6548:7;6557:4;6490:33;:72::i;3971:255::-;4035:13;4060:22;4074:7;4060:13;:22::i;:::-;;4093:21;4117:10;4544:9;;;;;;;;;-1:-1:-1;4544:9:2;;;4468:92;4117:10;4093:34;;4168:1;4150:7;4144:21;:25;:75;;;;;;;;;;;;;;;;;4186:7;4195:18;:7;:16;:18::i;:::-;4172:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4137:82;3971:255;-1:-1:-1;;;3971:255:2:o;13436:689:35:-;-1:-1:-1;;;;;13549:36:35;;13520:26;13549:36;;;:20;:36;;;;;:47;13606:44;13549:47;13606:24;:44::i;:::-;13660:49;13690:18;13660:29;:49::i;:::-;13719:44;13748:14;13719:28;:44::i;:::-;-1:-1:-1;;;;;13781:36:35;;;;;;:20;:36;;;;;;;;13774:43;;;;;;;;;-1:-1:-1;;;;;;13774:43:35;;;;;;;;-1:-1:-1;;;;;;13774:43:35;;;;;;;;;-1:-1:-1;;13774:43:35;;;13827:37;;;:17;:37;;;;;:47;;13774:43;;13827:37;;:47;;13774:43;;13827:47;:::i;:::-;;;;-1:-1:-1;;13884:147:35;;-1:-1:-1;;;13884:147:35;;13946:4;13884:147;;;20434:34:51;13965:10:35;20484:18:51;;;20477:43;-1:-1:-1;;;;;13989:32:35;;;20536:18:51;;;20529:34;13884:23:35;:40;;;;20369:18:51;;13884:147:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14046:72:35;;;-1:-1:-1;;;;;20999:15:51;;20981:34;;14084:1:35;21046:2:51;21031:18;;21024:34;;;21074:18;;;21067:34;;;21132:2;21117:18;;21110:43;;;;14046:72:35;;-1:-1:-1;20930:3:51;20915:19;;-1:-1:-1;14046:72:35;;;;;;;;13510:615;13436:689;:::o;14408:259::-;14552:14;14585:75;14608:18;14628:10;14640:19;14585:22;:75::i;5662:138:0:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;7332:1030:35:-:0;7509:14;7535:10;7548:70;7585:14;7601:16;7548:36;:70::i;:::-;-1:-1:-1;;;;;7751:36:35;;;7628:51;7751:36;;;:20;:36;;;;;:56;;;7535:83;;-1:-1:-1;7628:51:35;7682:136;;7715:14;;7751:56;7682:19;:136::i;:::-;7628:190;;7828:43;7874:28;7897:4;7874:22;:28::i;:::-;7828:74;-1:-1:-1;7912:50:35;7965:162;8005:14;8033:4;8051:27;;;;:16;:27;:::i;:::-;8092:16;:25;;;7965:26;:162::i;:::-;8147:141;;-1:-1:-1;;;8147:141:35;;7912:215;;-1:-1:-1;;;;;;8147:13:35;:25;;;;:141;;8186:9;;8209:13;;8236:16;;7912:215;;8147:141;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8138:150;;8303:52;8325:6;8333:14;8349:5;8303:52;;;;;;;;:::i;:::-;;;;;;;;7525:837;;;;7332:1030;;;;;:::o;22094:889::-;-1:-1:-1;;;;;22236:36:35;;22183:50;22236:36;;;:20;:36;;;;;22311:32;;22353:44;22311:32;22353:24;:44::i;:::-;22407;22436:14;22407:28;:44::i;:::-;22466:36;;;;-1:-1:-1;;;22466:36:35;;;;22462:146;;;22525:72;;-1:-1:-1;;;22525:72:35;;;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16642:18;;;16635:60;16574:18;;22525:72:35;16427:274:51;22462:146:35;22621:35;;;:44;-1:-1:-1;;;22621:44:35;;;;:48;22617:154;;22692:68;;-1:-1:-1;;;22692:68:35;;;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16642:18;;;16635:60;16574:18;;22692:68:35;16427:274:51;22617:154:35;22780:35;;;:52;;-1:-1:-1;;;;;22842:50:35;;22780:52;22842:50;-1:-1:-1;;22842:50:35;;;;22828:4;22842:50;;;22907:69;;;;;;22933:18;;22953:14;;22886:6;;31754:25:51;;;-1:-1:-1;;;;;31815:32:51;;;;31810:2;31795:18;;31788:60;-1:-1:-1;;;;;31884:33:51;31879:2;31864:18;;31857:61;31742:2;31727:18;;31554:370;5222:210:2;-1:-1:-1;;;;;5388:27:2;;;5310:4;5388:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5222:210::o;16071:495:35:-;-1:-1:-1;;;;;16205:36:35;;16152:50;16205:36;;;:20;:36;;;;;16280:32;;16322:44;16280:32;16322:24;:44::i;:::-;16376:45;16406:14;16376:29;:45::i;:::-;16471:4;16432:36;;:43;;-1:-1:-1;;;;16432:43:35;-1:-1:-1;;;16432:43:35;;;16490:69;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16657:2;16642:18;;16635:60;16490:69:35;;16574:18:51;16490:69:35;16427:274:51;17154:364:35;17301:44;17326:18;17301:24;:44::i;:::-;17356:37;;;;:17;:37;;;;;17415:19;;17356:56;;:78;17415:19;17356:56;:78;:::i;:::-;;;;17449:62;17471:18;17491:19;17449:62;;;;;;;:::i;19538:686::-;-1:-1:-1;;;;;19728:36:35;;19675:50;19728:36;;;:20;:36;;;;;19803:32;;19845:44;19803:32;19845:24;:44::i;:::-;19899:45;19929:14;19899:29;:45::i;:::-;19959:23;;;;;;;;:::i;:::-;:28;;19986:1;19959:28;19955:106;;20026:23;;;;;;;;:::i;:::-;20010:40;;-1:-1:-1;;;20010:40:35;;33963:12:51;33951:25;;;20010:40:35;;;33933:44:51;33906:18;;20010:40:35;33789:194:51;19955:106:35;20108:14;20070:35;;;:52;20108:14;20070:35;:52;:::i;:::-;;;;20137:80;20166:18;20186:14;20202;20137:80;;;;;;;;:::i;4302:246::-;4393:74;4407:27;4415:18;4407:7;:27::i;:::-;4436:10;4448:18;4393:13;:74::i;:::-;4388:154;;4490:41;;-1:-1:-1;;;4490:41:35;;;;;5075:25:51;;;5048:18;;4490:41:35;4929:177:51;4388:154:35;4302:246;:::o;3443:202:0:-;3528:4;-1:-1:-1;;;;;;3551:47:0;;-1:-1:-1;;;3551:47:0;;:87;;;3602:36;3626:11;3602:23;:36::i;17910:241:2:-;17973:7;17992:13;18008:17;18017:7;18008:8;:17::i;:::-;17992:33;-1:-1:-1;;;;;;18039:19:2;;18035:88;;18081:31;;-1:-1:-1;;;18081:31:2;;;;;5075:25:51;;;5048:18;;18081:31:2;4929:177:51;7372:184:2;7442:7;7523:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7523:26:2;;7372:184::o;16076:120::-;16156:33;16165:2;16169:7;16178:4;16184;16156:8;:33::i;4148:103:0:-;4214:30;4225:4;966:10:4;4214::0;:30::i;12240:100:2:-;12307:26;12317:2;12321:7;12307:26;;;;;;;;;;;;:9;:26::i;8680:644:35:-;8816:7;8882:37;;;:17;:37;;;;;-1:-1:-1;;;;;8933:16:35;;8929:329;;8969:23;;:27;8965:111;;9023:38;;-1:-1:-1;;;9023:38:35;;;;;5075:25:51;;;5048:18;;9023:38:35;4929:177:51;8965:111:35;9093:45;;;;9141:15;9093:45;;;;:63;9089:159;;;9183:50;;-1:-1:-1;;;9183:50:35;;;;;5075:25:51;;;5048:18;;9183:50:35;4929:177:51;9089:159:35;9274:43;9288:2;9292:18;9312:4;9274:13;:43::i;7270:387:0:-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:0;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:0;;;;;;;;;:38;;-1:-1:-1;;7475:38:0;7509:4;7475:38;;;7559:12;966:10:4;;887:96;7559:12:0;-1:-1:-1;;;;;7532:40:0;7550:7;-1:-1:-1;;;;;7532:40:0;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7432:219;7353:304;7270:387;;;;:::o;7894:388::-;7972:4;-1:-1:-1;;;;;;;;;;;8061:22:0;8069:4;8075:7;8061;:22::i;:::-;8057:219;;;8133:5;8099:14;;;;;;;;;;;-1:-1:-1;;;;;8099:31:0;;;;;;;;;;:39;;-1:-1:-1;;8099:39:0;;;8157:40;966:10:4;;8099:14:0;;8157:40;;8133:5;8157:40;8218:4;8211:11;;;;;4554:526:35;4728:53;;-1:-1:-1;;;4728:53:35;;-1:-1:-1;;;;;4670:32:35;;;4728:53;;;5075:25:51;;;4670:32:35;4639:28;;4728:23;:31;;;;5048:18:51;;4728:53:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4712:69;-1:-1:-1;4811:10:35;-1:-1:-1;;;;;4811:19:35;;;;:110;;-1:-1:-1;4850:57:35;;-1:-1:-1;;;4850:57:35;;;;;5075:25:51;;;4911:10:35;;-1:-1:-1;;;;;4850:23:35;:35;;;;5048:18:51;;4850:57:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4850:71:35;;4811:110;:189;;;-1:-1:-1;4941:59:35;;-1:-1:-1;;;4941:59:35;;-1:-1:-1;;;;;34940:15:51;;;4941:59:35;;;34922:34:51;4989:10:35;34972:18:51;;;34965:43;4941:23:35;:40;;;;34857:18:51;;4941:59:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4792:282;;5033:30;;-1:-1:-1;;;5033:30:35;;;;;;;;;;;4959:564:36;5082:51;;:::i;:::-;5161:50;5181:14;5197:13;5161:19;:50::i;:::-;5145:66;;5240:13;-1:-1:-1;;;;;5240:32:36;;5286:220;;;;;;;;5351:13;5286:220;;;;5393:41;5286:220;;;;;;;;:::i;:::-;;;5479:12;;;5489:1;5479:12;;5286:220;5479:12;;;;;5286:220;;;;;;;5240:276;-1:-1:-1;;;;;;5240:276:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4959:564;;;;:::o;21149:913:35:-;-1:-1:-1;;;;;21354:36:35;;21301:50;21354:36;;;:20;:36;;;;;21400:42;21375:14;21400:26;:42::i;:::-;21456:35;;;:41;-1:-1:-1;;;;;21456:51:35;;;:41;;;;;:51;21452:136;;21530:47;;-1:-1:-1;;;21530:47:35;;-1:-1:-1;;;;;36302:32:51;;21530:47:35;;;36284:51:51;-1:-1:-1;;;;;36371:33:51;;36351:18;;;36344:61;36257:18;;21530:47:35;36112:299:51;21452:136:35;21598:140;;-1:-1:-1;;;21598:140:35;;21660:4;21598:140;;;20434:34:51;-1:-1:-1;;;;;20504:15:51;;;20484:18;;;20477:43;21696:32:35;;;20536:18:51;;;20529:34;21598:23:35;:40;;;;20369:18:51;;21598:140:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21748:13;-1:-1:-1;;;;;21748:26:35;;21788:7;21809:41;21817:21;:32;;;21809:7;:41::i;:::-;21864:35;;;;:41;21748:167;;;;;;-1:-1:-1;;;;;;21748:167:35;;;;;;;21864:41;;;;-1:-1:-1;;;;;21864:41:35;;21748:167;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21948:32:35;;21930:72;;;37024:25:51;;;-1:-1:-1;;;;;37123:15:51;;;37118:2;37103:18;;37096:43;37175:15;;37155:18;;;37148:43;21930:72:35;;;;;;37012:2:51;21930:72:35;;;-1:-1:-1;;;;;;;;;22019:36:35;;;;;:20;:36;;;;;22012:43;;;;;;;;-1:-1:-1;;;;;;22012:43:35;;;;;;;;-1:-1:-1;;;;;;22012:43:35;;;;;;;-1:-1:-1;;22012:43:35;;;21149:913::o;5086:268::-;5181:37;;;;:17;:37;;;;;:64;;;5249:15;5181:64;;;;:83;5177:171;;5287:50;;-1:-1:-1;;;5287:50:35;;;;;5075:25:51;;;5048:18;;5287:50:35;4929:177:51;9071:205:1;9129:30;;3147:66;9186:27;8819:122;2232:149:2;6929:20:1;:18;:20::i;:::-;2335:39:2::1;2359:5;2366:7;2335:23;:39::i;558:66:3:-:0;6929:20:1;:18;:20::i;:::-;558:66:3:o;14673:1358:35:-;14844:14;14917:37;;;:17;:37;;;;;15028:25;;14981:37;;;:43;-1:-1:-1;;;;;14981:43:35;;;:72;;;;;:166;;-1:-1:-1;15119:28:35;;;;15069:37;;;:46;-1:-1:-1;;;15069:46:35;;:78;:46;;;:78;;;;14981:166;14964:292;;;15205:18;15225:19;15179:66;;-1:-1:-1;;;15179:66:35;;;;;;;;;:::i;14964:292::-;15533:37;;;:46;15500:80;;-1:-1:-1;;;15533:46:35;;;;15507:15;15500:80;:::i;:::-;-1:-1:-1;;;;;15590:39:35;;;;;;:30;;;:39;;;;;:49;;-1:-1:-1;;15590:49:35;;;;;;;;;;;-1:-1:-1;15735:45:35;;;15590:49;;-1:-1:-1;15717:64:35;;15590:49;;15735:45;15717:8;:64::i;:::-;15649:45;;;:142;;-1:-1:-1;;15649:142:35;;;;;;;;;;;;15801:13;-1:-1:-1;;;;;15801:26:35;;15841:7;15862:27;15870:18;15862:7;:27::i;:::-;15903:37;;;:43;15801:155;;-1:-1:-1;;;;;;15801:155:35;;;;;;;;;;;-1:-1:-1;;;;;15903:43:35;;15801:155;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15971:53:35;;;37907:25:51;;;37980:14;37968:27;;37963:2;37948:18;;37941:55;-1:-1:-1;;;;;15971:53:35;;;;;37880:18:51;15971:53:35;;;;;;;14860:1171;14673:1358;;;;;:::o;18029:1475::-;-1:-1:-1;;;;;18261:36:35;;18182:14;18261:36;;;:20;:36;;;;;18311:35;;;:44;-1:-1:-1;;;18311:44:35;;;;:49;;18307:138;;18383:51;;-1:-1:-1;;;18383:51:35;;-1:-1:-1;;;;;2333:32:51;;18383:51:35;;;2315::51;2288:18;;18383:51:35;2169:203:51;18307:138:35;18519:23;;;;18471:35;;;:44;-1:-1:-1;;;18471:44:35;;:71;:44;;;:71;;;;;:152;;-1:-1:-1;18603:20:35;;18558:35;;;:41;-1:-1:-1;;;;;18558:41:35;;;:65;;;;18471:152;18454:264;;;18676:14;18692;18655:52;;-1:-1:-1;;;18655:52:35;;;;;;;;;:::i;18454:264::-;18771:35;;;:44;18738:78;;-1:-1:-1;;;18771:44:35;;;;18745:15;18738:78;:::i;:::-;-1:-1:-1;;;;;18826:38:35;;;;;;:29;;;:38;;;;;:48;;-1:-1:-1;;18826:48:35;;;;;;;;;;;-1:-1:-1;19174:42:35;;;18826:48;;-1:-1:-1;19156:61:35;;18826:48;;-1:-1:-1;;;19174:42:35;;;;19156:8;:61::i;:::-;19091:21;:42;;;:136;;;;;;;;;;;;;;;;;;19238:13;-1:-1:-1;;;;;19238:26:35;;19278:7;19299:41;19307:21;:32;;;19299:7;:41::i;:::-;19354:35;;;:41;19238:167;;-1:-1:-1;;;;;;19238:167:35;;;;;;;;;;;-1:-1:-1;;;;;19354:41:35;;19238:167;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19430:32:35;;19420:77;;;38604:25:51;;;-1:-1:-1;;;;;38703:15:51;;;38698:2;38683:18;;38676:43;38755:15;;38735:18;;;38728:43;38819:14;38807:27;;38802:2;38787:18;;38780:55;19420:77:35;;;;;;38591:3:51;19420:77:35;;;18198:1306;18029:1475;;;;;:::o;17306:369:2:-;-1:-1:-1;;;;;;;;;;;;;;;;17468:22:2;;17464:91;;17513:31;;-1:-1:-1;;;17513:31:2;;-1:-1:-1;;;;;2333:32:51;;17513:31:2;;;2315:51:51;2288:18;;17513:31:2;2169:203:51;17464:91:2;-1:-1:-1;;;;;17564:27:2;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17564:48:2;;;;;;;;;;17627:41;;1067::51;;;17627::2;;1040:18:51;17627:41:2;;;;;;;17399:276;17306:369;;;:::o;3916:253:23:-;3999:12;4024;4038:23;4065:6;-1:-1:-1;;;;;4065:19:23;4085:4;4065:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4023:67;;;;4107:55;4134:6;4142:7;4151:10;4107:26;:55::i;993:924:22:-;-1:-1:-1;;;;;1173:14:22;;;:18;1169:742;;1211:67;;-1:-1:-1;;;1211:67:22;;-1:-1:-1;;;;;1211:36:22;;;;;:67;;1248:8;;1258:4;;1264:7;;1273:4;;1211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1211:67:22;;;;;;;;-1:-1:-1;;1211:67:22;;;;;;;;;;;;:::i;:::-;;;1207:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:6;:13;1585:1;1568:18;1564:323;;1672:39;;-1:-1:-1;;;1672:39:22;;-1:-1:-1;;;;;2333:32:51;;1672:39:22;;;2315:51:51;2288:18;;1672:39:22;2169:203:51;1564:323:22;1839:6;1833:13;1824:6;1820:2;1816:15;1809:38;1207:694;-1:-1:-1;;;;;;1325:51:22;;-1:-1:-1;;;1325:51:22;1321:182;;1445:39;;-1:-1:-1;;;1445:39:22;;-1:-1:-1;;;;;2333:32:51;;1445:39:22;;;2315:51:51;2288:18;;1445:39:22;2169:203:51;1321:182:22;1279:238;993:924;;;;;:::o;1308:632:29:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;-1:-1:-1;;;;;1488:18:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:29;-1:-1:-1;1465:41:29;-1:-1:-1;1595:28:29;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:29;-1:-1:-1;;;1780:2:29;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:29;1650:247;1861:21;-1:-1:-1;1917:6:29;1308:632;-1:-1:-1;;;1308:632:29:o;5360:255:35:-;-1:-1:-1;;;;;5450:36:35;;;;;;:20;:36;;;;;:57;;;5511:15;-1:-1:-1;;;5450:57:35;;;;;:76;5446:163;;5549:49;;-1:-1:-1;;;5549:49:35;;-1:-1:-1;;;;;2333:32:51;;5549:49:35;;;2315:51:51;2288:18;;5549:49:35;2169:203:51;6088:953:35;6264:4;6284:32;;;;:36;6280:114;;6366:16;6343:40;;-1:-1:-1;;;6343:40:35;;;;;;;;:::i;6280:114::-;-1:-1:-1;;;;;6457:36:35;;6404:50;6457:36;;;:20;:36;;;;;;;;6531:32;;6607:10;6577:41;;:29;;;:41;;;;;;6622:15;6577:41;;;;:60;6573:462;;6660:12;6653:19;;;;;;6573:462;6706:22;;;;;:74;;-1:-1:-1;6744:36:35;;;;-1:-1:-1;;;6744:36:35;;;;6706:74;:169;;;;-1:-1:-1;6796:36:35;;;;:17;:36;;;;;;;;6845:10;6796:60;;:48;;:60;;;;;;6860:15;6796:60;;;;:79;;6706:169;6689:346;;;6907:17;6900:24;;;;;;6689:346;6962:62;;-1:-1:-1;;;6962:62:35;;;;;16601:25:51;;;-1:-1:-1;;;;;16662:32:51;;16642:18;;;16635:60;16574:18;;6962:62:35;16427:274:51;4317:636:36;4438:37;;:::i;:::-;-1:-1:-1;4545:401:36;;;;;;;;-1:-1:-1;;;;;4545:401:36;;;;;-1:-1:-1;4545:401:36;;;;;;;-1:-1:-1;;4545:401:36;;;;2217:66;4545:401;;;;;;;;;;;;;;;;;;4856:4;4545:401;;;;;;;;;;4919:12;;;;;;;;;;4545:401;;;;;;;;4317:636::o;3831:480::-;3916:43;;:::i;:::-;3983:28;3999:11;3983:15;:28::i;:::-;3971:40;;4040:13;-1:-1:-1;;;;;4040:28:36;;4082:212;;;;;;;;4143:9;4082:212;;;;4181:41;4082:212;;;;;;;;:::i;:::-;;;4267:12;;;4277:1;4267:12;;4082:212;4267:12;;;;;4082:212;;;;;;;4040:264;-1:-1:-1;;;;;;4040:264:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3831:480;;;:::o;5529:1545::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:68:36;5872:1065;;;;;;;;5950:845;;;;;;;;6008:11;-1:-1:-1;;;;;5950:845:36;;;;;6064:1;5950:845;;;;6106:14;-1:-1:-1;;;;;5950:845:36;;;;;6169:1;5950:845;;;;6214:18;-1:-1:-1;;;;;5950:845:36;;;;;6284:1;5950:845;;;;6336:4;-1:-1:-1;;;;;5950:845:36;;;;;6381:1;5950:845;;;;2217:66;6419:3;;5950:845;;;;6464:9;5950:845;;;;2338:1;5950:845;;;;6562:10;-1:-1:-1;;;;;5950:845:36;;;;;6622:1;-1:-1:-1;;;;;5950:845:36;;;;;6664:16;:14;:16::i;:::-;5950:845;;;;6717:9;:7;:9::i;:::-;5950:845;;6764:12;;;6774:1;6764:12;;;5950:845;6764:12;;;;;5950:845;;;;;;;5872:1065;;;;;;;;;6910:12;;;;;;;;;;5872:1065;;;;6967:55;-1:-1:-1;;;6967:55:36;;5801:1136;;-1:-1:-1;6967:13:36;-1:-1:-1;;;;;6967:32:36;;;;:55;;5801:1136;;6967:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7040:27:36;;;5529:1545;-1:-1:-1;;;;;;;5529:1545:36:o;5621:227:35:-;-1:-1:-1;;;;;5712:36:35;;;;;;:20;:36;;;;;:50;;:60;;;5708:134;;;5795:36;;-1:-1:-1;;;5795:36:35;;-1:-1:-1;;;;;2333:32:51;;5795:36:35;;;2315:51:51;2288:18;;5795:36:35;2169:203:51;7867:272:2;7970:4;-1:-1:-1;;;;;8005:21:2;;;;;;:127;;;8052:7;-1:-1:-1;;;;;8043:16:2;:5;-1:-1:-1;;;;;8043:16:2;;:52;;;;8063:32;8080:5;8087:7;8063:16;:32::i;:::-;8043:88;;;;8124:7;-1:-1:-1;;;;;8099:32:2;:21;8112:7;8099:12;:21::i;:::-;-1:-1:-1;;;;;8099:32:2;;7986:146;7867:272;-1:-1:-1;;;;7867:272:2:o;2673:311::-;2786:4;-1:-1:-1;;;;;;2821:40:2;;-1:-1:-1;;;2821:40:2;;:104;;-1:-1:-1;;;;;;;2877:48:2;;-1:-1:-1;;;2877:48:2;2821:104;:156;;;-1:-1:-1;;;;;;;;;;1134:40:6;;;2941:36:2;1035:146:6;7084:172:2;7150:7;7231:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7231:18:2;;7084:172::o;16378:719::-;-1:-1:-1;;;;;;;;;;;16593:9:2;;:31;;-1:-1:-1;;;;;;16606:18:2;;;;16593:31;16589:460;;;16640:13;16656:22;16670:7;16656:13;:22::i;:::-;16640:38;-1:-1:-1;;;;;;16806:18:2;;;;;;:35;;;16837:4;-1:-1:-1;;;;;16828:13:2;:5;-1:-1:-1;;;;;16828:13:2;;;16806:35;:69;;;;;16846:29;16863:5;16870:4;16846:16;:29::i;:::-;16845:30;16806:69;16802:142;;;16902:27;;-1:-1:-1;;;16902:27:2;;-1:-1:-1;;;;;2333:32:51;;16902:27:2;;;2315:51:51;2288:18;;16902:27:2;2169:203:51;16802:142:2;16962:9;16958:81;;;17016:7;17012:2;-1:-1:-1;;;;;16996:28:2;17005:5;-1:-1:-1;;;;;16996:28:2;;;;;;;;;;;16958:81;16626:423;16589:460;17059:26;;;;:17;;:26;;-1:-1:-1;;17059:26:2;;;:31;;-1:-1:-1;;;;;;17059:31:2;-1:-1:-1;;;;;17059:31:2;;;;;;;;;;16378:719::o;4381:197:0:-;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:0;;-1:-1:-1;;;;;41544:32:51;;4514:47:0;;;41526:51:51;41593:18;;;41586:34;;;41499:18;;4514:47:0;41352:274:51;12561:207:2;12655:18;12661:2;12665:7;12655:5;:18::i;:::-;12683:78;966:10:4;12739:1:2;12743:2;12747:7;12756:4;12683:33;:78::i;10384:856::-;10470:7;-1:-1:-1;;;;;;;;;;;10470:7:2;10559:17;10568:7;10559:8;:17::i;:::-;10544:32;-1:-1:-1;;;;;;10636:18:2;;;10632:86;;10670:37;10687:4;10693;10699:7;10670:16;:37::i;:::-;-1:-1:-1;;;;;10762:18:2;;;10758:258;;10878:48;10895:1;10899:7;10916:1;10920:5;10878:8;:48::i;:::-;-1:-1:-1;;;;;10969:17:2;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10969:22:2;;;10758:258;-1:-1:-1;;;;;11030:16:2;;;11026:109;;-1:-1:-1;;;;;11090:15:2;;;;;;:11;;;:15;;;;;:20;;11109:1;11090:20;;;11026:109;11145:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11145:23:2;-1:-1:-1;;;;;11145:23:2;;;;;;;;;11184:27;;11145:18;;11184:27;;;;;;;11229:4;10384:856;-1:-1:-1;;;;;10384:856:2:o;5854:228:35:-;-1:-1:-1;;;;;5943:36:35;;;;;;:20;:36;;;;;:50;;:60;;;5938:138;;6026:39;;-1:-1:-1;;;6026:39:35;;-1:-1:-1;;;;;2333:32:51;;6026:39:35;;;2315:51:51;2288:18;;6026:39:35;2169:203:51;7082:141:1;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:1;;;;;;;;;;;2387:219:2;6929:20:1;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2076:21:2;2555:15:::1;2565:5:::0;2076:21;2555:15:::1;:::i;:::-;-1:-1:-1::0;2580:9:2::1;::::0;::::1;:19;2592:7:::0;2580:9;:19:::1;:::i;5435:111:31:-:0;5493:7;5312:5;;;5527;;;5311:36;5306:42;;5519:20;5071:294;4437:582:23;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:23;;;:23;4857:49;4853:119;;;4933:24;;-1:-1:-1;;;4933:24:23;;-1:-1:-1;;;;;2333:32:51;;4933:24:23;;;2315:51:51;2288:18;;4933:24:23;2169:203:51;4853:119:23;-1:-1:-1;4992:10:23;4985:17;;29154:916:31;29207:7;;-1:-1:-1;;;29282:17:31;;29278:103;;-1:-1:-1;;;29319:17:31;;;-1:-1:-1;29364:2:31;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:31;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:31;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:31;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:31;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:31;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:31:o;3241:584:36:-;3324:33;;:::i;:::-;-1:-1:-1;3423:395:36;;;;;;;;-1:-1:-1;;;;;3423:395:36;;;;;;-1:-1:-1;3423:395:36;;;;;;;-1:-1:-1;;3423:395:36;;;;2217:66;3423:395;;;;;;;;;;;;;;;;3720:4;3423:395;;;;;;;;;;3791:12;;;;;;;;;;3423:395;;;;;3241:584::o;7171:442::-;7219:13;7512:27;7263:343;;;;;;;;:::i;:::-;;;;;;;;;;;;;7244:362;;7171:442;:::o;7080:85::-;7116:7;7152:5;;7150:7;;;;;:::i;:::-;;;;;-1:-1:-1;7150:7:36;7080:85;-1:-1:-1;7080:85:36:o;11562:327:2:-;-1:-1:-1;;;;;11629:16:2;;11625:87;;11668:33;;-1:-1:-1;;;11668:33:2;;11698:1;11668:33;;;2315:51:51;2288:18;;11668:33:2;2169:203:51;11625:87:2;11721:21;11745:32;11753:2;11757:7;11774:1;11745:7;:32::i;:::-;11721:56;-1:-1:-1;;;;;;11791:27:2;;;11787:96;;11841:31;;-1:-1:-1;;;11841:31:2;;11869:1;11841:31;;;2315:51:51;2288:18;;11841:31:2;2169:203:51;8571:368:2;8683:38;8697:5;8704:7;8713;8683:13;:38::i;:::-;8678:255;;-1:-1:-1;;;;;8741:19:2;;8737:186;;8787:31;;-1:-1:-1;;;8787:31:2;;;;;5075:25:51;;;5048:18;;8787:31:2;4929:177:51;8737:186:2;8864:44;;-1:-1:-1;;;8864:44:2;;-1:-1:-1;;;;;41544:32:51;;8864:44:2;;;41526:51:51;41593:18;;;41586:34;;;41499:18;;8864:44:2;41352:274:51;8485:120:1;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:1;;;;;;-1:-1:-1;8485:120:1:o;5559:487:23:-;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:23;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:51:-;-1:-1:-1;;;;;89:31:51;;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;541:131::-;-1:-1:-1;;;;;;615:32:51;;605:43;;595:71;;662:1;659;652:12;677:245;735:6;788:2;776:9;767:7;763:23;759:32;756:52;;;804:1;801;794:12;756:52;843:9;830:23;862:30;886:5;862:30;:::i;1119:250::-;1204:1;1214:113;1228:6;1225:1;1222:13;1214:113;;;1304:11;;;1298:18;1285:11;;;1278:39;1250:2;1243:10;1214:113;;;-1:-1:-1;;1361:1:51;1343:16;;1336:27;1119:250::o;1374:271::-;1416:3;1454:5;1448:12;1481:6;1476:3;1469:19;1497:76;1566:6;1559:4;1554:3;1550:14;1543:4;1536:5;1532:16;1497:76;:::i;:::-;1627:2;1606:15;-1:-1:-1;;1602:29:51;1593:39;;;;1634:4;1589:50;;1374:271;-1:-1:-1;;1374:271:51:o;1650:220::-;1799:2;1788:9;1781:21;1762:4;1819:45;1860:2;1849:9;1845:18;1837:6;1819:45;:::i;1875:180::-;1934:6;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;-1:-1:-1;2026:23:51;;1875:180;-1:-1:-1;1875:180:51:o;2377:315::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;2682:2;2667:18;;;;2654:32;;-1:-1:-1;;;2377:315:51:o;2697:127::-;2758:10;2753:3;2749:20;2746:1;2739:31;2789:4;2786:1;2779:15;2813:4;2810:1;2803:15;2829:632;2894:5;-1:-1:-1;;;;;2965:2:51;2957:6;2954:14;2951:40;;;2971:18;;:::i;:::-;3046:2;3040:9;3014:2;3100:15;;-1:-1:-1;;3096:24:51;;;3122:2;3092:33;3088:42;3076:55;;;3146:18;;;3166:22;;;3143:46;3140:72;;;3192:18;;:::i;:::-;3232:10;3228:2;3221:22;3261:6;3252:15;;3291:6;3283;3276:22;3331:3;3322:6;3317:3;3313:16;3310:25;3307:45;;;3348:1;3345;3338:12;3307:45;3398:6;3393:3;3386:4;3378:6;3374:17;3361:44;3453:1;3446:4;3437:6;3429;3425:19;3421:30;3414:41;;;;2829:632;;;;;:::o;3466:451::-;3535:6;3588:2;3576:9;3567:7;3563:23;3559:32;3556:52;;;3604:1;3601;3594:12;3556:52;3644:9;3631:23;-1:-1:-1;;;;;3669:6:51;3666:30;3663:50;;;3709:1;3706;3699:12;3663:50;3732:22;;3785:4;3777:13;;3773:27;-1:-1:-1;3763:55:51;;3814:1;3811;3804:12;3763:55;3837:74;3903:7;3898:2;3885:16;3880:2;3876;3872:11;3837:74;:::i;3922:795::-;4017:6;4025;4033;4041;4094:3;4082:9;4073:7;4069:23;4065:33;4062:53;;;4111:1;4108;4101:12;4062:53;4150:9;4137:23;4169:31;4194:5;4169:31;:::i;:::-;4219:5;-1:-1:-1;4276:2:51;4261:18;;4248:32;4289:33;4248:32;4289:33;:::i;:::-;4341:7;-1:-1:-1;4395:2:51;4380:18;;4367:32;;-1:-1:-1;4450:2:51;4435:18;;4422:32;-1:-1:-1;;;;;4466:30:51;;4463:50;;;4509:1;4506;4499:12;4463:50;4532:22;;4585:4;4577:13;;4573:27;-1:-1:-1;4563:55:51;;4614:1;4611;4604:12;4563:55;4637:74;4703:7;4698:2;4685:16;4680:2;4676;4672:11;4637:74;:::i;:::-;4627:84;;;3922:795;;;;;;;:::o;5111:456::-;5188:6;5196;5204;5257:2;5245:9;5236:7;5232:23;5228:32;5225:52;;;5273:1;5270;5263:12;5225:52;5312:9;5299:23;5331:31;5356:5;5331:31;:::i;:::-;5381:5;-1:-1:-1;5438:2:51;5423:18;;5410:32;5451:33;5410:32;5451:33;:::i;:::-;5111:456;;5503:7;;-1:-1:-1;;;5557:2:51;5542:18;;;;5529:32;;5111:456::o;5939:315::-;6007:6;6015;6068:2;6056:9;6047:7;6043:23;6039:32;6036:52;;;6084:1;6081;6074:12;6036:52;6120:9;6107:23;6097:33;;6180:2;6169:9;6165:18;6152:32;6193:31;6218:5;6193:31;:::i;:::-;6243:5;6233:15;;;5939:315;;;;;:::o;6464:883::-;6901:25;;;-1:-1:-1;;;;;6962:32:51;;6957:2;6942:18;;6935:60;7043:14;7031:27;;7026:2;7011:18;;7004:55;7102:14;;7095:22;7090:2;7075:18;;7068:50;6888:3;6873:19;;7127:60;7182:3;7167:19;;7159:6;6342:12;;-1:-1:-1;;;;;6338:39:51;6326:52;;6431:4;6420:16;;;6414:23;6439:12;6410:42;6394:14;;6387:66;6259:200;7127:60;7244:6;7238:13;7231:21;7224:29;7218:3;7207:9;7203:19;7196:58;-1:-1:-1;;;;;7313:2:51;7305:6;7301:15;7295:22;7291:49;7285:3;7274:9;7270:19;7263:78;6464:883;;;;;;;;;:::o;7352:486::-;7459:6;7467;7475;7528:2;7516:9;7507:7;7503:23;7499:32;7496:52;;;7544:1;7541;7534:12;7496:52;7580:9;7567:23;7557:33;;7640:2;7629:9;7625:18;7612:32;7653:31;7678:5;7653:31;:::i;:::-;7703:5;-1:-1:-1;7760:2:51;7745:18;;7732:32;7773:33;7732:32;7773:33;:::i;:::-;7825:7;7815:17;;;7352:486;;;;;:::o;8088:131::-;-1:-1:-1;;;;;8166:5:51;8162:32;8155:5;8152:43;8142:71;;8209:1;8206;8199:12;8224:527;8300:6;8308;8316;8369:2;8357:9;8348:7;8344:23;8340:32;8337:52;;;8385:1;8382;8375:12;8337:52;8424:9;8411:23;8443:31;8468:5;8443:31;:::i;:::-;8493:5;-1:-1:-1;8550:2:51;8535:18;;8522:32;8563:33;8522:32;8563:33;:::i;:::-;8615:7;-1:-1:-1;8674:2:51;8659:18;;8646:32;8687;8646;8687;:::i;8756:936::-;8853:6;8861;8869;8877;8885;8938:3;8926:9;8917:7;8913:23;8909:33;8906:53;;;8955:1;8952;8945:12;8906:53;8994:9;8981:23;9013:31;9038:5;9013:31;:::i;:::-;9063:5;-1:-1:-1;9115:2:51;9100:18;;9087:32;;-1:-1:-1;9171:2:51;9156:18;;9143:32;9184:33;9143:32;9184:33;:::i;:::-;9236:7;-1:-1:-1;9294:2:51;9279:18;;9266:32;-1:-1:-1;;;;;9347:14:51;;;9344:34;;;9374:1;9371;9364:12;9344:34;9412:6;9401:9;9397:22;9387:32;;9457:7;9450:4;9446:2;9442:13;9438:27;9428:55;;9479:1;9476;9469:12;9428:55;9519:2;9506:16;9545:2;9537:6;9534:14;9531:34;;;9561:1;9558;9551:12;9531:34;9606:7;9601:2;9592:6;9588:2;9584:15;9580:24;9577:37;9574:57;;;9627:1;9624;9617:12;9574:57;8756:936;;;;-1:-1:-1;8756:936:51;;-1:-1:-1;9658:2:51;9650:11;;9680:6;8756:936;-1:-1:-1;;;8756:936:51:o;9697:123::-;9782:12;9775:5;9771:24;9764:5;9761:35;9751:63;;9810:1;9807;9800:12;9825:626;9885:5;9933:4;9921:9;9916:3;9912:19;9908:30;9905:50;;;9951:1;9948;9941:12;9905:50;9984:4;9978:11;10028:4;10020:6;10016:17;10099:6;10087:10;10084:22;-1:-1:-1;;;;;10051:10:51;10048:34;10045:62;10042:88;;;10110:18;;:::i;:::-;10146:4;10139:24;10181:6;-1:-1:-1;10181:6:51;10211:23;;10243:32;10211:23;10243:32;:::i;:::-;10284:23;;10359:2;10344:18;;10331:32;10372;10331;10372;:::i;:::-;10432:2;10420:15;;;;10413:32;9825:626;;-1:-1:-1;;9825:626:51:o;10456:375::-;10556:6;10564;10617:2;10605:9;10596:7;10592:23;10588:32;10585:52;;;10633:1;10630;10623:12;10585:52;10672:9;10659:23;10691:31;10716:5;10691:31;:::i;:::-;10741:5;-1:-1:-1;10765:60:51;10817:7;10812:2;10797:18;;10765:60;:::i;:::-;10755:70;;10456:375;;;;;:::o;11037:118::-;11123:5;11116:13;11109:21;11102:5;11099:32;11089:60;;11145:1;11142;11135:12;11160:382;11225:6;11233;11286:2;11274:9;11265:7;11261:23;11257:32;11254:52;;;11302:1;11299;11292:12;11254:52;11341:9;11328:23;11360:31;11385:5;11360:31;:::i;:::-;11410:5;-1:-1:-1;11467:2:51;11452:18;;11439:32;11480:30;11439:32;11480:30;:::i;11547:626::-;11644:6;11652;11705:2;11693:9;11684:7;11680:23;11676:32;11673:52;;;11721:1;11718;11711:12;11673:52;11761:9;11748:23;-1:-1:-1;;;;;11831:2:51;11823:6;11820:14;11817:34;;;11847:1;11844;11837:12;11817:34;11885:6;11874:9;11870:22;11860:32;;11930:7;11923:4;11919:2;11915:13;11911:27;11901:55;;11952:1;11949;11942:12;11901:55;11992:2;11979:16;12018:2;12010:6;12007:14;12004:34;;;12034:1;12031;12024:12;12004:34;12087:7;12082:2;12072:6;12069:1;12065:14;12061:2;12057:23;12053:32;12050:45;12047:65;;;12108:1;12105;12098:12;12047:65;12139:2;12131:11;;;;;12161:6;;-1:-1:-1;11547:626:51;;-1:-1:-1;;;;11547:626:51:o;12178:801::-;12338:4;12367:2;12407;12396:9;12392:18;12437:2;12426:9;12419:21;12460:6;12495;12489:13;12526:6;12518;12511:22;12564:2;12553:9;12549:18;12542:25;;12626:2;12616:6;12613:1;12609:14;12598:9;12594:30;12590:39;12576:53;;12664:2;12656:6;12652:15;12685:1;12695:255;12709:6;12706:1;12703:13;12695:255;;;12802:2;12798:7;12786:9;12778:6;12774:22;12770:36;12765:3;12758:49;12830:40;12863:6;12854;12848:13;12830:40;:::i;:::-;12820:50;-1:-1:-1;12928:12:51;;;;12893:15;;;;12731:1;12724:9;12695:255;;;-1:-1:-1;12967:6:51;;12178:801;-1:-1:-1;;;;;;;12178:801:51:o;13304:313::-;13409:6;13417;13470:2;13458:9;13449:7;13445:23;13441:32;13438:52;;;13486:1;13483;13476:12;13438:52;13522:9;13509:23;13499:33;;13551:60;13603:7;13598:2;13587:9;13583:18;13551:60;:::i;13622:672::-;13735:6;13743;13751;13804:2;13792:9;13783:7;13779:23;13775:32;13772:52;;;13820:1;13817;13810:12;13772:52;13859:9;13846:23;13878:31;13903:5;13878:31;:::i;:::-;13928:5;-1:-1:-1;13984:2:51;13969:18;;13956:32;-1:-1:-1;;;;;14000:30:51;;13997:50;;;14043:1;14040;14033:12;13997:50;14066:22;;14122:3;14104:16;;;14100:26;14097:46;;;14139:1;14136;14129:12;14299:386;14366:6;14374;14427:2;14415:9;14406:7;14402:23;14398:32;14395:52;;;14443:1;14440;14433:12;14395:52;14482:9;14469:23;14501:31;14526:5;14501:31;:::i;:::-;14551:5;-1:-1:-1;14608:2:51;14593:18;;14580:32;14621;14580;14621;:::i;14690:438::-;14965:25;;;15038:14;15026:27;;15021:2;15006:18;;14999:55;14952:3;14937:19;;15063:59;15118:2;15103:18;;15095:6;6342:12;;-1:-1:-1;;;;;6338:39:51;6326:52;;6431:4;6420:16;;;6414:23;6439:12;6410:42;6394:14;;6387:66;6259:200;15133:388;15201:6;15209;15262:2;15250:9;15241:7;15237:23;15233:32;15230:52;;;15278:1;15275;15268:12;15230:52;15317:9;15304:23;15336:31;15361:5;15336:31;:::i;:::-;15386:5;-1:-1:-1;15443:2:51;15428:18;;15415:32;15456:33;15415:32;15456:33;:::i;15526:166::-;15597:5;15642:2;15633:6;15628:3;15624:16;15620:25;15617:45;;;15658:1;15655;15648:12;15617:45;-1:-1:-1;15680:6:51;15526:166;-1:-1:-1;15526:166:51:o;15697:329::-;15804:6;15812;15865:2;15853:9;15844:7;15840:23;15836:32;15833:52;;;15881:1;15878;15871:12;15833:52;15917:9;15904:23;15894:33;;15946:74;16012:7;16007:2;15996:9;15992:18;15946:74;:::i;16031:391::-;16133:6;16141;16194:2;16182:9;16173:7;16169:23;16165:32;16162:52;;;16210:1;16207;16200:12;16162:52;16249:9;16236:23;16268:31;16293:5;16268:31;:::i;:::-;16318:5;-1:-1:-1;16342:74:51;16408:7;16403:2;16388:18;;16342:74;:::i;16706:380::-;16785:1;16781:12;;;;16828;;;16849:61;;16903:4;16895:6;16891:17;16881:27;;16849:61;16956:2;16948:6;16945:14;16925:18;16922:38;16919:161;;17002:10;16997:3;16993:20;16990:1;16983:31;17037:4;17034:1;17027:15;17065:4;17062:1;17055:15;17217:543;17319:2;17314:3;17311:11;17308:446;;;17355:1;17379:5;17376:1;17369:16;17423:4;17420:1;17410:18;17493:2;17481:10;17477:19;17474:1;17470:27;17464:4;17460:38;17529:4;17517:10;17514:20;17511:47;;;-1:-1:-1;17552:4:51;17511:47;17607:2;17602:3;17598:12;17595:1;17591:20;17585:4;17581:31;17571:41;;17662:82;17680:2;17673:5;17670:13;17662:82;;;17725:17;;;17706:1;17695:13;17662:82;;17936:1345;18062:3;18056:10;-1:-1:-1;;;;;18081:6:51;18078:30;18075:56;;;18111:18;;:::i;:::-;18140:97;18230:6;18190:38;18222:4;18216:11;18190:38;:::i;:::-;18184:4;18140:97;:::i;:::-;18292:4;;18349:2;18338:14;;18366:1;18361:663;;;;19068:1;19085:6;19082:89;;;-1:-1:-1;19137:19:51;;;19131:26;19082:89;-1:-1:-1;;17893:1:51;17889:11;;;17885:24;17881:29;17871:40;17917:1;17913:11;;;17868:57;19184:81;;18331:944;;18361:663;17164:1;17157:14;;;17201:4;17188:18;;-1:-1:-1;;18397:20:51;;;18515:236;18529:7;18526:1;18523:14;18515:236;;;18618:19;;;18612:26;18597:42;;18710:27;;;;18678:1;18666:14;;;;18545:19;;18515:236;;;18519:3;18779:6;18770:7;18767:19;18764:201;;;18840:19;;;18834:26;-1:-1:-1;;18923:1:51;18919:14;;;18935:3;18915:24;18911:37;18907:42;18892:58;18877:74;;18764:201;-1:-1:-1;;;;;19011:1:51;18995:14;;;18991:22;18978:36;;-1:-1:-1;17936:1345:51:o;19286:127::-;19347:10;19342:3;19338:20;19335:1;19328:31;19378:4;19375:1;19368:15;19402:4;19399:1;19392:15;19418:135;19457:3;19478:17;;;19475:43;;19498:18;;:::i;:::-;-1:-1:-1;19545:1:51;19534:13;;19418:135::o;19938:251::-;20008:6;20061:2;20049:9;20040:7;20036:23;20032:32;20029:52;;;20077:1;20074;20067:12;20029:52;20109:9;20103:16;20128:31;20153:5;20128:31;:::i;20574:125::-;20639:9;;;20660:10;;;20657:36;;;20673:18;;:::i;21378:331::-;21483:9;21494;21536:8;21524:10;21521:24;21518:44;;;21558:1;21555;21548:12;21518:44;21587:6;21577:8;21574:20;21571:40;;;21607:1;21604;21597:12;21571:40;-1:-1:-1;;21633:23:51;;;21678:25;;;;;-1:-1:-1;21378:331:51:o;21714:323::-;-1:-1:-1;;;;;;21834:19:51;;21910:11;;;;21941:1;21933:10;;21930:101;;;22002:1;21998:11;;;;21995:1;21991:19;21987:28;;;21979:37;21975:46;;;;21714:323;-1:-1:-1;;21714:323:51:o;22978:128::-;23045:9;;;23066:11;;;23063:37;;;23080:18;;:::i;23111:127::-;23172:10;23167:3;23163:20;23160:1;23153:31;23203:4;23200:1;23193:15;23227:4;23224:1;23217:15;23243:521;23320:4;23326:6;23386:11;23373:25;23480:2;23476:7;23465:8;23449:14;23445:29;23441:43;23421:18;23417:68;23407:96;;23499:1;23496;23489:12;23407:96;23526:33;;23578:20;;;-1:-1:-1;;;;;;23610:30:51;;23607:50;;;23653:1;23650;23643:12;23607:50;23686:4;23674:17;;-1:-1:-1;23717:14:51;23713:27;;;23703:38;;23700:58;;;23754:1;23751;23744:12;23700:58;23243:521;;;;;:::o;23769:440::-;23998:6;23990;23985:3;23972:33;23954:3;24033:6;24028:3;24024:16;24060:1;24056:2;24049:13;24091:6;24085:13;24107:65;24165:6;24161:2;24154:4;24146:6;24142:17;24107:65;:::i;:::-;24188:15;;23769:440;-1:-1:-1;;;;;23769:440:51:o;24214:496::-;24393:3;24431:6;24425:13;24447:66;24506:6;24501:3;24494:4;24486:6;24482:17;24447:66;:::i;:::-;24576:13;;24535:16;;;;24598:70;24576:13;24535:16;24645:4;24633:17;;24598:70;:::i;:::-;24684:20;;24214:496;-1:-1:-1;;;;24214:496:51:o;25175:883::-;25226:3;25254:6;25316:1;25312;25307:3;25303:11;25299:19;25291:5;25285:12;25281:38;25276:3;25269:51;25369:4;25362:5;25358:16;25352:23;25345:4;25340:3;25336:14;25329:47;25425:4;25418:5;25414:16;25408:23;25401:4;25396:3;25392:14;25385:47;25481:4;25474:5;25470:16;25464:23;25457:4;25452:3;25448:14;25441:47;25534:4;25527:5;25523:16;25517:23;25549:48;25591:4;25586:3;25582:14;25568:12;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;25549:48;;25645:4;25638:5;25634:16;25628:23;25660:50;25704:4;25699:3;25695:14;25679;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;25660:50;;25758:4;25751:5;25747:16;25741:23;25773:50;25817:4;25812:3;25808:14;25792;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;25773:50;;25872:4;25865:5;25861:16;25855:23;25848:4;25843:3;25839:14;25832:47;25898:6;25952:2;25945:5;25941:14;25935:21;25986:2;25981;25976:3;25972:12;25965:24;26005:47;26048:2;26043:3;26039:12;26023:14;26005:47;:::i;:::-;25998:54;25175:883;-1:-1:-1;;;;;;25175:883:51:o;26063:500::-;26121:5;26128:6;26188:3;26175:17;26274:2;26270:7;26259:8;26243:14;26239:29;26235:43;26215:18;26211:68;26201:96;;26293:1;26290;26283:12;26201:96;26321:33;;26425:4;26412:18;;;-1:-1:-1;26373:21:51;;-1:-1:-1;;;;;;26442:30:51;;26439:50;;;26485:1;26482;26475:12;26439:50;26532:6;26516:14;26512:27;26505:5;26501:39;26498:59;;;26553:1;26550;26543:12;26568:266;26656:6;26651:3;26644:19;26708:6;26701:5;26694:4;26689:3;26685:14;26672:43;-1:-1:-1;26760:1:51;26735:16;;;26753:4;26731:27;;;26724:38;;;;26816:2;26795:15;;;-1:-1:-1;;26791:29:51;26782:39;;;26778:50;;26568:266::o;26839:1201::-;26906:3;26934:6;26949:50;26995:3;26968:25;26987:5;26968:25;:::i;:::-;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;26949:50;27055:4;27048:5;27044:16;27031:30;27024:4;27019:3;27015:14;27008:54;27118:4;27111:5;27107:16;27094:30;27087:4;27082:3;27078:14;27071:54;27181:4;27174:5;27170:16;27157:30;27150:4;27145:3;27141:14;27134:54;27244:4;27237:5;27233:16;27220:30;27213:4;27208:3;27204:14;27197:54;27307:4;27300:5;27296:16;27283:30;27276:4;27271:3;27267:14;27260:54;27343:36;27373:4;27366:5;27362:16;27343:36;:::i;:::-;-1:-1:-1;;;;;2126:31:51;27430:4;27421:14;;2114:44;27467:36;27497:4;27486:16;;27467:36;:::i;:::-;-1:-1:-1;;;;;2126:31:51;27556:4;27547:14;;2114:44;27581:6;27618:34;27637:14;;;27618:34;:::i;:::-;-1:-1:-1;;;;;2126:31:51;27696:12;;;2114:44;27728:6;27777:14;;;27764:28;27750:12;;;27743:50;27812:6;27863:53;27901:14;;;27777;27863:53;:::i;:::-;27946:2;27941;27936:3;27932:12;27925:24;27965:69;28030:2;28025:3;28021:12;28007;27991:14;27965:69;:::i;:::-;27958:76;26839:1201;-1:-1:-1;;;;;;;26839:1201:51:o;28045:1631::-;28162:12;;-1:-1:-1;;;;;2126:31:51;2114:44;;28100:3;28128:6;28229:4;28222:5;28218:16;28212:23;28205:4;28200:3;28196:14;28189:47;28282:4;28275:5;28271:16;28265:23;28297:48;28339:4;28334:3;28330:14;28316:12;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;28297:48;;28394:4;28387:5;28383:16;28377:23;28370:4;28365:3;28361:14;28354:47;28449:4;28442:5;28438:16;28432:23;28464:50;28508:4;28503:3;28499:14;28483;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;28464:50;;28563:4;28556:5;28552:16;28546:23;28539:4;28534:3;28530:14;28523:47;28618:4;28611:5;28607:16;28601:23;28633:50;28677:4;28672:3;28668:14;28652;-1:-1:-1;;;;;2126:31:51;2114:44;;2060:104;28633:50;-1:-1:-1;28732:4:51;28721:16;;;28715:23;28699:14;;;28692:47;28758:6;28800:14;;;28794:21;28780:12;;;28773:43;28835:6;28877:14;;;28871:21;28857:12;;;28850:43;28912:6;28954:14;;;28948:21;28934:12;;;28927:43;28989:6;29032:14;;;29026:21;-1:-1:-1;;;;;2126:31:51;;29091:12;;;2114:44;-1:-1:-1;;29123:6:51;29166:14;;;29160:21;-1:-1:-1;;;;;2126:31:51;;29225:12;;;2114:44;29190:48;;29257:6;29311:2;29304:5;29300:14;29294:21;29345:2;29340;29335:3;29331:12;29324:24;29369:47;29412:2;29407:3;29403:12;29387:14;29369:47;:::i;:::-;29357:59;;;;29435:6;29488:2;29481:5;29477:14;29471:21;29466:2;29461:3;29457:12;29450:43;;29512:6;29566:2;29559:5;29555:14;29549:21;29610:3;29604:4;29600:14;29595:2;29590:3;29586:12;29579:36;29631:39;29665:4;29649:14;29631:39;:::i;29681:935::-;30142:3;30131:9;30124:22;30105:4;30169:55;30219:3;30208:9;30204:19;30196:6;30169:55;:::i;:::-;30272:9;30264:6;30260:22;30255:2;30244:9;30240:18;30233:50;30306:42;30341:6;30333;30306:42;:::i;:::-;30292:56;;30396:9;30388:6;30384:22;30379:2;30368:9;30364:18;30357:50;30430:58;30481:6;30473;30430:58;:::i;:::-;30416:72;;30536:9;30528:6;30524:22;30519:2;30508:9;30504:18;30497:50;30564:46;30603:6;30595;30564:46;:::i;30621:184::-;30691:6;30744:2;30732:9;30723:7;30719:23;30715:32;30712:52;;;30760:1;30757;30750:12;30712:52;-1:-1:-1;30783:16:51;;30621:184;-1:-1:-1;30621:184:51:o;30810:127::-;30871:10;30866:3;30862:20;30859:1;30852:31;30902:4;30899:1;30892:15;30926:4;30923:1;30916:15;30942:206;31019:1;31012:5;31009:12;30999:143;;31064:10;31059:3;31055:20;31052:1;31045:31;31099:4;31096:1;31089:15;31127:4;31124:1;31117:15;31153:396;31363:25;;;-1:-1:-1;;;;;31424:32:51;;31419:2;31404:18;;31397:60;31351:2;31336:18;;31466:34;31493:6;31466:34;:::i;:::-;31536:6;31531:2;31520:9;31516:18;31509:34;31153:396;;;;;;:::o;31929:584::-;32085:5;32072:19;32100:32;32124:7;32100:32;:::i;:::-;-1:-1:-1;;;;;32155:7:51;32151:34;32141:44;;32210:4;32204:11;32276:2;-1:-1:-1;;;;;32248:25:51;32244:2;32240:34;32237:42;32231:4;32224:56;32328:2;32321:5;32317:14;32304:28;32341:32;32365:7;32341:32;:::i;:::-;32474:30;32464:7;32460:2;32456:16;32452:53;32447:2;32413:30;32409:35;32405:2;32401:44;32398:52;32395:111;32389:4;32382:125;;;;31929:584;;:::o;32518:271::-;32679:104;32777:5;32771:4;32679:104;:::i;32794:372::-;32903:5;32890:19;32918:32;32942:7;32918:32;:::i;:::-;-1:-1:-1;;;;;32971:34:51;32959:47;;33054:4;33043:16;;33030:30;33069:32;33030:30;33069:32;:::i;:::-;33146:12;33137:7;33133:26;33126:4;33121:3;33117:14;33110:50;;32794:372;;:::o;33171:363::-;33421:25;;;33409:2;33394:18;;33455:73;33524:2;33509:18;;33501:6;33455:73;:::i;33539:245::-;33597:6;33650:2;33638:9;33629:7;33625:23;33621:32;33618:52;;;33666:1;33663;33656:12;33618:52;33705:9;33692:23;33724:30;33748:5;33724:30;:::i;34254:451::-;34523:25;;;-1:-1:-1;;;;;34584:32:51;;34579:2;34564:18;;34557:60;34510:3;34495:19;;34626:73;34695:2;34680:18;;34672:6;34626:73;:::i;35019:245::-;35086:6;35139:2;35127:9;35118:7;35114:23;35110:32;35107:52;;;35155:1;35152;35145:12;35107:52;35187:9;35181:16;35206:28;35228:5;35206:28;:::i;35269:531::-;35333:3;35377:5;35371:12;35404:4;35399:3;35392:17;35430:56;35480:4;35475:3;35471:14;35457:12;35430:56;:::i;:::-;35418:68;;35534:4;35527:5;35523:16;35517:23;35549:42;35576:14;35549:42;:::i;:::-;35623:14;35616:4;35611:3;35607:14;35600:38;;35686:4;35679:5;35675:16;35669:23;35734:3;35728:4;35724:14;35717:4;35712:3;35708:14;35701:38;35755:39;35789:4;35773:14;35755:39;:::i;35805:302::-;36014:2;36003:9;35996:21;35977:4;36034:67;36097:2;36086:9;36082:18;36074:6;36034:67;:::i;36416:401::-;-1:-1:-1;;;;;36673:15:51;;;36655:34;;36725:15;;;;36720:2;36705:18;;36698:43;-1:-1:-1;;;;;36777:33:51;;;36772:2;36757:18;;36750:61;36605:2;36590:18;;36416:401::o;37202:347::-;37450:25;;;37438:2;37423:18;;37484:59;37539:2;37524:18;;37516:6;6342:12;;-1:-1:-1;;;;;6338:39:51;6326:52;;6431:4;6420:16;;;6414:23;6439:12;6410:42;6394:14;;6387:66;6259:200;37554:176;37621:14;37655:10;;;37667;;;37651:27;;37690:11;;;37687:37;;;37704:18;;:::i;38007:363::-;-1:-1:-1;;;;;38263:32:51;;38245:51;;38233:2;38218:18;;38305:59;38360:2;38345:18;;38337:6;6342:12;;-1:-1:-1;;;;;6338:39:51;6326:52;;6431:4;6420:16;;;6414:23;6439:12;6410:42;6394:14;;6387:66;6259:200;38846:287;38975:3;39013:6;39007:13;39029:66;39088:6;39083:3;39076:4;39068:6;39064:17;39029:66;:::i;:::-;39111:16;;;;;38846:287;-1:-1:-1;;38846:287:51:o;39138:489::-;-1:-1:-1;;;;;39407:15:51;;;39389:34;;39459:15;;39454:2;39439:18;;39432:43;39506:2;39491:18;;39484:34;;;39554:3;39549:2;39534:18;;39527:31;;;39332:4;;39575:46;;39601:19;;39593:6;39575:46;:::i;39632:249::-;39701:6;39754:2;39742:9;39733:7;39729:23;39725:32;39722:52;;;39770:1;39767;39760:12;39722:52;39802:9;39796:16;39821:30;39845:5;39821:30;:::i;40018:295::-;40217:2;40206:9;40199:21;40180:4;40237:70;40303:2;40292:9;40288:18;40280:6;40237:70;:::i;40617:730::-;40826:2;40815:9;40808:21;40789:4;40864:6;40858:13;40907:4;40902:2;40891:9;40887:18;40880:32;40935:65;40995:3;40984:9;40980:19;40966:12;40935:65;:::i;:::-;40921:79;;41049:2;41041:6;41037:15;41031:22;41062:42;41089:14;41062:42;:::i;:::-;41140:14;41135:2;41124:9;41120:18;41113:42;;41204:2;41196:6;41192:15;41186:22;41278:2;41274:7;41262:9;41254:6;41250:22;41246:36;41239:4;41228:9;41224:20;41217:66;41300:41;41334:6;41318:14;41300:41;:::i;41715:1459::-;42155:66;42150:3;42143:79;42252:66;42247:2;42242:3;42238:12;42231:88;42358:4;42353:3;42349:14;42344:2;42339:3;42335:12;42328:36;42125:3;42383:2;42405:1;42438:6;42432:13;42468:36;42494:9;42468:36;:::i;:::-;42523:1;42540:17;;;42566:151;;;;42731:1;42726:372;;;;42533:565;;42566:151;42627:3;42623:8;42612:9;42608:24;42603:2;42598:3;42594:12;42587:46;42704:2;42692:6;42685:14;42678:22;42670:6;42666:35;42661:3;42657:45;42653:54;42646:61;;42566:151;;42726:372;42757:6;42754:1;42747:17;42787:2;42830;42827:1;42817:16;42855:1;42869:174;42883:6;42880:1;42877:13;42869:174;;;42970:14;;42952:11;;;42948:20;;42941:44;43013:16;;;;42898:10;;42869:174;;;42873:3;;;43085:2;43076:6;43071:3;43067:16;43063:25;43056:32;;42533:565;;;;;43107:34;43137:3;-1:-1:-1;;;41681:27:51;;41631:79;43107:34;43166:1;43157:11;;41715:1459;-1:-1:-1;;;;41715:1459:51:o" + }, + "methodIdentifiers": { + "ADD_ONLY_APP_WHITELIST_REGISTRY()": "4afecaff", + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "addProtectedDataToCollection(uint256,address,address)": "40e6158d", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "burn(uint256)": "42966c68", + "buyProtectedData(address,address,uint72)": "53574f9e", + "collectionDetails(uint256)": "dfe0bc11", + "consumeProtectedData(address,(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),address)": "d835c337", + "createCollection(address)": "2069e953", + "earning(address)": "f4c0fab4", + "getApproved(uint256)": "081812fc", + "getCollectionSubscriber(uint256,address)": "c3533ba2", + "getProtectedDataRenter(address,address)": "ea46d1aa", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "initialize()": "8129fc1c", + "isApprovedForAll(address,address)": "e985e9c5", + "multicall(bytes[])": "ac9650d8", + "name()": "06fdde03", + "onERC721Received(address,address,uint256,bytes)": "150b7a02", + "ownerOf(uint256)": "6352211e", + "protectedDataDetails(address)": "328cb1f7", + "receiveApproval(address,uint256,address,bytes)": "8f4ffcb1", + "removeProtectedDataForSale(address)": "01d0b634", + "removeProtectedDataFromCollection(address)": "d0b06c66", + "removeProtectedDataFromRenting(address)": "185e4e8d", + "removeProtectedDataFromSubscription(address)": "72d570ce", + "renounceRole(bytes32,address)": "36568abe", + "rentProtectedData(address,(uint72,uint40))": "9a82c2bd", + "revokeRole(bytes32,address)": "d547741f", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "setProtectedDataForSale(address,uint72)": "dc30b8fc", + "setProtectedDataToRenting(address,(uint72,uint40))": "ff811f60", + "setProtectedDataToSubscription(address)": "fe4c31a4", + "setSubscriptionParams(uint256,(uint72,uint40))": "ff19d9df", + "subscribeToCollection(uint256,(uint72,uint40))": "d3c52389", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd", + "updateEnv(string)": "0b9f187b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"protectedDataRegistry_\",\"type\":\"address\"},{\"internalType\":\"contract AddOnlyAppWhitelistRegistry\",\"name\":\"addOnlyAppWhitelistRegistry_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"AppNotWhitelistedForProtectedData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"CollectionNotEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"_duration\",\"type\":\"uint48\"}],\"name\":\"DurationInvalid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyCallData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_appWhitelist\",\"type\":\"address\"}],\"name\":\"InvalidAppWhitelist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"name\":\"InvalidPriceForPurchase\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"}],\"name\":\"InvalidRentingParams\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"InvalidSubscriptionParams\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedDatas\",\"type\":\"address\"}],\"name\":\"NoValidRentalOrSubscription\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnOwnerOrApprovedOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"NotCollectionOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"OnGoingCollectionSubscriptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"OnlyPocoCallerAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"ProctedDataInSubscription\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAvailableForRenting\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAvailableInSubscription\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataCurrentlyBeingRented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataForSale\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataNotAvailableForRenting\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataNotForSale\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"workerpoolOrder\",\"type\":\"tuple\"}],\"name\":\"WorkerpoolOrderNotFree\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"renter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"name\":\"NewRental\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"name\":\"NewSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"NewSubscriptionParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"}],\"name\":\"ProtectedDataAddedForRenting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"name\":\"ProtectedDataAddedForSale\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAddedForSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"dealId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IDataProtectorSharing.Mode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"ProtectedDataConsumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromRenting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromSale\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenIdFrom\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataSold\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newCollection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldCollection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addOnlyAppWhitelist\",\"type\":\"address\"}],\"name\":\"ProtectedDataTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"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\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ADD_ONLY_APP_WHITELIST_REGISTRY\",\"outputs\":[{\"internalType\":\"contract AddOnlyAppWhitelistRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"contract IAddOnlyAppWhitelist\",\"name\":\"_appWhitelist\",\"type\":\"address\"}],\"name\":\"addProtectedDataToCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"_price\",\"type\":\"uint72\"}],\"name\":\"buyProtectedData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"collectionDetails\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"lastSubscriptionExpiration\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"_workerpoolOrder\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_app\",\"type\":\"address\"}],\"name\":\"consumeProtectedData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"dealid\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"createCollection\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"earning\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_subscriberAddress\",\"type\":\"address\"}],\"name\":\"getCollectionSubscriber\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_renterAddress\",\"type\":\"address\"}],\"name\":\"getProtectedDataRenter\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"protectedDataDetails\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collection\",\"type\":\"uint256\"},{\"internalType\":\"contract IAddOnlyAppWhitelist\",\"name\":\"addOnlyAppWhitelist\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"lastRentalExpiration\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"inSubscription\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"isForSale\",\"type\":\"bool\"},{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"internalType\":\"struct ISale.SellingParams\",\"name\":\"sellingParams\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"receiveApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromRenting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"_rentingParams\",\"type\":\"tuple\"}],\"name\":\"rentProtectedData\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"_price\",\"type\":\"uint72\"}],\"name\":\"setProtectedDataForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"_rentingParams\",\"type\":\"tuple\"}],\"name\":\"setProtectedDataToRenting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"setProtectedDataToSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"_subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"setSubscriptionParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"_subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"subscribeToCollection\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"iexecResultStorageProvider_\",\"type\":\"string\"}],\"name\":\"updateEnv\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AppNotWhitelistedForProtectedData(address)\":[{\"params\":{\"app\":\"- The address of the application that is not owned by the contract.\"}}],\"CollectionNotEmpty(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection that is not empty and cannot be removed.\"}}],\"DurationInvalid(uint48)\":[{\"params\":{\"_duration\":\"- The invalid duration.\"}}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAppWhitelist(address)\":[{\"params\":{\"_appWhitelist\":\"- The address of the AddOnlyAppWhitelist.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidPriceForPurchase(address,uint72)\":[{\"params\":{\"price\":\"- The price of the protected data set.\",\"protectedData\":\"- The address of the protected data not for sale.\"}}],\"InvalidRentingParams(address,(uint72,uint40))\":[{\"params\":{\"protectedData\":\"- The address of the protected data.\",\"rentingParams\":\"- Current renting params.\"}}],\"InvalidSubscriptionParams(uint256,(uint72,uint40))\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"subscriptionParams\":\"- Current subscription params\"}}],\"NoValidRentalOrSubscription(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection for which there is no valid rental or subscription.\",\"protectedDatas\":\"- The address of the protected data.\"}}],\"NotCollectionOperator(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection where the caller is not the owner.\"}}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OnGoingCollectionSubscriptions(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection with ongoing subscriptions.\"}}],\"ProctedDataInSubscription(uint256,address)\":[{\"params\":{\"_collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"_protectedData\":\"- The address of the protected data.\"}}],\"ProtectedDataAvailableForRenting(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"protectedData\":\"- The address of the protected data available for renting.\"}}],\"ProtectedDataAvailableInSubscription(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"protectedData\":\"- The address of the protected data available for subscription.\"}}],\"ProtectedDataCurrentlyBeingRented(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data currently being rented.\"}}],\"ProtectedDataForSale(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data for sale.\"}}],\"ProtectedDataNotAvailableForRenting(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data not available for renting.\"}}],\"ProtectedDataNotForSale(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data not for sale.\"}}],\"WorkerpoolOrderNotFree((address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes))\":[{\"params\":{\"workerpoolOrder\":\"- The workerpool order that is not free.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"NewRental(uint256,address,address,uint48)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"endDate\":\"- The end date of the rental.\",\"protectedData\":\"- The address of the protected data.\",\"renter\":\"- The address of the renter.\"}},\"NewSubscription(uint256,address,uint48)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"endDate\":\"- The end date of the subscription.\",\"subscriber\":\"- The address of the subscriber.\"}},\"NewSubscriptionParams(uint256,(uint72,uint40))\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"subscriptionParams\":\"- The subscription parameters set for the collection.\"}},\"ProtectedDataAddedForRenting(uint256,address,(uint72,uint40))\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\",\"rentingParams\":\"- The renting params for the protected data.\"}},\"ProtectedDataAddedForSale(uint256,address,uint72)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"price\":\"- The price (in Gwei) for purchasing the protected data.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataAddedForSubscription(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataConsumed(bytes32,address,uint8)\":{\"params\":{\"dealId\":\"- The unique identifier for the deal.\",\"mode\":\"- The mode of consumption (either subscription or renting).\",\"protectedData\":\"- protectedData used for the deal.\"}},\"ProtectedDataRemovedFromRenting(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataRemovedFromSale(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataRemovedFromSubscription(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataSold(uint256,address,address)\":{\"params\":{\"collectionTokenIdFrom\":\"- The ID of the collection from which the protected data is sold.\",\"protectedData\":\"- The address of the protected data.\",\"to\":\"- The address to which the protected data is transferred. It could be the smart contract itselft, it means that the protected data has moved to another ollection or it can be the msg.sender\"}},\"ProtectedDataTransfer(address,uint256,uint256,address)\":{\"params\":{\"addOnlyAppWhitelist\":\"- The address of the approved application to consume the protected data.\",\"newCollection\":\"- The ID of the collection to which the protected data is added.\",\"oldCollection\":\"- The ID of the collection from which the protected data is removed.\",\"protectedData\":\"- The address of the protected data.\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted to signal this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"addProtectedDataToCollection(uint256,address,address)\":{\"params\":{\"_appAddress\":\"The address of the application whitelist.\",\"_collectionTokenId\":\"The ID of the collection.\",\"_protectedData\":\"The address of the protected data to be added.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns `tokenId`. See {ERC721-_burn}. Requirements: - The caller must own `tokenId` or be an approved operator.\"},\"buyProtectedData(address,address,uint72)\":{\"params\":{\"_price\":\"The price that the buyer filled out not to be front run.\",\"_protectedData\":\"The address of the protected data being purchased.\",\"_to\":\"The recipient address to which the protected data will be transferred.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"consumeProtectedData(address,(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),address)\":{\"params\":{\"_app\":\"The address of the app that will consume the protected data.\",\"_protectedData\":\"The address of the protected data.\",\"_workerpoolOrder\":\"The workerpool order for the computation task.\"},\"returns\":{\"dealid\":\"The unique identifier (deal ID) of the created deal on the iExec platform.\"}},\"createCollection(address)\":{\"params\":{\"_to\":\"- The address of the token owner.\"},\"returns\":{\"_0\":\"The token ID of the newly created collection.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getCollectionSubscriber(uint256,address)\":{\"params\":{\"_collectionTokenId\":\"The ID of the collection.\",\"_subscriberAddress\":\"The address of the subscriber.\"},\"returns\":{\"_0\":\"The subscription expiration timestamp as a uint48.\"}},\"getProtectedDataRenter(address,address)\":{\"params\":{\"_protectedData\":\"The address of the protected data item.\",\"_renterAddress\":\"The address of the renter.\"},\"returns\":{\"_0\":\"The rental expiration timestamp as a uint48.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"See {IERC721Receiver-onERC721Received}. Always returns `IERC721Receiver.onERC721Received.selector`.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"receiveApproval(address,uint256,address,bytes)\":{\"params\":{\"_extraData\":\"- The callData representing the encoded function with signature to call (eg: subscribeToCollection, rentProtectedData, buyProtectedData).\",\"_sender\":\"- The msg.sender that call the approveAndCall function in the Poco.\",\"_value\":\"- The value set in approveAndCall function.\"}},\"removeProtectedDataForSale(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from sale.\"}},\"removeProtectedDataFromCollection(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed.\"}},\"removeProtectedDataFromRenting(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from renting.\"}},\"removeProtectedDataFromSubscription(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from the subscription.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"rentProtectedData(address,(uint72,uint40))\":{\"params\":{\"_protectedData\":\"Address of the data to be rented.\",\"_rentingParams\":\"In order to avoid the collection owner to front run renters.\"},\"returns\":{\"endDate\":\"uint48 Timestamp of the rental's expiration.\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setProtectedDataForSale(address,uint72)\":{\"params\":{\"_price\":\"The price in wei for the protected data.\",\"_protectedData\":\"The address of the protected data to be set for sale.\"}},\"setProtectedDataToRenting(address,(uint72,uint40))\":{\"params\":{\"_protectedData\":\"The address of the protected data to be added for renting.\",\"_rentingParams\":\"The renting params for which the protected data will be available for renting.\"}},\"setProtectedDataToSubscription(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be added to the subscription.\"}},\"setSubscriptionParams(uint256,(uint72,uint40))\":{\"params\":{\"_collectionTokenId\":\"The ID of the collection.\",\"_subscriptionParams\":\"The subscription parameters to be set.\"}},\"subscribeToCollection(uint256,(uint72,uint40))\":{\"params\":{\"_collectionTokenId\":\"The unique identifier of the collection to subscribe to.\",\"_subscriptionParams\":\"Additional parameter to prevent front-running attacks, ensuring fair subscription execution.\"},\"returns\":{\"endDate\":\"The timestamp when the subscription will expire, indicating the end of access.\"}},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"AppNotWhitelistedForProtectedData(address)\":[{\"notice\":\"Custom revert error indicating that the application is not owned by the contract.\"}],\"CollectionNotEmpty(uint256)\":[{\"notice\":\"Custom revert error indicating that the collection is not empty and cannot be removed.\"}],\"DurationInvalid(uint48)\":[{\"notice\":\"Custom revert error indicating that the duration is invalid.\"}],\"EmptyCallData()\":[{\"notice\":\"Custom revert error indicating that the extra data set are empty.\"}],\"InvalidAppWhitelist(address)\":[{\"notice\":\"Custom revert error indicating that an operator is not the app registry.\"}],\"InvalidPriceForPurchase(address,uint72)\":[{\"notice\":\"Custom revert error indicating that the protected data is not for sale.\"}],\"InvalidRentingParams(address,(uint72,uint40))\":[{\"notice\":\"Custom revert error indicating that the renting params set are not valide.\"}],\"InvalidSubscriptionParams(uint256,(uint72,uint40))\":[{\"notice\":\"Custom revert error indicating that the subscription params set are not valide.\"}],\"NoValidRentalOrSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that there is no valid rental or subscription for the protected data.\"}],\"NotAnOwnerOrApprovedOperator()\":[{\"notice\":\"Custom revert error indicating that the caller is not approved or the owner.\"}],\"NotCollectionOperator(uint256)\":[{\"notice\":\"Custom revert error indicating that the caller is not the owner of the collection.\"}],\"OnGoingCollectionSubscriptions(uint256)\":[{\"notice\":\"Custom revert error indicating that there are ongoing subscriptions for the collection.\"}],\"OnlyPocoCallerAuthorized(address)\":[{\"notice\":\"Custom revert error that the caller is not the Poco.\"}],\"ProctedDataInSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is currently in a subscription.\"}],\"ProtectedDataAvailableForRenting(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is available for renting.\"}],\"ProtectedDataAvailableInSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is available for subscription.\"}],\"ProtectedDataCurrentlyBeingRented(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is currently being rented.\"}],\"ProtectedDataForSale(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is for sale.\"}],\"ProtectedDataNotAvailableForRenting(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is not available for renting.\"}],\"ProtectedDataNotForSale(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is not for sale.\"}],\"WorkerpoolOrderNotFree((address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes))\":[{\"notice\":\"Custom revert error indicating that the workerpool order is not free.\"}]},\"events\":{\"NewRental(uint256,address,address,uint48)\":{\"notice\":\"Event emitted when a new rental is created for protected data in a collection.\"},\"NewSubscription(uint256,address,uint48)\":{\"notice\":\"Event emitted when a new subscription is created for a collection.\"},\"NewSubscriptionParams(uint256,(uint72,uint40))\":{\"notice\":\"Event emitted when new subscription parameters are set for a collection.\"},\"ProtectedDataAddedForRenting(uint256,address,(uint72,uint40))\":{\"notice\":\"Event emitted when protected data is added for renting in a collection.\"},\"ProtectedDataAddedForSale(uint256,address,uint72)\":{\"notice\":\"Event emitted when protected data is added for sale in a collection.\"},\"ProtectedDataAddedForSubscription(uint256,address)\":{\"notice\":\"Event emitted when protected data is added to pool of protected data among the collection available for the subscription.\"},\"ProtectedDataConsumed(bytes32,address,uint8)\":{\"notice\":\"Event emitted when protected data is consumed under a specific deal, providing the unique deal ID and the mode of consumption.\"},\"ProtectedDataRemovedFromRenting(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from renting in a collection.\"},\"ProtectedDataRemovedFromSale(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from sale in a collection.\"},\"ProtectedDataRemovedFromSubscription(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from a subscription.\"},\"ProtectedDataSold(uint256,address,address)\":{\"notice\":\"Event emitted when protected data is sold from one collection.\"},\"ProtectedDataTransfer(address,uint256,uint256,address)\":{\"notice\":\"Event emitted when a protected data is removed from a collection.\"}},\"kind\":\"user\",\"methods\":{\"addProtectedDataToCollection(uint256,address,address)\":{\"notice\":\"Add protected data to the specified collection. The owner should approve the smart contract before calling this function. The ownership of the protected data added to the collection is transferred to the smart contract, enabling it to publish protected data orders.\"},\"buyProtectedData(address,address,uint72)\":{\"notice\":\"Purchases protected data using the buyer's account balance within the platform and transfers ownership to a specified address. This method requires the smart contract to be pre-authorized to use the necessary funds from the buyer's account (sufficient Stacked RLC must be available). Upon completion, the smart contract will no longer manage the protected data.\"},\"consumeProtectedData(address,(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),address)\":{\"notice\":\"Consume protected data by creating a deal on the iExec platform. Requires a valid subscription or rental for the protected data.\"},\"createCollection(address)\":{\"notice\":\"Create a new collection and returns its token ID.\"},\"getCollectionSubscriber(uint256,address)\":{\"notice\":\"Retrieves the subscription expiration timestamp for a specific collection and subscriber. This function allows querying the expiration timestamp of a subscription for a specific collection and a subscriber.\"},\"getProtectedDataRenter(address,address)\":{\"notice\":\"Retrieves the rental expiration timestamp for a specific protected data and renter. This function allows querying the expiration timestamp of a rental agreement between a specific protected data item and a renter.\"},\"receiveApproval(address,uint256,address,bytes)\":{\"notice\":\"Callback function call after in the approveAndCall Poco function. It allows end user to approve and call the desired function in the same transaction.\"},\"removeProtectedDataForSale(address)\":{\"notice\":\"Remove protected data from the list available for sale.\"},\"removeProtectedDataFromCollection(address)\":{\"notice\":\"Remove protected data from the specified collection. The ownership of the protected data is given back to the msg.sender\"},\"removeProtectedDataFromRenting(address)\":{\"notice\":\"Remove protected data from the available list of renting. Cannot be rented anymore, ongoing rental are still valid\"},\"removeProtectedDataFromSubscription(address)\":{\"notice\":\"Remove protected data from the subscription for the specified collection. Subcribers cannot consume the protected data anymore\"},\"rentProtectedData(address,(uint72,uint40))\":{\"notice\":\"Enables renting of protected data using funds from the caller's iExec account. Sufficient Stacked RLC must be available, and the contract must be authorized to spend the required amount on the caller's behalf.\"},\"setProtectedDataForSale(address,uint72)\":{\"notice\":\"Set protected data available for sale with the specified price.\"},\"setProtectedDataToRenting(address,(uint72,uint40))\":{\"notice\":\"Set protected data from a collection available for renting with the specified price and duration.\"},\"setProtectedDataToSubscription(address)\":{\"notice\":\"Set protected data available in the subscription for the specified collection.\"},\"setSubscriptionParams(uint256,(uint72,uint40))\":{\"notice\":\"Set the subscription parameters for a collection.\"},\"subscribeToCollection(uint256,(uint72,uint40))\":{\"notice\":\"Subscribes to a collection using funds from the caller's account balance within the platform (Stacked RLC). Requires prior approval for this contract to spend the subscription amount on behalf of the caller.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DataProtectorSharing.sol\":\"DataProtectorSharing\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x0d4d7d19a052a2ef9d17b28450133631188b895e1755747fa8ad0280aadfb534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://838551e10cc07e570b70aee1078e490658d3a0ab8f4adfd4f3f2a565200753da\",\"dweb:/ipfs/QmceT7R3Pqzywyxr3MSEA7VXU4axZAPS6BLy92iV97rGdG\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721BurnableUpgradeable.sol\":{\"keccak256\":\"0xcb4674bedf497dd92f4cbc4c59d6a7591acf90c98593da7bddd69aa0a234c419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90a10523b8eb2fd0c3774d453aa1783fd550eb6bd3b92315427abc83b81ec121\",\"dweb:/ipfs/QmTSB3Q2sR5KfPhyuLVqkHoEoYscFnQkGMDDshvnpG7ggN\"]},\"@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/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x4d9a2b261b56a1e4a37bb038151dec98b952fed16de2bdfdda27e38e2b12b530\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f724110f7aeb6151af800ab8c12e6060b29bda9e013f0ccb331eb754d6a7cbf0\",\"dweb:/ipfs/QmUcjzCZpxtUPdEThtAzE1f9LvuJiUGZxTdH9N6bHrb5Cf\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x7162fa3c6971aa6f0a70160fed018edbb8b1db3af9b034ef3f7c224c3bdb7431\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f212d25e8f357209838ad7ce8ebc89de79906d9fe580566962e889ecb090e6b4\",\"dweb:/ipfs/QmdbLuLwX24VB1Gdrabke584WyaUkuJSWuDzzuRgqAMFge\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0xaad20f8713b5cd98114278482d5d91b9758f9727048527d582e8e88fd4901fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5396e8dbb000c2fada59b7d2093b9c7c870fd09413ab0fdaba45d882959c6244\",\"dweb:/ipfs/QmXQn5XckSiUsUBpMYuiFeqnojRX4rKa9jmgjCPeTuPmhh\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e\",\"dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@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/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@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\"]},\"@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"contracts/DataProtectorSharing.sol\":{\"keccak256\":\"0x2db835fa3fba837198fa712974f56cc6d69c9ca8227a905296ad5b886d696435\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://735bec136e2c124565e473c9d46aeba75a2bc72ae93697e4f7851e003cd41947\",\"dweb:/ipfs/QmSUY7zo5UdTP2RR554qd9xc8xoepCho8LYNaGgrdJsJZK\"]},\"contracts/ManageOrders.sol\":{\"keccak256\":\"0x2907731f798922ea5ae62eeea832d3e3b46e7efe2e0a92269a9c035677ddc3b0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://05be7bdd9ef3e442d83a9ca39ae79b5a3c3ee56b90fda2d63b563214cb6c60c8\",\"dweb:/ipfs/QmPd8xRcrVxGQert1feQ31RgKieEY3CeEwzGMGMaZmWRXV\"]},\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]},\"contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0x3effb6bb9745cc98dfcb6b398930e937ac4263bba5da1460b4246a3179675720\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a6eec732266a50449e9da2711cbe05a90c56ba882a8f9f49c466dc04aa130b73\",\"dweb:/ipfs/Qmd7H2Xf2dJpL7kwpruCbqVDc5FmHcL2bt1TjJqAPmegow\"]},\"contracts/interfaces/ICollection.sol\":{\"keccak256\":\"0xb34d54b1ece4595bee6c760d86a036cc09b4d5c46050450588d06caaaa1dd0c7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ec72a824623ec0ab5b5a39e8b378a2a65d394e2a51450b094833da875281ddc\",\"dweb:/ipfs/QmR3FBLdkqKjpyNLCyV5TJHUsEzqX1jwnyDffnNSqZ13fR\"]},\"contracts/interfaces/IDataProtectorSharing.sol\":{\"keccak256\":\"0x31a1ce4c5f66ce0d5868b9c40010a2ccea84550b6142d2ff69b7b252d5b0a682\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1221890eaaa67ec52182fae4c12ee519aff8880cc5cdc08eeff7ea26592262be\",\"dweb:/ipfs/QmXGkjX7WRNZner43AbNhJc3rSCZdbD5Bkud6LuXfyxpWV\"]},\"contracts/interfaces/IPoCo.sol\":{\"keccak256\":\"0x2e69f1066812d9f971197e575de3413fd2a5f9e85debc66c6357e8503499173a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ecb7ab388562f0467ac897d8a0f39e6250e1c04321f502b21b4ada691de99e4\",\"dweb:/ipfs/QmddePacaE7PxX83Ri9yjWPQxM2NSg6jLLUwPBU1fQgHQ2\"]},\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x7cf1a7a7eaf4580e2ef38e842ea29f6be72726754909feb2a5dc873963148cca\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a33c3cf51914c02d95e342f1107a5ee775d79cb1f7085d1b274537a0a910a826\",\"dweb:/ipfs/QmUuaXuhFL3QALrZFLZBkQjDAGpS8LJPv5jNaeHtYEZQha\"]},\"contracts/interfaces/IRental.sol\":{\"keccak256\":\"0x891a8f05758b062328c461da29810ab16337ac46d2a44e33bf99facc2875e3c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfdcc7d6dfe476f54ea053fb6e9dcdcf7a2639132bb19183d9ae97420be667b9\",\"dweb:/ipfs/QmXsJh9V3imYLYgTHa3ixewH7QeHU1bXthBckb2zencqtv\"]},\"contracts/interfaces/ISale.sol\":{\"keccak256\":\"0x017c99ffc7f3b4bceba26b96939f8ac5c6bb0ab30e6ef31d70e3e5b680073305\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4c8e21768140a94ee4d501a4bc764b4c87825ee450f05bf7cd5dc056f605f9ab\",\"dweb:/ipfs/QmaeCSCC3ZRkU3c6RvpNAkysVMn56XnGAG3GFMkaaBE2UY\"]},\"contracts/interfaces/ISubscription.sol\":{\"keccak256\":\"0xfbe6e85ec389b738f6f0d863952324e33f6e477cf7513358bc411837b2e3e9e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0afc44b029596a0c382689683e49cc1052db9d3ce70909db001f9870761f7d79\",\"dweb:/ipfs/QmR58hFLW614wFxtToDnQ1uyFbGMc46kmSdeLKncpeH1EA\"]},\"contracts/registry/AddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x8ee0e756d6de429c33f762938253bdc68f1fbcd3ea5b0d8fdc15405bb4d3d038\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2dbb6f000a728a0f62ef62c003116b749cd023163d33a7f9c4d562770dce4360\",\"dweb:/ipfs/QmSqtcCjgkYcDqS1Kophpb8GP8o1KfP3UbKubZgyfmDnYE\"]},\"contracts/registry/AddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0xaf0d909e9628551500bf88360473de8786accf9dcfcf935df3e1b02647b7b56b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://392008453c6bb059c12f1c6878825d9b92a0cbca9b39d0afb6213bffecb54cd1\",\"dweb:/ipfs/QmaWi5HStss4ehrMo5WFbwTdhTJ2hWsY2GBpfLTwtSo6gC\"]},\"contracts/registry/ERC734.sol\":{\"keccak256\":\"0xd5519a46ebed0a9e9527fb916c0d0dd2f87e8b8e242059b7c254f1141b1a40a3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://92ea72fbeb2d1049466b530ebe96f91c54dc6e53420f687735f19585732abb20\",\"dweb:/ipfs/QmTcyfLdBDk6gH8FkLmeVtWH94i9JWw8QZqL5chi5yCami\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 10796, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "_iexecResultStorageProvider", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 10798, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "_iexecResultStorageProxy", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + }, + { + "astId": 10800, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "_salt", + "offset": 0, + "slot": "2", + "type": "t_uint256" + }, + { + "astId": 9285, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "_nextCollectionTokenId", + "offset": 0, + "slot": "3", + "type": "t_uint256" + }, + { + "astId": 9289, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "earning", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_address,t_uint256)" + }, + { + "astId": 9294, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "protectedDataDetails", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_struct(ProtectedDataDetails)11295_storage)" + }, + { + "astId": 9299, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "collectionDetails", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_uint256,t_struct(CollectionDetails)11274_storage)" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IAddOnlyAppWhitelist)11098": { + "encoding": "inplace", + "label": "contract IAddOnlyAppWhitelist", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_struct(ProtectedDataDetails)11295_storage)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => struct IDataProtectorSharing.ProtectedDataDetails)", + "numberOfBytes": "32", + "value": "t_struct(ProtectedDataDetails)11295_storage" + }, + "t_mapping(t_address,t_uint256)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_mapping(t_address,t_uint48)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => uint48)", + "numberOfBytes": "32", + "value": "t_uint48" + }, + "t_mapping(t_uint256,t_struct(CollectionDetails)11274_storage)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => struct IDataProtectorSharing.CollectionDetails)", + "numberOfBytes": "32", + "value": "t_struct(CollectionDetails)11274_storage" + }, + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(CollectionDetails)11274_storage": { + "encoding": "inplace", + "label": "struct IDataProtectorSharing.CollectionDetails", + "members": [ + { + "astId": 11264, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "size", + "offset": 0, + "slot": "0", + "type": "t_uint256" + }, + { + "astId": 11266, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "lastSubscriptionExpiration", + "offset": 0, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 11269, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "subscriptionParams", + "offset": 0, + "slot": "2", + "type": "t_struct(SubscriptionParams)11831_storage" + }, + { + "astId": 11273, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "subscribers", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_uint48)" + } + ], + "numberOfBytes": "128" + }, + "t_struct(ProtectedDataDetails)11295_storage": { + "encoding": "inplace", + "label": "struct IDataProtectorSharing.ProtectedDataDetails", + "members": [ + { + "astId": 11277, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "collection", + "offset": 0, + "slot": "0", + "type": "t_uint256" + }, + { + "astId": 11280, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "addOnlyAppWhitelist", + "offset": 0, + "slot": "1", + "type": "t_contract(IAddOnlyAppWhitelist)11098" + }, + { + "astId": 11282, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "lastRentalExpiration", + "offset": 20, + "slot": "1", + "type": "t_uint48" + }, + { + "astId": 11284, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "inSubscription", + "offset": 26, + "slot": "1", + "type": "t_bool" + }, + { + "astId": 11287, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "rentingParams", + "offset": 0, + "slot": "2", + "type": "t_struct(RentingParams)11666_storage" + }, + { + "astId": 11291, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "renters", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_uint48)" + }, + { + "astId": 11294, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "sellingParams", + "offset": 0, + "slot": "4", + "type": "t_struct(SellingParams)11746_storage" + } + ], + "numberOfBytes": "160" + }, + "t_struct(RentingParams)11666_storage": { + "encoding": "inplace", + "label": "struct IRental.RentingParams", + "members": [ + { + "astId": 11663, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "price", + "offset": 0, + "slot": "0", + "type": "t_uint72" + }, + { + "astId": 11665, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "duration", + "offset": 9, + "slot": "0", + "type": "t_uint40" + } + ], + "numberOfBytes": "32" + }, + "t_struct(SellingParams)11746_storage": { + "encoding": "inplace", + "label": "struct ISale.SellingParams", + "members": [ + { + "astId": 11743, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "isForSale", + "offset": 0, + "slot": "0", + "type": "t_bool" + }, + { + "astId": 11745, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "price", + "offset": 1, + "slot": "0", + "type": "t_uint72" + } + ], + "numberOfBytes": "32" + }, + "t_struct(SubscriptionParams)11831_storage": { + "encoding": "inplace", + "label": "struct ISubscription.SubscriptionParams", + "members": [ + { + "astId": 11828, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "price", + "offset": 0, + "slot": "0", + "type": "t_uint72" + }, + { + "astId": 11830, + "contract": "contracts/DataProtectorSharing.sol:DataProtectorSharing", + "label": "duration", + "offset": 9, + "slot": "0", + "type": "t_uint40" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint40": { + "encoding": "inplace", + "label": "uint40", + "numberOfBytes": "5" + }, + "t_uint48": { + "encoding": "inplace", + "label": "uint48", + "numberOfBytes": "6" + }, + "t_uint72": { + "encoding": "inplace", + "label": "uint72", + "numberOfBytes": "9" + } + } + } + } + }, + "contracts/ManageOrders.sol": { + "ManageOrders": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ManageOrders.sol\":\"ManageOrders\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ManageOrders.sol\":{\"keccak256\":\"0x2907731f798922ea5ae62eeea832d3e3b46e7efe2e0a92269a9c035677ddc3b0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://05be7bdd9ef3e442d83a9ca39ae79b5a3c3ee56b90fda2d63b563214cb6c60c8\",\"dweb:/ipfs/QmPd8xRcrVxGQert1feQ31RgKieEY3CeEwzGMGMaZmWRXV\"]},\"contracts/interfaces/IPoCo.sol\":{\"keccak256\":\"0x2e69f1066812d9f971197e575de3413fd2a5f9e85debc66c6357e8503499173a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ecb7ab388562f0467ac897d8a0f39e6250e1c04321f502b21b4ada691de99e4\",\"dweb:/ipfs/QmddePacaE7PxX83Ri9yjWPQxM2NSg6jLLUwPBU1fQgHQ2\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 10796, + "contract": "contracts/ManageOrders.sol:ManageOrders", + "label": "_iexecResultStorageProvider", + "offset": 0, + "slot": "0", + "type": "t_string_storage" + }, + { + "astId": 10798, + "contract": "contracts/ManageOrders.sol:ManageOrders", + "label": "_iexecResultStorageProxy", + "offset": 0, + "slot": "1", + "type": "t_string_storage" + }, + { + "astId": 10800, + "contract": "contracts/ManageOrders.sol:ManageOrders", + "label": "_salt", + "offset": 0, + "slot": "2", + "type": "t_uint256" + } + ], + "types": { + "t_string_storage": { + "encoding": "bytes", + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + } + } + }, + "contracts/interfaces/IAddOnlyAppWhitelist.sol": { + "IAddOnlyAppWhitelist": { + "abi": [ + { + "inputs": [], + "name": "NotAddOnlyAppWhitelistOperator", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "appAddress", + "type": "address" + } + ], + "name": "NewAppAddedToAddOnlyAppWhitelist", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "addApp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "isRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "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": { + "addApp(address)": "93ac9b16", + "isRegistered(address)": "c3c5a547", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotAddOnlyAppWhitelistOperator\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appAddress\",\"type\":\"address\"}],\"name\":\"NewAppAddedToAddOnlyAppWhitelist\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_app\",\"type\":\"address\"}],\"name\":\"addApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_app\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"NewAppAddedToAddOnlyAppWhitelist(address)\":{\"params\":{\"appAddress\":\"- The address added to the AddOnlyAppWhitelist.\"}}},\"kind\":\"dev\",\"methods\":{\"addApp(address)\":{\"params\":{\"_app\":\"- The address of the app to add.\"}},\"isRegistered(address)\":{\"params\":{\"_app\":\"- The address of the app to add.\"}},\"transferOwnership(address)\":{\"params\":{\"newOwner\":\"- The address of the new owner.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"NotAddOnlyAppWhitelistOperator()\":[{\"notice\":\"Custom revert error indicating that the caller is not the autorized operator.\"}]},\"events\":{\"NewAppAddedToAddOnlyAppWhitelist(address)\":{\"notice\":\"Custom revert error indicating that the application is not owned by the contract.\"}},\"kind\":\"user\",\"methods\":{\"addApp(address)\":{\"notice\":\"Allow operator of the whitelist can add an app.\"},\"isRegistered(address)\":{\"notice\":\"Return true if the app is registered or not in the AddOnlyAppWhitelist.\"},\"owner()\":{\"notice\":\"Returns the address of the current owner.\"},\"transferOwnership(address)\":{\"notice\":\"Transfers ownership of the contract to a new address. Only the operator is allow to do that.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":\"IAddOnlyAppWhitelist\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol": { + "IAddOnlyAppWhitelistRegistry": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "createAddOnlyAppWhitelist", + "outputs": [ + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "isAuthorized", + "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": { + "createAddOnlyAppWhitelist(address)": "9680579d", + "isAuthorized(address,uint256)": "2972b0f0" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"createAddOnlyAppWhitelist\",\"outputs\":[{\"internalType\":\"contract IAddOnlyAppWhitelist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createAddOnlyAppWhitelist(address)\":{\"params\":{\"owner\":\"- The address that will own the newly created AddOnlyAppWhitelist contract.\"},\"returns\":{\"_0\":\"IAddOnlyAppWhitelist - The newly created and registered AddOnlyAppWhitelist contract.\"}},\"isAuthorized(address,uint256)\":{\"params\":{\"spender\":\"- The spender that you want to check if he has approval.\",\"tokenId\":\"- TokenId that we want to check for approval.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAddOnlyAppWhitelist(address)\":{\"notice\":\"Creates a new AddOnlyAppWhitelist contract and registers it under the specified owner. This function facilitates the dynamic creation and onboarding of new applications into the platform's whitelist system, expanding the ecosystem.\"},\"isAuthorized(address,uint256)\":{\"notice\":\"Checks if spender can operate on tokenId, assuming the provided owner is the actual owner. Reverts if spender does not have approval from the provided owner for the given token or for all its assets the spender for the specific tokenId.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol\":\"IAddOnlyAppWhitelistRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]},\"contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0x3effb6bb9745cc98dfcb6b398930e937ac4263bba5da1460b4246a3179675720\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a6eec732266a50449e9da2711cbe05a90c56ba882a8f9f49c466dc04aa130b73\",\"dweb:/ipfs/Qmd7H2Xf2dJpL7kwpruCbqVDc5FmHcL2bt1TjJqAPmegow\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/ICollection.sol": { + "ICollection": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "CollectionNotEmpty", + "type": "error" + }, + { + "inputs": [], + "name": "NotAnOwnerOrApprovedOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "NotCollectionOperator", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "oldCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "addOnlyAppWhitelist", + "type": "address" + } + ], + "name": "ProtectedDataTransfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "_appAddress", + "type": "address" + } + ], + "name": "addProtectedDataToCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "createCollection", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "addProtectedDataToCollection(uint256,address,address)": "40e6158d", + "createCollection(address)": "2069e953", + "removeProtectedDataFromCollection(address)": "d0b06c66" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"CollectionNotEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnOwnerOrApprovedOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"NotCollectionOperator\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newCollection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldCollection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addOnlyAppWhitelist\",\"type\":\"address\"}],\"name\":\"ProtectedDataTransfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"contract IAddOnlyAppWhitelist\",\"name\":\"_appAddress\",\"type\":\"address\"}],\"name\":\"addProtectedDataToCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"createCollection\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CollectionNotEmpty(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection that is not empty and cannot be removed.\"}}],\"NotCollectionOperator(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection where the caller is not the owner.\"}}]},\"events\":{\"ProtectedDataTransfer(address,uint256,uint256,address)\":{\"params\":{\"addOnlyAppWhitelist\":\"- The address of the approved application to consume the protected data.\",\"newCollection\":\"- The ID of the collection to which the protected data is added.\",\"oldCollection\":\"- The ID of the collection from which the protected data is removed.\",\"protectedData\":\"- The address of the protected data.\"}}},\"kind\":\"dev\",\"methods\":{\"addProtectedDataToCollection(uint256,address,address)\":{\"params\":{\"_appAddress\":\"The address of the application whitelist.\",\"_collectionTokenId\":\"The ID of the collection.\",\"_protectedData\":\"The address of the protected data to be added.\"}},\"createCollection(address)\":{\"params\":{\"_to\":\"- The address of the token owner.\"},\"returns\":{\"tokenId\":\"The token ID of the newly created collection.\"}},\"removeProtectedDataFromCollection(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"CollectionNotEmpty(uint256)\":[{\"notice\":\"Custom revert error indicating that the collection is not empty and cannot be removed.\"}],\"NotAnOwnerOrApprovedOperator()\":[{\"notice\":\"Custom revert error indicating that the caller is not approved or the owner.\"}],\"NotCollectionOperator(uint256)\":[{\"notice\":\"Custom revert error indicating that the caller is not the owner of the collection.\"}]},\"events\":{\"ProtectedDataTransfer(address,uint256,uint256,address)\":{\"notice\":\"Event emitted when a protected data is removed from a collection.\"}},\"kind\":\"user\",\"methods\":{\"addProtectedDataToCollection(uint256,address,address)\":{\"notice\":\"Add protected data to the specified collection. The owner should approve the smart contract before calling this function. The ownership of the protected data added to the collection is transferred to the smart contract, enabling it to publish protected data orders.\"},\"createCollection(address)\":{\"notice\":\"Create a new collection and returns its token ID.\"},\"removeProtectedDataFromCollection(address)\":{\"notice\":\"Remove protected data from the specified collection. The ownership of the protected data is given back to the msg.sender\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICollection.sol\":\"ICollection\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]},\"contracts/interfaces/ICollection.sol\":{\"keccak256\":\"0xb34d54b1ece4595bee6c760d86a036cc09b4d5c46050450588d06caaaa1dd0c7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ec72a824623ec0ab5b5a39e8b378a2a65d394e2a51450b094833da875281ddc\",\"dweb:/ipfs/QmR3FBLdkqKjpyNLCyV5TJHUsEzqX1jwnyDffnNSqZ13fR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IDataProtector.sol": { + "IDataProtector": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createDatasetWithSchema(address,string,string,bytes,bytes32)": "167fbf5f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_datasetSchema\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDatasetWithSchema\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"params\":{\"_datasetChecksum\":\"-The checksum of the ProtectedData.\",\"_datasetMultiaddr\":\"- The multiaddress of the ProtectedData.\",\"_datasetName\":\"- The name of the ProtectedData (metadata).\",\"_datasetOwner\":\"- The owner of the ProtectedData.\",\"_datasetSchema\":\"- The schema of the data containing in the ProtectedData\"},\"returns\":{\"_0\":\"IDataset - The ProtcetedData instance created.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"notice\":\"Create a new protectedData.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataProtector.sol\":\"IDataProtector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataProtector.sol\":{\"keccak256\":\"0x04fd5abef19a3678469edf8442f6cc538539e74a73567f86fe3adfc49b2e27f2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://461bbb96276035fbceb47e491a2c5f8c81fb87f5b964f9e3820cf4d5672966d1\",\"dweb:/ipfs/QmbH68DDvA9oZ9wWehuvBQFz1wqeb7HyfjTuTQmySDpaK4\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IDataProtectorSharing.sol": { + "IDataProtectorSharing": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "app", + "type": "address" + } + ], + "name": "AppNotWhitelistedForProtectedData", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "CollectionNotEmpty", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint48", + "name": "_duration", + "type": "uint48" + } + ], + "name": "DurationInvalid", + "type": "error" + }, + { + "inputs": [], + "name": "EmptyCallData", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_appWhitelist", + "type": "address" + } + ], + "name": "InvalidAppWhitelist", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "InvalidPriceForPurchase", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "InvalidRentingParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "InvalidSubscriptionParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedDatas", + "type": "address" + } + ], + "name": "NoValidRentalOrSubscription", + "type": "error" + }, + { + "inputs": [], + "name": "NotAnOwnerOrApprovedOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "NotCollectionOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "OnGoingCollectionSubscriptions", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_caller", + "type": "address" + } + ], + "name": "OnlyPocoCallerAuthorized", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "ProctedDataInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataCurrentlyBeingRented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataForSale", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotForSale", + "type": "error" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "workerpoolOrder", + "type": "tuple" + } + ], + "name": "WorkerpoolOrderNotFree", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "renter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewRental", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "subscriber", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "NewSubscriptionParams", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "ProtectedDataAddedForRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "ProtectedDataAddedForSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAddedForSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "dealId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IDataProtectorSharing.Mode", + "name": "mode", + "type": "uint8" + } + ], + "name": "ProtectedDataConsumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenIdFrom", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataSold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "oldCollection", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "addOnlyAppWhitelist", + "type": "address" + } + ], + "name": "ProtectedDataTransfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "_appAddress", + "type": "address" + } + ], + "name": "addProtectedDataToCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "buyProtectedData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "_workerpoolOrder", + "type": "tuple" + }, + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "consumeProtectedData", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + } + ], + "name": "createCollection", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_subscriberAddress", + "type": "address" + } + ], + "name": "getCollectionSubscriber", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_renterAddress", + "type": "address" + } + ], + "name": "getProtectedDataRenter", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_extraData", + "type": "bytes" + } + ], + "name": "receiveApproval", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromCollection", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "rentProtectedData", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "setProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "setProtectedDataToRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "setProtectedDataToSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "setSubscriptionParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "subscribeToCollection", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "addProtectedDataToCollection(uint256,address,address)": "40e6158d", + "buyProtectedData(address,address,uint72)": "53574f9e", + "consumeProtectedData(address,(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),address)": "d835c337", + "createCollection(address)": "2069e953", + "getCollectionSubscriber(uint256,address)": "c3533ba2", + "getProtectedDataRenter(address,address)": "ea46d1aa", + "receiveApproval(address,uint256,address,bytes)": "8f4ffcb1", + "removeProtectedDataForSale(address)": "01d0b634", + "removeProtectedDataFromCollection(address)": "d0b06c66", + "removeProtectedDataFromRenting(address)": "185e4e8d", + "removeProtectedDataFromSubscription(address)": "72d570ce", + "rentProtectedData(address,(uint72,uint40))": "9a82c2bd", + "setProtectedDataForSale(address,uint72)": "dc30b8fc", + "setProtectedDataToRenting(address,(uint72,uint40))": "ff811f60", + "setProtectedDataToSubscription(address)": "fe4c31a4", + "setSubscriptionParams(uint256,(uint72,uint40))": "ff19d9df", + "subscribeToCollection(uint256,(uint72,uint40))": "d3c52389" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"AppNotWhitelistedForProtectedData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"CollectionNotEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"_duration\",\"type\":\"uint48\"}],\"name\":\"DurationInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyCallData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_appWhitelist\",\"type\":\"address\"}],\"name\":\"InvalidAppWhitelist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"name\":\"InvalidPriceForPurchase\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"}],\"name\":\"InvalidRentingParams\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"InvalidSubscriptionParams\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedDatas\",\"type\":\"address\"}],\"name\":\"NoValidRentalOrSubscription\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotAnOwnerOrApprovedOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"NotCollectionOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"OnGoingCollectionSubscriptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"OnlyPocoCallerAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"ProctedDataInSubscription\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAvailableForRenting\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAvailableInSubscription\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataCurrentlyBeingRented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataForSale\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataNotAvailableForRenting\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataNotForSale\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"workerpoolOrder\",\"type\":\"tuple\"}],\"name\":\"WorkerpoolOrderNotFree\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"renter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"name\":\"NewRental\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"name\":\"NewSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"NewSubscriptionParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"}],\"name\":\"ProtectedDataAddedForRenting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"name\":\"ProtectedDataAddedForSale\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAddedForSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"dealId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IDataProtectorSharing.Mode\",\"name\":\"mode\",\"type\":\"uint8\"}],\"name\":\"ProtectedDataConsumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromRenting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromSale\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenIdFrom\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataSold\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newCollection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldCollection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addOnlyAppWhitelist\",\"type\":\"address\"}],\"name\":\"ProtectedDataTransfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"contract IAddOnlyAppWhitelist\",\"name\":\"_appAddress\",\"type\":\"address\"}],\"name\":\"addProtectedDataToCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"_price\",\"type\":\"uint72\"}],\"name\":\"buyProtectedData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"_workerpoolOrder\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_app\",\"type\":\"address\"}],\"name\":\"consumeProtectedData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"createCollection\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_subscriberAddress\",\"type\":\"address\"}],\"name\":\"getCollectionSubscriber\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_renterAddress\",\"type\":\"address\"}],\"name\":\"getProtectedDataRenter\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"receiveApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromRenting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"_rentingParams\",\"type\":\"tuple\"}],\"name\":\"rentProtectedData\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"_price\",\"type\":\"uint72\"}],\"name\":\"setProtectedDataForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"_rentingParams\",\"type\":\"tuple\"}],\"name\":\"setProtectedDataToRenting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"setProtectedDataToSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"_subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"setSubscriptionParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"_subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"subscribeToCollection\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AppNotWhitelistedForProtectedData(address)\":[{\"params\":{\"app\":\"- The address of the application that is not owned by the contract.\"}}],\"CollectionNotEmpty(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection that is not empty and cannot be removed.\"}}],\"DurationInvalid(uint48)\":[{\"params\":{\"_duration\":\"- The invalid duration.\"}}],\"InvalidAppWhitelist(address)\":[{\"params\":{\"_appWhitelist\":\"- The address of the AddOnlyAppWhitelist.\"}}],\"InvalidPriceForPurchase(address,uint72)\":[{\"params\":{\"price\":\"- The price of the protected data set.\",\"protectedData\":\"- The address of the protected data not for sale.\"}}],\"InvalidRentingParams(address,(uint72,uint40))\":[{\"params\":{\"protectedData\":\"- The address of the protected data.\",\"rentingParams\":\"- Current renting params.\"}}],\"InvalidSubscriptionParams(uint256,(uint72,uint40))\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"subscriptionParams\":\"- Current subscription params\"}}],\"NoValidRentalOrSubscription(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection for which there is no valid rental or subscription.\",\"protectedDatas\":\"- The address of the protected data.\"}}],\"NotCollectionOperator(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection where the caller is not the owner.\"}}],\"OnGoingCollectionSubscriptions(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection with ongoing subscriptions.\"}}],\"ProctedDataInSubscription(uint256,address)\":[{\"params\":{\"_collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"_protectedData\":\"- The address of the protected data.\"}}],\"ProtectedDataAvailableForRenting(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"protectedData\":\"- The address of the protected data available for renting.\"}}],\"ProtectedDataAvailableInSubscription(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"protectedData\":\"- The address of the protected data available for subscription.\"}}],\"ProtectedDataCurrentlyBeingRented(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data currently being rented.\"}}],\"ProtectedDataForSale(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data for sale.\"}}],\"ProtectedDataNotAvailableForRenting(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data not available for renting.\"}}],\"ProtectedDataNotForSale(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data not for sale.\"}}],\"WorkerpoolOrderNotFree((address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes))\":[{\"params\":{\"workerpoolOrder\":\"- The workerpool order that is not free.\"}}]},\"events\":{\"NewRental(uint256,address,address,uint48)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"endDate\":\"- The end date of the rental.\",\"protectedData\":\"- The address of the protected data.\",\"renter\":\"- The address of the renter.\"}},\"NewSubscription(uint256,address,uint48)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"endDate\":\"- The end date of the subscription.\",\"subscriber\":\"- The address of the subscriber.\"}},\"NewSubscriptionParams(uint256,(uint72,uint40))\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"subscriptionParams\":\"- The subscription parameters set for the collection.\"}},\"ProtectedDataAddedForRenting(uint256,address,(uint72,uint40))\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\",\"rentingParams\":\"- The renting params for the protected data.\"}},\"ProtectedDataAddedForSale(uint256,address,uint72)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"price\":\"- The price (in Gwei) for purchasing the protected data.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataAddedForSubscription(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataConsumed(bytes32,address,uint8)\":{\"params\":{\"dealId\":\"- The unique identifier for the deal.\",\"mode\":\"- The mode of consumption (either subscription or renting).\",\"protectedData\":\"- protectedData used for the deal.\"}},\"ProtectedDataRemovedFromRenting(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataRemovedFromSale(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataRemovedFromSubscription(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataSold(uint256,address,address)\":{\"params\":{\"collectionTokenIdFrom\":\"- The ID of the collection from which the protected data is sold.\",\"protectedData\":\"- The address of the protected data.\",\"to\":\"- The address to which the protected data is transferred. It could be the smart contract itselft, it means that the protected data has moved to another ollection or it can be the msg.sender\"}},\"ProtectedDataTransfer(address,uint256,uint256,address)\":{\"params\":{\"addOnlyAppWhitelist\":\"- The address of the approved application to consume the protected data.\",\"newCollection\":\"- The ID of the collection to which the protected data is added.\",\"oldCollection\":\"- The ID of the collection from which the protected data is removed.\",\"protectedData\":\"- The address of the protected data.\"}}},\"kind\":\"dev\",\"methods\":{\"addProtectedDataToCollection(uint256,address,address)\":{\"params\":{\"_appAddress\":\"The address of the application whitelist.\",\"_collectionTokenId\":\"The ID of the collection.\",\"_protectedData\":\"The address of the protected data to be added.\"}},\"buyProtectedData(address,address,uint72)\":{\"params\":{\"_price\":\"The price that the buyer filled out not to be front run.\",\"_protectedData\":\"The address of the protected data being purchased.\",\"_to\":\"The recipient address to which the protected data will be transferred.\"}},\"consumeProtectedData(address,(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),address)\":{\"params\":{\"_app\":\"The address of the app that will consume the protected data.\",\"_protectedData\":\"The address of the protected data.\",\"_workerpoolOrder\":\"The workerpool order for the computation task.\"},\"returns\":{\"_0\":\"The unique identifier (deal ID) of the created deal on the iExec platform.\"}},\"createCollection(address)\":{\"params\":{\"_to\":\"- The address of the token owner.\"},\"returns\":{\"tokenId\":\"The token ID of the newly created collection.\"}},\"getCollectionSubscriber(uint256,address)\":{\"params\":{\"_collectionTokenId\":\"The ID of the collection.\",\"_subscriberAddress\":\"The address of the subscriber.\"},\"returns\":{\"_0\":\"The subscription expiration timestamp as a uint48.\"}},\"getProtectedDataRenter(address,address)\":{\"params\":{\"_protectedData\":\"The address of the protected data item.\",\"_renterAddress\":\"The address of the renter.\"},\"returns\":{\"_0\":\"The rental expiration timestamp as a uint48.\"}},\"receiveApproval(address,uint256,address,bytes)\":{\"params\":{\"_extraData\":\"- The callData representing the encoded function with signature to call (eg: subscribeToCollection, rentProtectedData, buyProtectedData).\",\"_sender\":\"- The msg.sender that call the approveAndCall function in the Poco.\",\"_value\":\"- The value set in approveAndCall function.\"}},\"removeProtectedDataForSale(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from sale.\"}},\"removeProtectedDataFromCollection(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed.\"}},\"removeProtectedDataFromRenting(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from renting.\"}},\"removeProtectedDataFromSubscription(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from the subscription.\"}},\"rentProtectedData(address,(uint72,uint40))\":{\"params\":{\"_protectedData\":\"Address of the data to be rented.\",\"_rentingParams\":\"In order to avoid the collection owner to front run renters.\"},\"returns\":{\"_0\":\"uint48 Timestamp of the rental's expiration.\"}},\"setProtectedDataForSale(address,uint72)\":{\"params\":{\"_price\":\"The price in wei for the protected data.\",\"_protectedData\":\"The address of the protected data to be set for sale.\"}},\"setProtectedDataToRenting(address,(uint72,uint40))\":{\"params\":{\"_protectedData\":\"The address of the protected data to be added for renting.\",\"_rentingParams\":\"The renting params for which the protected data will be available for renting.\"}},\"setProtectedDataToSubscription(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be added to the subscription.\"}},\"setSubscriptionParams(uint256,(uint72,uint40))\":{\"params\":{\"_collectionTokenId\":\"The ID of the collection.\",\"_subscriptionParams\":\"The subscription parameters to be set.\"}},\"subscribeToCollection(uint256,(uint72,uint40))\":{\"params\":{\"_collectionTokenId\":\"The unique identifier of the collection to subscribe to.\",\"_subscriptionParams\":\"Additional parameter to prevent front-running attacks, ensuring fair subscription execution.\"},\"returns\":{\"_0\":\"endDate The timestamp when the subscription will expire, indicating the end of access.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AppNotWhitelistedForProtectedData(address)\":[{\"notice\":\"Custom revert error indicating that the application is not owned by the contract.\"}],\"CollectionNotEmpty(uint256)\":[{\"notice\":\"Custom revert error indicating that the collection is not empty and cannot be removed.\"}],\"DurationInvalid(uint48)\":[{\"notice\":\"Custom revert error indicating that the duration is invalid.\"}],\"EmptyCallData()\":[{\"notice\":\"Custom revert error indicating that the extra data set are empty.\"}],\"InvalidAppWhitelist(address)\":[{\"notice\":\"Custom revert error indicating that an operator is not the app registry.\"}],\"InvalidPriceForPurchase(address,uint72)\":[{\"notice\":\"Custom revert error indicating that the protected data is not for sale.\"}],\"InvalidRentingParams(address,(uint72,uint40))\":[{\"notice\":\"Custom revert error indicating that the renting params set are not valide.\"}],\"InvalidSubscriptionParams(uint256,(uint72,uint40))\":[{\"notice\":\"Custom revert error indicating that the subscription params set are not valide.\"}],\"NoValidRentalOrSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that there is no valid rental or subscription for the protected data.\"}],\"NotAnOwnerOrApprovedOperator()\":[{\"notice\":\"Custom revert error indicating that the caller is not approved or the owner.\"}],\"NotCollectionOperator(uint256)\":[{\"notice\":\"Custom revert error indicating that the caller is not the owner of the collection.\"}],\"OnGoingCollectionSubscriptions(uint256)\":[{\"notice\":\"Custom revert error indicating that there are ongoing subscriptions for the collection.\"}],\"OnlyPocoCallerAuthorized(address)\":[{\"notice\":\"Custom revert error that the caller is not the Poco.\"}],\"ProctedDataInSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is currently in a subscription.\"}],\"ProtectedDataAvailableForRenting(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is available for renting.\"}],\"ProtectedDataAvailableInSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is available for subscription.\"}],\"ProtectedDataCurrentlyBeingRented(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is currently being rented.\"}],\"ProtectedDataForSale(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is for sale.\"}],\"ProtectedDataNotAvailableForRenting(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is not available for renting.\"}],\"ProtectedDataNotForSale(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is not for sale.\"}],\"WorkerpoolOrderNotFree((address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes))\":[{\"notice\":\"Custom revert error indicating that the workerpool order is not free.\"}]},\"events\":{\"NewRental(uint256,address,address,uint48)\":{\"notice\":\"Event emitted when a new rental is created for protected data in a collection.\"},\"NewSubscription(uint256,address,uint48)\":{\"notice\":\"Event emitted when a new subscription is created for a collection.\"},\"NewSubscriptionParams(uint256,(uint72,uint40))\":{\"notice\":\"Event emitted when new subscription parameters are set for a collection.\"},\"ProtectedDataAddedForRenting(uint256,address,(uint72,uint40))\":{\"notice\":\"Event emitted when protected data is added for renting in a collection.\"},\"ProtectedDataAddedForSale(uint256,address,uint72)\":{\"notice\":\"Event emitted when protected data is added for sale in a collection.\"},\"ProtectedDataAddedForSubscription(uint256,address)\":{\"notice\":\"Event emitted when protected data is added to pool of protected data among the collection available for the subscription.\"},\"ProtectedDataConsumed(bytes32,address,uint8)\":{\"notice\":\"Event emitted when protected data is consumed under a specific deal, providing the unique deal ID and the mode of consumption.\"},\"ProtectedDataRemovedFromRenting(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from renting in a collection.\"},\"ProtectedDataRemovedFromSale(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from sale in a collection.\"},\"ProtectedDataRemovedFromSubscription(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from a subscription.\"},\"ProtectedDataSold(uint256,address,address)\":{\"notice\":\"Event emitted when protected data is sold from one collection.\"},\"ProtectedDataTransfer(address,uint256,uint256,address)\":{\"notice\":\"Event emitted when a protected data is removed from a collection.\"}},\"kind\":\"user\",\"methods\":{\"addProtectedDataToCollection(uint256,address,address)\":{\"notice\":\"Add protected data to the specified collection. The owner should approve the smart contract before calling this function. The ownership of the protected data added to the collection is transferred to the smart contract, enabling it to publish protected data orders.\"},\"buyProtectedData(address,address,uint72)\":{\"notice\":\"Purchases protected data using the buyer's account balance within the platform and transfers ownership to a specified address. This method requires the smart contract to be pre-authorized to use the necessary funds from the buyer's account (sufficient Stacked RLC must be available). Upon completion, the smart contract will no longer manage the protected data.\"},\"consumeProtectedData(address,(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),address)\":{\"notice\":\"Consume protected data by creating a deal on the iExec platform. Requires a valid subscription or rental for the protected data.\"},\"createCollection(address)\":{\"notice\":\"Create a new collection and returns its token ID.\"},\"getCollectionSubscriber(uint256,address)\":{\"notice\":\"Retrieves the subscription expiration timestamp for a specific collection and subscriber. This function allows querying the expiration timestamp of a subscription for a specific collection and a subscriber.\"},\"getProtectedDataRenter(address,address)\":{\"notice\":\"Retrieves the rental expiration timestamp for a specific protected data and renter. This function allows querying the expiration timestamp of a rental agreement between a specific protected data item and a renter.\"},\"receiveApproval(address,uint256,address,bytes)\":{\"notice\":\"Callback function call after in the approveAndCall Poco function. It allows end user to approve and call the desired function in the same transaction.\"},\"removeProtectedDataForSale(address)\":{\"notice\":\"Remove protected data from the list available for sale.\"},\"removeProtectedDataFromCollection(address)\":{\"notice\":\"Remove protected data from the specified collection. The ownership of the protected data is given back to the msg.sender\"},\"removeProtectedDataFromRenting(address)\":{\"notice\":\"Remove protected data from the available list of renting. Cannot be rented anymore, ongoing rental are still valid\"},\"removeProtectedDataFromSubscription(address)\":{\"notice\":\"Remove protected data from the subscription for the specified collection. Subcribers cannot consume the protected data anymore\"},\"rentProtectedData(address,(uint72,uint40))\":{\"notice\":\"Enables renting of protected data using funds from the caller's iExec account. Sufficient Stacked RLC must be available, and the contract must be authorized to spend the required amount on the caller's behalf.\"},\"setProtectedDataForSale(address,uint72)\":{\"notice\":\"Set protected data available for sale with the specified price.\"},\"setProtectedDataToRenting(address,(uint72,uint40))\":{\"notice\":\"Set protected data from a collection available for renting with the specified price and duration.\"},\"setProtectedDataToSubscription(address)\":{\"notice\":\"Set protected data available in the subscription for the specified collection.\"},\"setSubscriptionParams(uint256,(uint72,uint40))\":{\"notice\":\"Set the subscription parameters for a collection.\"},\"subscribeToCollection(uint256,(uint72,uint40))\":{\"notice\":\"Subscribes to a collection using funds from the caller's account balance within the platform (Stacked RLC). Requires prior approval for this contract to spend the subscription amount on behalf of the caller.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataProtectorSharing.sol\":\"IDataProtectorSharing\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]},\"contracts/interfaces/ICollection.sol\":{\"keccak256\":\"0xb34d54b1ece4595bee6c760d86a036cc09b4d5c46050450588d06caaaa1dd0c7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ec72a824623ec0ab5b5a39e8b378a2a65d394e2a51450b094833da875281ddc\",\"dweb:/ipfs/QmR3FBLdkqKjpyNLCyV5TJHUsEzqX1jwnyDffnNSqZ13fR\"]},\"contracts/interfaces/IDataProtectorSharing.sol\":{\"keccak256\":\"0x31a1ce4c5f66ce0d5868b9c40010a2ccea84550b6142d2ff69b7b252d5b0a682\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1221890eaaa67ec52182fae4c12ee519aff8880cc5cdc08eeff7ea26592262be\",\"dweb:/ipfs/QmXGkjX7WRNZner43AbNhJc3rSCZdbD5Bkud6LuXfyxpWV\"]},\"contracts/interfaces/IPoCo.sol\":{\"keccak256\":\"0x2e69f1066812d9f971197e575de3413fd2a5f9e85debc66c6357e8503499173a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ecb7ab388562f0467ac897d8a0f39e6250e1c04321f502b21b4ada691de99e4\",\"dweb:/ipfs/QmddePacaE7PxX83Ri9yjWPQxM2NSg6jLLUwPBU1fQgHQ2\"]},\"contracts/interfaces/IRental.sol\":{\"keccak256\":\"0x891a8f05758b062328c461da29810ab16337ac46d2a44e33bf99facc2875e3c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfdcc7d6dfe476f54ea053fb6e9dcdcf7a2639132bb19183d9ae97420be667b9\",\"dweb:/ipfs/QmXsJh9V3imYLYgTHa3ixewH7QeHU1bXthBckb2zencqtv\"]},\"contracts/interfaces/ISale.sol\":{\"keccak256\":\"0x017c99ffc7f3b4bceba26b96939f8ac5c6bb0ab30e6ef31d70e3e5b680073305\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4c8e21768140a94ee4d501a4bc764b4c87825ee450f05bf7cd5dc056f605f9ab\",\"dweb:/ipfs/QmaeCSCC3ZRkU3c6RvpNAkysVMn56XnGAG3GFMkaaBE2UY\"]},\"contracts/interfaces/ISubscription.sol\":{\"keccak256\":\"0xfbe6e85ec389b738f6f0d863952324e33f6e477cf7513358bc411837b2e3e9e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0afc44b029596a0c382689683e49cc1052db9d3ce70909db001f9870761f7d79\",\"dweb:/ipfs/QmR58hFLW614wFxtToDnQ1uyFbGMc46kmSdeLKncpeH1EA\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IPoCo.sol": { + "IPoCo": { + "abi": [ + { + "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": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "extraData", + "type": "bytes" + } + ], + "name": "approveAndCall", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "deposit", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "app", + "type": "address" + }, + { + "internalType": "uint256", + "name": "appprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "workerpoolrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.AppOrder", + "name": "order", + "type": "tuple" + }, + { + "internalType": "enum IexecLibOrders_v5.OrderOperationEnum", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.AppOrderOperation", + "name": "operation", + "type": "tuple" + } + ], + "name": "manageAppOrder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "dataset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "datasetprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "workerpoolrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.DatasetOrder", + "name": "order", + "type": "tuple" + }, + { + "internalType": "enum IexecLibOrders_v5.OrderOperationEnum", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.DatasetOrderOperation", + "name": "operation", + "type": "tuple" + } + ], + "name": "manageDatasetOrder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "app", + "type": "address" + }, + { + "internalType": "uint256", + "name": "appmaxprice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "dataset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "datasetmaxprice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolmaxprice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "requester", + "type": "address" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "address", + "name": "callback", + "type": "address" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.RequestOrder", + "name": "order", + "type": "tuple" + }, + { + "internalType": "enum IexecLibOrders_v5.OrderOperationEnum", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.RequestOrderOperation", + "name": "operation", + "type": "tuple" + } + ], + "name": "manageRequestOrder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "order", + "type": "tuple" + }, + { + "internalType": "enum IexecLibOrders_v5.OrderOperationEnum", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrderOperation", + "name": "operation", + "type": "tuple" + } + ], + "name": "manageWorkerpoolOrder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "app", + "type": "address" + }, + { + "internalType": "uint256", + "name": "appprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "workerpoolrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.AppOrder", + "name": "appOrder", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "dataset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "datasetprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "workerpoolrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.DatasetOrder", + "name": "datasetOrder", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolprice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "apprestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "datasetrestrict", + "type": "address" + }, + { + "internalType": "address", + "name": "requesterrestrict", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder", + "name": "workerpoolOrder", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address", + "name": "app", + "type": "address" + }, + { + "internalType": "uint256", + "name": "appmaxprice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "dataset", + "type": "address" + }, + { + "internalType": "uint256", + "name": "datasetmaxprice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "workerpool", + "type": "address" + }, + { + "internalType": "uint256", + "name": "workerpoolmaxprice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "requester", + "type": "address" + }, + { + "internalType": "uint256", + "name": "volume", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "tag", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "category", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trust", + "type": "uint256" + }, + { + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "address", + "name": "callback", + "type": "address" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "sign", + "type": "bytes" + } + ], + "internalType": "struct IexecLibOrders_v5.RequestOrder", + "name": "requestOrder", + "type": "tuple" + } + ], + "name": "matchOrders", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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" + } + ], + "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", + "approveAndCall(address,uint256,bytes)": "cae9ca51", + "balanceOf(address)": "70a08231", + "deposit()": "d0e30db0", + "manageAppOrder(((address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),uint8,bytes))": "b2b07e66", + "manageDatasetOrder(((address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),uint8,bytes))": "4b747106", + "manageRequestOrder(((address,uint256,address,uint256,address,uint256,address,uint256,bytes32,uint256,uint256,address,address,string,bytes32,bytes),uint8,bytes))": "8dd971d5", + "manageWorkerpoolOrder(((address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),uint8,bytes))": "7e34a077", + "matchOrders((address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),(address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),(address,uint256,address,uint256,address,uint256,address,uint256,bytes32,uint256,uint256,address,address,string,bytes32,bytes))": "156194d4", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.AppOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"enum IexecLibOrders_v5.OrderOperationEnum\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.AppOrderOperation\",\"name\":\"operation\",\"type\":\"tuple\"}],\"name\":\"manageAppOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.DatasetOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"enum IexecLibOrders_v5.OrderOperationEnum\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.DatasetOrderOperation\",\"name\":\"operation\",\"type\":\"tuple\"}],\"name\":\"manageDatasetOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callback\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.RequestOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"enum IexecLibOrders_v5.OrderOperationEnum\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.RequestOrderOperation\",\"name\":\"operation\",\"type\":\"tuple\"}],\"name\":\"manageRequestOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"enum IexecLibOrders_v5.OrderOperationEnum\",\"name\":\"operation\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrderOperation\",\"name\":\"operation\",\"type\":\"tuple\"}],\"name\":\"manageWorkerpoolOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.AppOrder\",\"name\":\"appOrder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.DatasetOrder\",\"name\":\"datasetOrder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"workerpoolOrder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callback\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.RequestOrder\",\"name\":\"requestOrder\",\"type\":\"tuple\"}],\"name\":\"matchOrders\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPoCo.sol\":\"IPoCo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IPoCo.sol\":{\"keccak256\":\"0x2e69f1066812d9f971197e575de3413fd2a5f9e85debc66c6357e8503499173a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ecb7ab388562f0467ac897d8a0f39e6250e1c04321f502b21b4ada691de99e4\",\"dweb:/ipfs/QmddePacaE7PxX83Ri9yjWPQxM2NSg6jLLUwPBU1fQgHQ2\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "IexecLibOrders_v5": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122048db6e3123234d3c509ed5d1689371818f2d481d0ca3c0efe5de21cc48d7159464736f6c63430008180033", + "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 BASEFEE 0xDB PUSH15 0x3123234D3C509ED5D1689371818F2D BASEFEE SAR 0xC LOG3 0xC0 0xEF 0xE5 0xDE 0x21 0xCC BASEFEE 0xD7 ISZERO SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "2978:1921:43:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2978:1921:43;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122048db6e3123234d3c509ed5d1689371818f2d481d0ca3c0efe5de21cc48d7159464736f6c63430008180033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BASEFEE 0xDB PUSH15 0x3123234D3C509ED5D1689371818F2D BASEFEE SAR 0xC LOG3 0xC0 0xEF 0xE5 0xDE 0x21 0xCC BASEFEE 0xD7 ISZERO SWAP5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "2978:1921:43:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IPoCo.sol\":\"IexecLibOrders_v5\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IPoCo.sol\":{\"keccak256\":\"0x2e69f1066812d9f971197e575de3413fd2a5f9e85debc66c6357e8503499173a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2ecb7ab388562f0467ac897d8a0f39e6250e1c04321f502b21b4ada691de99e4\",\"dweb:/ipfs/QmddePacaE7PxX83Ri9yjWPQxM2NSg6jLLUwPBU1fQgHQ2\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IRegistry.sol": { + "IRegistry": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_entry", + "type": "address" + } + ], + "name": "isRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "isRegistered(address)": "c3c5a547", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_entry\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"params\":{\"to\":\"The address to grant approval to.\",\"tokenId\":\"The token ID to be approved for transfer.\"}},\"getApproved(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token to query.\"},\"returns\":{\"_0\":\"The approved address for the given token ID, or zero if no approval is set.\"}},\"isApprovedForAll(address,address)\":{\"params\":{\"operator\":\"- Operator to check if it's authorized or not.\",\"owner\":\"- Owner of the tokenId\"}},\"isRegistered(address)\":{\"params\":{\"_entry\":\"The protected data address to check for registration.\"},\"returns\":{\"_0\":\"True if the address is registered, false otherwise.\"}},\"ownerOf(uint256)\":{\"params\":{\"tokenId\":\"The ID of the token to query the owner for.\"},\"returns\":{\"_0\":\"The address of the owner of the token.\"}},\"safeTransferFrom(address,address,uint256)\":{\"params\":{\"from\":\"The current owner of the token.\",\"to\":\"The new owner.\",\"tokenId\":\"The token ID to transfer.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approve(address,uint256)\":{\"notice\":\"Approve another address to transfer the given token ID.\"},\"getApproved(uint256)\":{\"notice\":\"Gets the approved address for a token ID, or zero if no address is set.\"},\"isApprovedForAll(address,address)\":{\"notice\":\"Returns the account approved for tokenId token. TokenId must exist.\"},\"isRegistered(address)\":{\"notice\":\"Check if an ERC-721 protectedData is registered.\"},\"ownerOf(uint256)\":{\"notice\":\"Return the owner of the specified token ID.\"},\"safeTransferFrom(address,address,uint256)\":{\"notice\":\"Safely transfers the ownership of a given token ID to another address.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IRegistry.sol\":\"IRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IRegistry.sol\":{\"keccak256\":\"0x7cf1a7a7eaf4580e2ef38e842ea29f6be72726754909feb2a5dc873963148cca\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a33c3cf51914c02d95e342f1107a5ee775d79cb1f7085d1b274537a0a910a826\",\"dweb:/ipfs/QmUuaXuhFL3QALrZFLZBkQjDAGpS8LJPv5jNaeHtYEZQha\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IRental.sol": { + "IRental": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint48", + "name": "_duration", + "type": "uint48" + } + ], + "name": "DurationInvalid", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "InvalidRentingParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableForRenting", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataCurrentlyBeingRented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotAvailableForRenting", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "renter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewRental", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct IRental.RentingParams", + "name": "rentingParams", + "type": "tuple" + } + ], + "name": "ProtectedDataAddedForRenting", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromRenting", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "rentProtectedData", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct IRental.RentingParams", + "name": "_rentingParams", + "type": "tuple" + } + ], + "name": "setProtectedDataToRenting", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "removeProtectedDataFromRenting(address)": "185e4e8d", + "rentProtectedData(address,(uint72,uint40))": "9a82c2bd", + "setProtectedDataToRenting(address,(uint72,uint40))": "ff811f60" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"_duration\",\"type\":\"uint48\"}],\"name\":\"DurationInvalid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"}],\"name\":\"InvalidRentingParams\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAvailableForRenting\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataCurrentlyBeingRented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataNotAvailableForRenting\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"renter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"name\":\"NewRental\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct IRental.RentingParams\",\"name\":\"rentingParams\",\"type\":\"tuple\"}],\"name\":\"ProtectedDataAddedForRenting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromRenting\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromRenting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"_rentingParams\",\"type\":\"tuple\"}],\"name\":\"rentProtectedData\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct IRental.RentingParams\",\"name\":\"_rentingParams\",\"type\":\"tuple\"}],\"name\":\"setProtectedDataToRenting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"DurationInvalid(uint48)\":[{\"params\":{\"_duration\":\"- The invalid duration.\"}}],\"InvalidRentingParams(address,(uint72,uint40))\":[{\"params\":{\"protectedData\":\"- The address of the protected data.\",\"rentingParams\":\"- Current renting params.\"}}],\"ProtectedDataAvailableForRenting(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"protectedData\":\"- The address of the protected data available for renting.\"}}],\"ProtectedDataCurrentlyBeingRented(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data currently being rented.\"}}],\"ProtectedDataNotAvailableForRenting(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data not available for renting.\"}}]},\"events\":{\"NewRental(uint256,address,address,uint48)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"endDate\":\"- The end date of the rental.\",\"protectedData\":\"- The address of the protected data.\",\"renter\":\"- The address of the renter.\"}},\"ProtectedDataAddedForRenting(uint256,address,(uint72,uint40))\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\",\"rentingParams\":\"- The renting params for the protected data.\"}},\"ProtectedDataRemovedFromRenting(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}}},\"kind\":\"dev\",\"methods\":{\"removeProtectedDataFromRenting(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from renting.\"}},\"rentProtectedData(address,(uint72,uint40))\":{\"params\":{\"_protectedData\":\"Address of the data to be rented.\",\"_rentingParams\":\"In order to avoid the collection owner to front run renters.\"},\"returns\":{\"_0\":\"uint48 Timestamp of the rental's expiration.\"}},\"setProtectedDataToRenting(address,(uint72,uint40))\":{\"params\":{\"_protectedData\":\"The address of the protected data to be added for renting.\",\"_rentingParams\":\"The renting params for which the protected data will be available for renting.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"DurationInvalid(uint48)\":[{\"notice\":\"Custom revert error indicating that the duration is invalid.\"}],\"InvalidRentingParams(address,(uint72,uint40))\":[{\"notice\":\"Custom revert error indicating that the renting params set are not valide.\"}],\"ProtectedDataAvailableForRenting(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is available for renting.\"}],\"ProtectedDataCurrentlyBeingRented(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is currently being rented.\"}],\"ProtectedDataNotAvailableForRenting(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is not available for renting.\"}]},\"events\":{\"NewRental(uint256,address,address,uint48)\":{\"notice\":\"Event emitted when a new rental is created for protected data in a collection.\"},\"ProtectedDataAddedForRenting(uint256,address,(uint72,uint40))\":{\"notice\":\"Event emitted when protected data is added for renting in a collection.\"},\"ProtectedDataRemovedFromRenting(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from renting in a collection.\"}},\"kind\":\"user\",\"methods\":{\"removeProtectedDataFromRenting(address)\":{\"notice\":\"Remove protected data from the available list of renting. Cannot be rented anymore, ongoing rental are still valid\"},\"rentProtectedData(address,(uint72,uint40))\":{\"notice\":\"Enables renting of protected data using funds from the caller's iExec account. Sufficient Stacked RLC must be available, and the contract must be authorized to spend the required amount on the caller's behalf.\"},\"setProtectedDataToRenting(address,(uint72,uint40))\":{\"notice\":\"Set protected data from a collection available for renting with the specified price and duration.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IRental.sol\":\"IRental\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IRental.sol\":{\"keccak256\":\"0x891a8f05758b062328c461da29810ab16337ac46d2a44e33bf99facc2875e3c8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfdcc7d6dfe476f54ea053fb6e9dcdcf7a2639132bb19183d9ae97420be667b9\",\"dweb:/ipfs/QmXsJh9V3imYLYgTHa3ixewH7QeHU1bXthBckb2zencqtv\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/ISale.sol": { + "ISale": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "InvalidPriceForPurchase", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataForSale", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataNotForSale", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint72", + "name": "price", + "type": "uint72" + } + ], + "name": "ProtectedDataAddedForSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSale", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenIdFrom", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataSold", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "buyProtectedData", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + }, + { + "internalType": "uint72", + "name": "_price", + "type": "uint72" + } + ], + "name": "setProtectedDataForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "buyProtectedData(address,address,uint72)": "53574f9e", + "removeProtectedDataForSale(address)": "01d0b634", + "setProtectedDataForSale(address,uint72)": "dc30b8fc" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"name\":\"InvalidPriceForPurchase\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataForSale\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataNotForSale\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"}],\"name\":\"ProtectedDataAddedForSale\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromSale\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenIdFrom\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataSold\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"_price\",\"type\":\"uint72\"}],\"name\":\"buyProtectedData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"},{\"internalType\":\"uint72\",\"name\":\"_price\",\"type\":\"uint72\"}],\"name\":\"setProtectedDataForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidPriceForPurchase(address,uint72)\":[{\"params\":{\"price\":\"- The price of the protected data set.\",\"protectedData\":\"- The address of the protected data not for sale.\"}}],\"ProtectedDataForSale(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data for sale.\"}}],\"ProtectedDataNotForSale(address)\":[{\"params\":{\"protectedData\":\"- The address of the protected data not for sale.\"}}]},\"events\":{\"ProtectedDataAddedForSale(uint256,address,uint72)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"price\":\"- The price (in Gwei) for purchasing the protected data.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataRemovedFromSale(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataSold(uint256,address,address)\":{\"params\":{\"collectionTokenIdFrom\":\"- The ID of the collection from which the protected data is sold.\",\"protectedData\":\"- The address of the protected data.\",\"to\":\"- The address to which the protected data is transferred. It could be the smart contract itselft, it means that the protected data has moved to another ollection or it can be the msg.sender\"}}},\"kind\":\"dev\",\"methods\":{\"buyProtectedData(address,address,uint72)\":{\"params\":{\"_price\":\"The price that the buyer filled out not to be front run.\",\"_protectedData\":\"The address of the protected data being purchased.\",\"_to\":\"The recipient address to which the protected data will be transferred.\"}},\"removeProtectedDataForSale(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from sale.\"}},\"setProtectedDataForSale(address,uint72)\":{\"params\":{\"_price\":\"The price in wei for the protected data.\",\"_protectedData\":\"The address of the protected data to be set for sale.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"InvalidPriceForPurchase(address,uint72)\":[{\"notice\":\"Custom revert error indicating that the protected data is not for sale.\"}],\"ProtectedDataForSale(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is for sale.\"}],\"ProtectedDataNotForSale(address)\":[{\"notice\":\"Custom revert error indicating that the protected data is not for sale.\"}]},\"events\":{\"ProtectedDataAddedForSale(uint256,address,uint72)\":{\"notice\":\"Event emitted when protected data is added for sale in a collection.\"},\"ProtectedDataRemovedFromSale(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from sale in a collection.\"},\"ProtectedDataSold(uint256,address,address)\":{\"notice\":\"Event emitted when protected data is sold from one collection.\"}},\"kind\":\"user\",\"methods\":{\"buyProtectedData(address,address,uint72)\":{\"notice\":\"Purchases protected data using the buyer's account balance within the platform and transfers ownership to a specified address. This method requires the smart contract to be pre-authorized to use the necessary funds from the buyer's account (sufficient Stacked RLC must be available). Upon completion, the smart contract will no longer manage the protected data.\"},\"removeProtectedDataForSale(address)\":{\"notice\":\"Remove protected data from the list available for sale.\"},\"setProtectedDataForSale(address,uint72)\":{\"notice\":\"Set protected data available for sale with the specified price.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISale.sol\":\"ISale\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ISale.sol\":{\"keccak256\":\"0x017c99ffc7f3b4bceba26b96939f8ac5c6bb0ab30e6ef31d70e3e5b680073305\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4c8e21768140a94ee4d501a4bc764b4c87825ee450f05bf7cd5dc056f605f9ab\",\"dweb:/ipfs/QmaeCSCC3ZRkU3c6RvpNAkysVMn56XnGAG3GFMkaaBE2UY\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/ISubscription.sol": { + "ISubscription": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "InvalidSubscriptionParams", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + } + ], + "name": "OnGoingCollectionSubscriptions", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "ProctedDataInSubscription", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAvailableInSubscription", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "subscriber", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint48", + "name": "endDate", + "type": "uint48" + } + ], + "name": "NewSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "indexed": false, + "internalType": "struct ISubscription.SubscriptionParams", + "name": "subscriptionParams", + "type": "tuple" + } + ], + "name": "NewSubscriptionParams", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataAddedForSubscription", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "collectionTokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "protectedData", + "type": "address" + } + ], + "name": "ProtectedDataRemovedFromSubscription", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "removeProtectedDataFromSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_protectedData", + "type": "address" + } + ], + "name": "setProtectedDataToSubscription", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "setSubscriptionParams", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_collectionTokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint72", + "name": "price", + "type": "uint72" + }, + { + "internalType": "uint40", + "name": "duration", + "type": "uint40" + } + ], + "internalType": "struct ISubscription.SubscriptionParams", + "name": "_subscriptionParams", + "type": "tuple" + } + ], + "name": "subscribeToCollection", + "outputs": [ + { + "internalType": "uint48", + "name": "", + "type": "uint48" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "removeProtectedDataFromSubscription(address)": "72d570ce", + "setProtectedDataToSubscription(address)": "fe4c31a4", + "setSubscriptionParams(uint256,(uint72,uint40))": "ff19d9df", + "subscribeToCollection(uint256,(uint72,uint40))": "d3c52389" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"InvalidSubscriptionParams\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"}],\"name\":\"OnGoingCollectionSubscriptions\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"ProctedDataInSubscription\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAvailableInSubscription\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"endDate\",\"type\":\"uint48\"}],\"name\":\"NewSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"indexed\":false,\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"NewSubscriptionParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataAddedForSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collectionTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"protectedData\",\"type\":\"address\"}],\"name\":\"ProtectedDataRemovedFromSubscription\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"removeProtectedDataFromSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protectedData\",\"type\":\"address\"}],\"name\":\"setProtectedDataToSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"_subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"setSubscriptionParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_collectionTokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint72\",\"name\":\"price\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"duration\",\"type\":\"uint40\"}],\"internalType\":\"struct ISubscription.SubscriptionParams\",\"name\":\"_subscriptionParams\",\"type\":\"tuple\"}],\"name\":\"subscribeToCollection\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidSubscriptionParams(uint256,(uint72,uint40))\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"subscriptionParams\":\"- Current subscription params\"}}],\"OnGoingCollectionSubscriptions(uint256)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection with ongoing subscriptions.\"}}],\"ProctedDataInSubscription(uint256,address)\":[{\"params\":{\"_collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"_protectedData\":\"- The address of the protected data.\"}}],\"ProtectedDataAvailableInSubscription(uint256,address)\":[{\"params\":{\"collectionTokenId\":\"- The ID of the collection containing the protected data.\",\"protectedData\":\"- The address of the protected data available for subscription.\"}}]},\"events\":{\"NewSubscription(uint256,address,uint48)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"endDate\":\"- The end date of the subscription.\",\"subscriber\":\"- The address of the subscriber.\"}},\"NewSubscriptionParams(uint256,(uint72,uint40))\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"subscriptionParams\":\"- The subscription parameters set for the collection.\"}},\"ProtectedDataAddedForSubscription(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}},\"ProtectedDataRemovedFromSubscription(uint256,address)\":{\"params\":{\"collectionTokenId\":\"- The ID of the collection.\",\"protectedData\":\"- The address of the protected data.\"}}},\"kind\":\"dev\",\"methods\":{\"removeProtectedDataFromSubscription(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be removed from the subscription.\"}},\"setProtectedDataToSubscription(address)\":{\"params\":{\"_protectedData\":\"The address of the protected data to be added to the subscription.\"}},\"setSubscriptionParams(uint256,(uint72,uint40))\":{\"params\":{\"_collectionTokenId\":\"The ID of the collection.\",\"_subscriptionParams\":\"The subscription parameters to be set.\"}},\"subscribeToCollection(uint256,(uint72,uint40))\":{\"params\":{\"_collectionTokenId\":\"The unique identifier of the collection to subscribe to.\",\"_subscriptionParams\":\"Additional parameter to prevent front-running attacks, ensuring fair subscription execution.\"},\"returns\":{\"_0\":\"endDate The timestamp when the subscription will expire, indicating the end of access.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"InvalidSubscriptionParams(uint256,(uint72,uint40))\":[{\"notice\":\"Custom revert error indicating that the subscription params set are not valide.\"}],\"OnGoingCollectionSubscriptions(uint256)\":[{\"notice\":\"Custom revert error indicating that there are ongoing subscriptions for the collection.\"}],\"ProctedDataInSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is currently in a subscription.\"}],\"ProtectedDataAvailableInSubscription(uint256,address)\":[{\"notice\":\"Custom revert error indicating that the protected data is available for subscription.\"}]},\"events\":{\"NewSubscription(uint256,address,uint48)\":{\"notice\":\"Event emitted when a new subscription is created for a collection.\"},\"NewSubscriptionParams(uint256,(uint72,uint40))\":{\"notice\":\"Event emitted when new subscription parameters are set for a collection.\"},\"ProtectedDataAddedForSubscription(uint256,address)\":{\"notice\":\"Event emitted when protected data is added to pool of protected data among the collection available for the subscription.\"},\"ProtectedDataRemovedFromSubscription(uint256,address)\":{\"notice\":\"Event emitted when protected data is removed from a subscription.\"}},\"kind\":\"user\",\"methods\":{\"removeProtectedDataFromSubscription(address)\":{\"notice\":\"Remove protected data from the subscription for the specified collection. Subcribers cannot consume the protected data anymore\"},\"setProtectedDataToSubscription(address)\":{\"notice\":\"Set protected data available in the subscription for the specified collection.\"},\"setSubscriptionParams(uint256,(uint72,uint40))\":{\"notice\":\"Set the subscription parameters for a collection.\"},\"subscribeToCollection(uint256,(uint72,uint40))\":{\"notice\":\"Subscribes to a collection using funds from the caller's account balance within the platform (Stacked RLC). Requires prior approval for this contract to spend the subscription amount on behalf of the caller.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISubscription.sol\":\"ISubscription\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ISubscription.sol\":{\"keccak256\":\"0xfbe6e85ec389b738f6f0d863952324e33f6e477cf7513358bc411837b2e3e9e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0afc44b029596a0c382689683e49cc1052db9d3ce70909db001f9870761f7d79\",\"dweb:/ipfs/QmR58hFLW614wFxtToDnQ1uyFbGMc46kmSdeLKncpeH1EA\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/registry/AddOnlyAppWhitelist.sol": { + "AddOnlyAppWhitelist": { + "abi": [ + { + "inputs": [], + "name": "NotAddOnlyAppWhitelistOperator", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "appAddress", + "type": "address" + } + ], + "name": "NewAppAddedToAddOnlyAppWhitelist", + "type": "event" + }, + { + "inputs": [], + "name": "APP_WHITELIST_REGISTRY", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelistRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "addApp", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_app", + "type": "address" + } + ], + "name": "isRegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "purpose", + "type": "uint256" + } + ], + "name": "keyHasPurpose", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c63430008180033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLER PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x570 PUSH2 0x4B PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x6C ADD MSTORE DUP2 DUP2 PUSH2 0x129 ADD MSTORE DUP2 DUP2 PUSH2 0x1BC ADD MSTORE DUP2 DUP2 PUSH2 0x306 ADD MSTORE PUSH2 0x398 ADD MSTORE PUSH2 0x570 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7C236C63 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x93AC9B16 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xD202158D EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8E PUSH2 0x111 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2A1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA2 JUMP JUMPDEST PUSH2 0xDB PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x2BD JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x10C CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x178 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 0x19C SWAP2 SWAP1 PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20B 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 0x22F SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x24C JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x262 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 PUSH1 0x1 PUSH2 0x437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0xF4EF25A4FEF731446D3E674BCF3BD90BBA639303A0B8F40A21401BF5CF8A19BD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 PUSH2 0x2BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 DUP6 SWAP1 SHR DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xFF DUP5 AND SHL AND ISZERO ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x355 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 0x379 SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD PUSH2 0x3CD PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x430 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x450 SWAP1 DUP4 DUP4 PUSH2 0x455 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL NOT AND SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 0xDF DUP9 DUP11 PUSH26 0xE374ADFDCEC15C9C29018563A2C35F6567D14B96CBE6423CE5A SGT PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1461:1465:48:-:0;;;1634:10;1528:117;;1461:1465;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@APP_WHITELIST_REGISTRY_11914": { + "entryPoint": null, + "id": 11914, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_setKeyHasPurpose_12218": { + "entryPoint": 1079, + "id": 12218, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@addApp_11969": { + "entryPoint": 417, + "id": 11969, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@get_9136": { + "entryPoint": null, + "id": 9136, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isRegistered_11991": { + "entryPoint": 673, + "id": 11991, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@keyHasPurpose_12200": { + "entryPoint": 701, + "id": 12200, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@owner_12011": { + "entryPoint": 273, + "id": 12011, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@setTo_9162": { + "entryPoint": 1109, + "id": 9162, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@set_9195": { + "entryPoint": null, + "id": 9195, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@transferOwnership_12037": { + "entryPoint": 747, + "id": 12037, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@unset_9229": { + "entryPoint": null, + "id": 9229, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 1212, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address_fromMemory": { + "entryPoint": 1275, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 1304, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_uint256": { + "entryPoint": 1241, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "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_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_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_AddOnlyAppWhitelistRegistry_$12170__to_t_address__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 + }, + "validator_revert_address": { + "entryPoint": 1188, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:2676:51", + "nodeType": "YulBlock", + "src": "0:2676:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "152:102:51", + "nodeType": "YulBlock", + "src": "152:102:51", + "statements": [ + { + "nativeSrc": "162:26:51", + "nodeType": "YulAssignment", + "src": "162:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "174:9:51", + "nodeType": "YulIdentifier", + "src": "174:9:51" + }, + { + "kind": "number", + "nativeSrc": "185:2:51", + "nodeType": "YulLiteral", + "src": "185:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "170:3:51", + "nodeType": "YulIdentifier", + "src": "170:3:51" + }, + "nativeSrc": "170:18:51", + "nodeType": "YulFunctionCall", + "src": "170:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "162:4:51", + "nodeType": "YulIdentifier", + "src": "162:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "204:9:51", + "nodeType": "YulIdentifier", + "src": "204:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "219:6:51", + "nodeType": "YulIdentifier", + "src": "219:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "235:3:51", + "nodeType": "YulLiteral", + "src": "235:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "240:1:51", + "nodeType": "YulLiteral", + "src": "240:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "231:3:51", + "nodeType": "YulIdentifier", + "src": "231:3:51" + }, + "nativeSrc": "231:11:51", + "nodeType": "YulFunctionCall", + "src": "231:11:51" + }, + { + "kind": "number", + "nativeSrc": "244:1:51", + "nodeType": "YulLiteral", + "src": "244:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "227:3:51", + "nodeType": "YulIdentifier", + "src": "227:3:51" + }, + "nativeSrc": "227:19:51", + "nodeType": "YulFunctionCall", + "src": "227:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "215:3:51", + "nodeType": "YulIdentifier", + "src": "215:3:51" + }, + "nativeSrc": "215:32:51", + "nodeType": "YulFunctionCall", + "src": "215:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "197:6:51", + "nodeType": "YulIdentifier", + "src": "197:6:51" + }, + "nativeSrc": "197:51:51", + "nodeType": "YulFunctionCall", + "src": "197:51:51" + }, + "nativeSrc": "197:51:51", + "nodeType": "YulExpressionStatement", + "src": "197:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_AddOnlyAppWhitelistRegistry_$12170__to_t_address__fromStack_reversed", + "nativeSrc": "14:240:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "121:9:51", + "nodeType": "YulTypedName", + "src": "121:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "132:6:51", + "nodeType": "YulTypedName", + "src": "132:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "143:4:51", + "nodeType": "YulTypedName", + "src": "143:4:51", + "type": "" + } + ], + "src": "14:240:51" + }, + { + "body": { + "nativeSrc": "360:102:51", + "nodeType": "YulBlock", + "src": "360:102:51", + "statements": [ + { + "nativeSrc": "370:26:51", + "nodeType": "YulAssignment", + "src": "370:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "382:9:51", + "nodeType": "YulIdentifier", + "src": "382:9:51" + }, + { + "kind": "number", + "nativeSrc": "393:2:51", + "nodeType": "YulLiteral", + "src": "393:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "378:3:51", + "nodeType": "YulIdentifier", + "src": "378:3:51" + }, + "nativeSrc": "378:18:51", + "nodeType": "YulFunctionCall", + "src": "378:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "370:4:51", + "nodeType": "YulIdentifier", + "src": "370:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "412:9:51", + "nodeType": "YulIdentifier", + "src": "412:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "427:6:51", + "nodeType": "YulIdentifier", + "src": "427:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "443:3:51", + "nodeType": "YulLiteral", + "src": "443:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "448:1:51", + "nodeType": "YulLiteral", + "src": "448:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "439:3:51", + "nodeType": "YulIdentifier", + "src": "439:3:51" + }, + "nativeSrc": "439:11:51", + "nodeType": "YulFunctionCall", + "src": "439:11:51" + }, + { + "kind": "number", + "nativeSrc": "452:1:51", + "nodeType": "YulLiteral", + "src": "452:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "435:3:51", + "nodeType": "YulIdentifier", + "src": "435:3:51" + }, + "nativeSrc": "435:19:51", + "nodeType": "YulFunctionCall", + "src": "435:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "423:3:51", + "nodeType": "YulIdentifier", + "src": "423:3:51" + }, + "nativeSrc": "423:32:51", + "nodeType": "YulFunctionCall", + "src": "423:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "405:6:51", + "nodeType": "YulIdentifier", + "src": "405:6:51" + }, + "nativeSrc": "405:51:51", + "nodeType": "YulFunctionCall", + "src": "405:51:51" + }, + "nativeSrc": "405:51:51", + "nodeType": "YulExpressionStatement", + "src": "405:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "259:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "329:9:51", + "nodeType": "YulTypedName", + "src": "329:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "340:6:51", + "nodeType": "YulTypedName", + "src": "340:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "351:4:51", + "nodeType": "YulTypedName", + "src": "351:4:51", + "type": "" + } + ], + "src": "259:203:51" + }, + { + "body": { + "nativeSrc": "512:86:51", + "nodeType": "YulBlock", + "src": "512:86:51", + "statements": [ + { + "body": { + "nativeSrc": "576:16:51", + "nodeType": "YulBlock", + "src": "576:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "585:1:51", + "nodeType": "YulLiteral", + "src": "585:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "588:1:51", + "nodeType": "YulLiteral", + "src": "588:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "578:6:51", + "nodeType": "YulIdentifier", + "src": "578:6:51" + }, + "nativeSrc": "578:12:51", + "nodeType": "YulFunctionCall", + "src": "578:12:51" + }, + "nativeSrc": "578:12:51", + "nodeType": "YulExpressionStatement", + "src": "578:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "535:5:51", + "nodeType": "YulIdentifier", + "src": "535:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "546:5:51", + "nodeType": "YulIdentifier", + "src": "546:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "561:3:51", + "nodeType": "YulLiteral", + "src": "561:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "566:1:51", + "nodeType": "YulLiteral", + "src": "566:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "557:3:51", + "nodeType": "YulIdentifier", + "src": "557:3:51" + }, + "nativeSrc": "557:11:51", + "nodeType": "YulFunctionCall", + "src": "557:11:51" + }, + { + "kind": "number", + "nativeSrc": "570:1:51", + "nodeType": "YulLiteral", + "src": "570:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "553:3:51", + "nodeType": "YulIdentifier", + "src": "553:3:51" + }, + "nativeSrc": "553:19:51", + "nodeType": "YulFunctionCall", + "src": "553:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "542:3:51", + "nodeType": "YulIdentifier", + "src": "542:3:51" + }, + "nativeSrc": "542:31:51", + "nodeType": "YulFunctionCall", + "src": "542:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "532:2:51", + "nodeType": "YulIdentifier", + "src": "532:2:51" + }, + "nativeSrc": "532:42:51", + "nodeType": "YulFunctionCall", + "src": "532:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "525:6:51", + "nodeType": "YulIdentifier", + "src": "525:6:51" + }, + "nativeSrc": "525:50:51", + "nodeType": "YulFunctionCall", + "src": "525:50:51" + }, + "nativeSrc": "522:70:51", + "nodeType": "YulIf", + "src": "522:70:51" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "467:131:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "501:5:51", + "nodeType": "YulTypedName", + "src": "501:5:51", + "type": "" + } + ], + "src": "467:131:51" + }, + { + "body": { + "nativeSrc": "673:177:51", + "nodeType": "YulBlock", + "src": "673:177:51", + "statements": [ + { + "body": { + "nativeSrc": "719:16:51", + "nodeType": "YulBlock", + "src": "719:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "728:1:51", + "nodeType": "YulLiteral", + "src": "728:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "731:1:51", + "nodeType": "YulLiteral", + "src": "731:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "721:6:51", + "nodeType": "YulIdentifier", + "src": "721:6:51" + }, + "nativeSrc": "721:12:51", + "nodeType": "YulFunctionCall", + "src": "721:12:51" + }, + "nativeSrc": "721:12:51", + "nodeType": "YulExpressionStatement", + "src": "721:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "694:7:51", + "nodeType": "YulIdentifier", + "src": "694:7:51" + }, + { + "name": "headStart", + "nativeSrc": "703:9:51", + "nodeType": "YulIdentifier", + "src": "703:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "690:3:51", + "nodeType": "YulIdentifier", + "src": "690:3:51" + }, + "nativeSrc": "690:23:51", + "nodeType": "YulFunctionCall", + "src": "690:23:51" + }, + { + "kind": "number", + "nativeSrc": "715:2:51", + "nodeType": "YulLiteral", + "src": "715:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "686:3:51", + "nodeType": "YulIdentifier", + "src": "686:3:51" + }, + "nativeSrc": "686:32:51", + "nodeType": "YulFunctionCall", + "src": "686:32:51" + }, + "nativeSrc": "683:52:51", + "nodeType": "YulIf", + "src": "683:52:51" + }, + { + "nativeSrc": "744:36:51", + "nodeType": "YulVariableDeclaration", + "src": "744:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "770:9:51", + "nodeType": "YulIdentifier", + "src": "770:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "757:12:51", + "nodeType": "YulIdentifier", + "src": "757:12:51" + }, + "nativeSrc": "757:23:51", + "nodeType": "YulFunctionCall", + "src": "757:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "748:5:51", + "nodeType": "YulTypedName", + "src": "748:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "814:5:51", + "nodeType": "YulIdentifier", + "src": "814:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "789:24:51", + "nodeType": "YulIdentifier", + "src": "789:24:51" + }, + "nativeSrc": "789:31:51", + "nodeType": "YulFunctionCall", + "src": "789:31:51" + }, + "nativeSrc": "789:31:51", + "nodeType": "YulExpressionStatement", + "src": "789:31:51" + }, + { + "nativeSrc": "829:15:51", + "nodeType": "YulAssignment", + "src": "829:15:51", + "value": { + "name": "value", + "nativeSrc": "839:5:51", + "nodeType": "YulIdentifier", + "src": "839:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "829:6:51", + "nodeType": "YulIdentifier", + "src": "829:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "603:247:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "639:9:51", + "nodeType": "YulTypedName", + "src": "639:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "650:7:51", + "nodeType": "YulTypedName", + "src": "650:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "662:6:51", + "nodeType": "YulTypedName", + "src": "662:6:51", + "type": "" + } + ], + "src": "603:247:51" + }, + { + "body": { + "nativeSrc": "950:92:51", + "nodeType": "YulBlock", + "src": "950:92:51", + "statements": [ + { + "nativeSrc": "960:26:51", + "nodeType": "YulAssignment", + "src": "960:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "972:9:51", + "nodeType": "YulIdentifier", + "src": "972:9:51" + }, + { + "kind": "number", + "nativeSrc": "983:2:51", + "nodeType": "YulLiteral", + "src": "983:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "968:3:51", + "nodeType": "YulIdentifier", + "src": "968:3:51" + }, + "nativeSrc": "968:18:51", + "nodeType": "YulFunctionCall", + "src": "968:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "960:4:51", + "nodeType": "YulIdentifier", + "src": "960:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1002:9:51", + "nodeType": "YulIdentifier", + "src": "1002:9:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1027:6:51", + "nodeType": "YulIdentifier", + "src": "1027:6:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1020:6:51", + "nodeType": "YulIdentifier", + "src": "1020:6:51" + }, + "nativeSrc": "1020:14:51", + "nodeType": "YulFunctionCall", + "src": "1020:14:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1013:6:51", + "nodeType": "YulIdentifier", + "src": "1013:6:51" + }, + "nativeSrc": "1013:22:51", + "nodeType": "YulFunctionCall", + "src": "1013:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "995:6:51", + "nodeType": "YulIdentifier", + "src": "995:6:51" + }, + "nativeSrc": "995:41:51", + "nodeType": "YulFunctionCall", + "src": "995:41:51" + }, + "nativeSrc": "995:41:51", + "nodeType": "YulExpressionStatement", + "src": "995:41:51" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "855:187:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "919:9:51", + "nodeType": "YulTypedName", + "src": "919:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "930:6:51", + "nodeType": "YulTypedName", + "src": "930:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "941:4:51", + "nodeType": "YulTypedName", + "src": "941:4:51", + "type": "" + } + ], + "src": "855:187:51" + }, + { + "body": { + "nativeSrc": "1134:161:51", + "nodeType": "YulBlock", + "src": "1134:161:51", + "statements": [ + { + "body": { + "nativeSrc": "1180:16:51", + "nodeType": "YulBlock", + "src": "1180:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1189:1:51", + "nodeType": "YulLiteral", + "src": "1189:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1192:1:51", + "nodeType": "YulLiteral", + "src": "1192:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1182:6:51", + "nodeType": "YulIdentifier", + "src": "1182:6:51" + }, + "nativeSrc": "1182:12:51", + "nodeType": "YulFunctionCall", + "src": "1182:12:51" + }, + "nativeSrc": "1182:12:51", + "nodeType": "YulExpressionStatement", + "src": "1182:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1155:7:51", + "nodeType": "YulIdentifier", + "src": "1155:7:51" + }, + { + "name": "headStart", + "nativeSrc": "1164:9:51", + "nodeType": "YulIdentifier", + "src": "1164:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1151:3:51", + "nodeType": "YulIdentifier", + "src": "1151:3:51" + }, + "nativeSrc": "1151:23:51", + "nodeType": "YulFunctionCall", + "src": "1151:23:51" + }, + { + "kind": "number", + "nativeSrc": "1176:2:51", + "nodeType": "YulLiteral", + "src": "1176:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1147:3:51", + "nodeType": "YulIdentifier", + "src": "1147:3:51" + }, + "nativeSrc": "1147:32:51", + "nodeType": "YulFunctionCall", + "src": "1147:32:51" + }, + "nativeSrc": "1144:52:51", + "nodeType": "YulIf", + "src": "1144:52:51" + }, + { + "nativeSrc": "1205:33:51", + "nodeType": "YulAssignment", + "src": "1205:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1228:9:51", + "nodeType": "YulIdentifier", + "src": "1228:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1215:12:51", + "nodeType": "YulIdentifier", + "src": "1215:12:51" + }, + "nativeSrc": "1215:23:51", + "nodeType": "YulFunctionCall", + "src": "1215:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1205:6:51", + "nodeType": "YulIdentifier", + "src": "1205:6:51" + } + ] + }, + { + "nativeSrc": "1247:42:51", + "nodeType": "YulAssignment", + "src": "1247:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1274:9:51", + "nodeType": "YulIdentifier", + "src": "1274:9:51" + }, + { + "kind": "number", + "nativeSrc": "1285:2:51", + "nodeType": "YulLiteral", + "src": "1285:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1270:3:51", + "nodeType": "YulIdentifier", + "src": "1270:3:51" + }, + "nativeSrc": "1270:18:51", + "nodeType": "YulFunctionCall", + "src": "1270:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1257:12:51", + "nodeType": "YulIdentifier", + "src": "1257:12:51" + }, + "nativeSrc": "1257:32:51", + "nodeType": "YulFunctionCall", + "src": "1257:32:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1247:6:51", + "nodeType": "YulIdentifier", + "src": "1247:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256", + "nativeSrc": "1047:248:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1092:9:51", + "nodeType": "YulTypedName", + "src": "1092:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1103:7:51", + "nodeType": "YulTypedName", + "src": "1103:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1115:6:51", + "nodeType": "YulTypedName", + "src": "1115:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1123:6:51", + "nodeType": "YulTypedName", + "src": "1123:6:51", + "type": "" + } + ], + "src": "1047:248:51" + }, + { + "body": { + "nativeSrc": "1401:76:51", + "nodeType": "YulBlock", + "src": "1401:76:51", + "statements": [ + { + "nativeSrc": "1411:26:51", + "nodeType": "YulAssignment", + "src": "1411:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1423:9:51", + "nodeType": "YulIdentifier", + "src": "1423:9:51" + }, + { + "kind": "number", + "nativeSrc": "1434:2:51", + "nodeType": "YulLiteral", + "src": "1434:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1419:3:51", + "nodeType": "YulIdentifier", + "src": "1419:3:51" + }, + "nativeSrc": "1419:18:51", + "nodeType": "YulFunctionCall", + "src": "1419:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1411:4:51", + "nodeType": "YulIdentifier", + "src": "1411:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1453:9:51", + "nodeType": "YulIdentifier", + "src": "1453:9:51" + }, + { + "name": "value0", + "nativeSrc": "1464:6:51", + "nodeType": "YulIdentifier", + "src": "1464:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1446:6:51", + "nodeType": "YulIdentifier", + "src": "1446:6:51" + }, + "nativeSrc": "1446:25:51", + "nodeType": "YulFunctionCall", + "src": "1446:25:51" + }, + "nativeSrc": "1446:25:51", + "nodeType": "YulExpressionStatement", + "src": "1446:25:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1300:177:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1370:9:51", + "nodeType": "YulTypedName", + "src": "1370:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1381:6:51", + "nodeType": "YulTypedName", + "src": "1381:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1392:4:51", + "nodeType": "YulTypedName", + "src": "1392:4:51", + "type": "" + } + ], + "src": "1300:177:51" + }, + { + "body": { + "nativeSrc": "1563:170:51", + "nodeType": "YulBlock", + "src": "1563:170:51", + "statements": [ + { + "body": { + "nativeSrc": "1609:16:51", + "nodeType": "YulBlock", + "src": "1609:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1618:1:51", + "nodeType": "YulLiteral", + "src": "1618:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1621:1:51", + "nodeType": "YulLiteral", + "src": "1621:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1611:6:51", + "nodeType": "YulIdentifier", + "src": "1611:6:51" + }, + "nativeSrc": "1611:12:51", + "nodeType": "YulFunctionCall", + "src": "1611:12:51" + }, + "nativeSrc": "1611:12:51", + "nodeType": "YulExpressionStatement", + "src": "1611:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1584:7:51", + "nodeType": "YulIdentifier", + "src": "1584:7:51" + }, + { + "name": "headStart", + "nativeSrc": "1593:9:51", + "nodeType": "YulIdentifier", + "src": "1593:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1580:3:51", + "nodeType": "YulIdentifier", + "src": "1580:3:51" + }, + "nativeSrc": "1580:23:51", + "nodeType": "YulFunctionCall", + "src": "1580:23:51" + }, + { + "kind": "number", + "nativeSrc": "1605:2:51", + "nodeType": "YulLiteral", + "src": "1605:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1576:3:51", + "nodeType": "YulIdentifier", + "src": "1576:3:51" + }, + "nativeSrc": "1576:32:51", + "nodeType": "YulFunctionCall", + "src": "1576:32:51" + }, + "nativeSrc": "1573:52:51", + "nodeType": "YulIf", + "src": "1573:52:51" + }, + { + "nativeSrc": "1634:29:51", + "nodeType": "YulVariableDeclaration", + "src": "1634:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1653:9:51", + "nodeType": "YulIdentifier", + "src": "1653:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1647:5:51", + "nodeType": "YulIdentifier", + "src": "1647:5:51" + }, + "nativeSrc": "1647:16:51", + "nodeType": "YulFunctionCall", + "src": "1647:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "1638:5:51", + "nodeType": "YulTypedName", + "src": "1638:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1697:5:51", + "nodeType": "YulIdentifier", + "src": "1697:5:51" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "1672:24:51", + "nodeType": "YulIdentifier", + "src": "1672:24:51" + }, + "nativeSrc": "1672:31:51", + "nodeType": "YulFunctionCall", + "src": "1672:31:51" + }, + "nativeSrc": "1672:31:51", + "nodeType": "YulExpressionStatement", + "src": "1672:31:51" + }, + { + "nativeSrc": "1712:15:51", + "nodeType": "YulAssignment", + "src": "1712:15:51", + "value": { + "name": "value", + "nativeSrc": "1722:5:51", + "nodeType": "YulIdentifier", + "src": "1722:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1712:6:51", + "nodeType": "YulIdentifier", + "src": "1712:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address_fromMemory", + "nativeSrc": "1482:251:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1529:9:51", + "nodeType": "YulTypedName", + "src": "1529:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1540:7:51", + "nodeType": "YulTypedName", + "src": "1540:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1552:6:51", + "nodeType": "YulTypedName", + "src": "1552:6:51", + "type": "" + } + ], + "src": "1482:251:51" + }, + { + "body": { + "nativeSrc": "1867:145:51", + "nodeType": "YulBlock", + "src": "1867:145:51", + "statements": [ + { + "nativeSrc": "1877:26:51", + "nodeType": "YulAssignment", + "src": "1877:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1889:9:51", + "nodeType": "YulIdentifier", + "src": "1889:9:51" + }, + { + "kind": "number", + "nativeSrc": "1900:2:51", + "nodeType": "YulLiteral", + "src": "1900:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1885:3:51", + "nodeType": "YulIdentifier", + "src": "1885:3:51" + }, + "nativeSrc": "1885:18:51", + "nodeType": "YulFunctionCall", + "src": "1885:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1877:4:51", + "nodeType": "YulIdentifier", + "src": "1877:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1919:9:51", + "nodeType": "YulIdentifier", + "src": "1919:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1934:6:51", + "nodeType": "YulIdentifier", + "src": "1934:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1950:3:51", + "nodeType": "YulLiteral", + "src": "1950:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1955:1:51", + "nodeType": "YulLiteral", + "src": "1955:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1946:3:51", + "nodeType": "YulIdentifier", + "src": "1946:3:51" + }, + "nativeSrc": "1946:11:51", + "nodeType": "YulFunctionCall", + "src": "1946:11:51" + }, + { + "kind": "number", + "nativeSrc": "1959:1:51", + "nodeType": "YulLiteral", + "src": "1959:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1942:3:51", + "nodeType": "YulIdentifier", + "src": "1942:3:51" + }, + "nativeSrc": "1942:19:51", + "nodeType": "YulFunctionCall", + "src": "1942:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1930:3:51", + "nodeType": "YulIdentifier", + "src": "1930:3:51" + }, + "nativeSrc": "1930:32:51", + "nodeType": "YulFunctionCall", + "src": "1930:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1912:6:51", + "nodeType": "YulIdentifier", + "src": "1912:6:51" + }, + "nativeSrc": "1912:51:51", + "nodeType": "YulFunctionCall", + "src": "1912:51:51" + }, + "nativeSrc": "1912:51:51", + "nodeType": "YulExpressionStatement", + "src": "1912:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1983:9:51", + "nodeType": "YulIdentifier", + "src": "1983:9:51" + }, + { + "kind": "number", + "nativeSrc": "1994:2:51", + "nodeType": "YulLiteral", + "src": "1994:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1979:3:51", + "nodeType": "YulIdentifier", + "src": "1979:3:51" + }, + "nativeSrc": "1979:18:51", + "nodeType": "YulFunctionCall", + "src": "1979:18:51" + }, + { + "name": "value1", + "nativeSrc": "1999:6:51", + "nodeType": "YulIdentifier", + "src": "1999:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1972:6:51", + "nodeType": "YulIdentifier", + "src": "1972:6:51" + }, + "nativeSrc": "1972:34:51", + "nodeType": "YulFunctionCall", + "src": "1972:34:51" + }, + "nativeSrc": "1972:34:51", + "nodeType": "YulExpressionStatement", + "src": "1972:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "1738:274:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1828:9:51", + "nodeType": "YulTypedName", + "src": "1828:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1839:6:51", + "nodeType": "YulTypedName", + "src": "1839:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1847:6:51", + "nodeType": "YulTypedName", + "src": "1847:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1858:4:51", + "nodeType": "YulTypedName", + "src": "1858:4:51", + "type": "" + } + ], + "src": "1738:274:51" + }, + { + "body": { + "nativeSrc": "2095:199:51", + "nodeType": "YulBlock", + "src": "2095:199:51", + "statements": [ + { + "body": { + "nativeSrc": "2141:16:51", + "nodeType": "YulBlock", + "src": "2141:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2150:1:51", + "nodeType": "YulLiteral", + "src": "2150:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2153:1:51", + "nodeType": "YulLiteral", + "src": "2153:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2143:6:51", + "nodeType": "YulIdentifier", + "src": "2143:6:51" + }, + "nativeSrc": "2143:12:51", + "nodeType": "YulFunctionCall", + "src": "2143:12:51" + }, + "nativeSrc": "2143:12:51", + "nodeType": "YulExpressionStatement", + "src": "2143:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2116:7:51", + "nodeType": "YulIdentifier", + "src": "2116:7:51" + }, + { + "name": "headStart", + "nativeSrc": "2125:9:51", + "nodeType": "YulIdentifier", + "src": "2125:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2112:3:51", + "nodeType": "YulIdentifier", + "src": "2112:3:51" + }, + "nativeSrc": "2112:23:51", + "nodeType": "YulFunctionCall", + "src": "2112:23:51" + }, + { + "kind": "number", + "nativeSrc": "2137:2:51", + "nodeType": "YulLiteral", + "src": "2137:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2108:3:51", + "nodeType": "YulIdentifier", + "src": "2108:3:51" + }, + "nativeSrc": "2108:32:51", + "nodeType": "YulFunctionCall", + "src": "2108:32:51" + }, + "nativeSrc": "2105:52:51", + "nodeType": "YulIf", + "src": "2105:52:51" + }, + { + "nativeSrc": "2166:29:51", + "nodeType": "YulVariableDeclaration", + "src": "2166:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2185:9:51", + "nodeType": "YulIdentifier", + "src": "2185:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2179:5:51", + "nodeType": "YulIdentifier", + "src": "2179:5:51" + }, + "nativeSrc": "2179:16:51", + "nodeType": "YulFunctionCall", + "src": "2179:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2170:5:51", + "nodeType": "YulTypedName", + "src": "2170:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2248:16:51", + "nodeType": "YulBlock", + "src": "2248:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2257:1:51", + "nodeType": "YulLiteral", + "src": "2257:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2260:1:51", + "nodeType": "YulLiteral", + "src": "2260:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2250:6:51", + "nodeType": "YulIdentifier", + "src": "2250:6:51" + }, + "nativeSrc": "2250:12:51", + "nodeType": "YulFunctionCall", + "src": "2250:12:51" + }, + "nativeSrc": "2250:12:51", + "nodeType": "YulExpressionStatement", + "src": "2250:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2217:5:51", + "nodeType": "YulIdentifier", + "src": "2217:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2238:5:51", + "nodeType": "YulIdentifier", + "src": "2238:5:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2231:6:51", + "nodeType": "YulIdentifier", + "src": "2231:6:51" + }, + "nativeSrc": "2231:13:51", + "nodeType": "YulFunctionCall", + "src": "2231:13:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2224:6:51", + "nodeType": "YulIdentifier", + "src": "2224:6:51" + }, + "nativeSrc": "2224:21:51", + "nodeType": "YulFunctionCall", + "src": "2224:21:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2214:2:51", + "nodeType": "YulIdentifier", + "src": "2214:2:51" + }, + "nativeSrc": "2214:32:51", + "nodeType": "YulFunctionCall", + "src": "2214:32:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2207:6:51", + "nodeType": "YulIdentifier", + "src": "2207:6:51" + }, + "nativeSrc": "2207:40:51", + "nodeType": "YulFunctionCall", + "src": "2207:40:51" + }, + "nativeSrc": "2204:60:51", + "nodeType": "YulIf", + "src": "2204:60:51" + }, + { + "nativeSrc": "2273:15:51", + "nodeType": "YulAssignment", + "src": "2273:15:51", + "value": { + "name": "value", + "nativeSrc": "2283:5:51", + "nodeType": "YulIdentifier", + "src": "2283:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2273:6:51", + "nodeType": "YulIdentifier", + "src": "2273:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "2017:277:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2061:9:51", + "nodeType": "YulTypedName", + "src": "2061:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2072:7:51", + "nodeType": "YulTypedName", + "src": "2072:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2084:6:51", + "nodeType": "YulTypedName", + "src": "2084:6:51", + "type": "" + } + ], + "src": "2017:277:51" + }, + { + "body": { + "nativeSrc": "2456:218:51", + "nodeType": "YulBlock", + "src": "2456:218:51", + "statements": [ + { + "nativeSrc": "2466:26:51", + "nodeType": "YulAssignment", + "src": "2466:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2478:9:51", + "nodeType": "YulIdentifier", + "src": "2478:9:51" + }, + { + "kind": "number", + "nativeSrc": "2489:2:51", + "nodeType": "YulLiteral", + "src": "2489:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2474:3:51", + "nodeType": "YulIdentifier", + "src": "2474:3:51" + }, + "nativeSrc": "2474:18:51", + "nodeType": "YulFunctionCall", + "src": "2474:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2466:4:51", + "nodeType": "YulIdentifier", + "src": "2466:4:51" + } + ] + }, + { + "nativeSrc": "2501:29:51", + "nodeType": "YulVariableDeclaration", + "src": "2501:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2519:3:51", + "nodeType": "YulLiteral", + "src": "2519:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2524:1:51", + "nodeType": "YulLiteral", + "src": "2524:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2515:3:51", + "nodeType": "YulIdentifier", + "src": "2515:3:51" + }, + "nativeSrc": "2515:11:51", + "nodeType": "YulFunctionCall", + "src": "2515:11:51" + }, + { + "kind": "number", + "nativeSrc": "2528:1:51", + "nodeType": "YulLiteral", + "src": "2528:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2511:3:51", + "nodeType": "YulIdentifier", + "src": "2511:3:51" + }, + "nativeSrc": "2511:19:51", + "nodeType": "YulFunctionCall", + "src": "2511:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "2505:2:51", + "nodeType": "YulTypedName", + "src": "2505:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2546:9:51", + "nodeType": "YulIdentifier", + "src": "2546:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2561:6:51", + "nodeType": "YulIdentifier", + "src": "2561:6:51" + }, + { + "name": "_1", + "nativeSrc": "2569:2:51", + "nodeType": "YulIdentifier", + "src": "2569:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2557:3:51", + "nodeType": "YulIdentifier", + "src": "2557:3:51" + }, + "nativeSrc": "2557:15:51", + "nodeType": "YulFunctionCall", + "src": "2557:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2539:6:51", + "nodeType": "YulIdentifier", + "src": "2539:6:51" + }, + "nativeSrc": "2539:34:51", + "nodeType": "YulFunctionCall", + "src": "2539:34:51" + }, + "nativeSrc": "2539:34:51", + "nodeType": "YulExpressionStatement", + "src": "2539:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2593:9:51", + "nodeType": "YulIdentifier", + "src": "2593:9:51" + }, + { + "kind": "number", + "nativeSrc": "2604:2:51", + "nodeType": "YulLiteral", + "src": "2604:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2589:3:51", + "nodeType": "YulIdentifier", + "src": "2589:3:51" + }, + "nativeSrc": "2589:18:51", + "nodeType": "YulFunctionCall", + "src": "2589:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2613:6:51", + "nodeType": "YulIdentifier", + "src": "2613:6:51" + }, + { + "name": "_1", + "nativeSrc": "2621:2:51", + "nodeType": "YulIdentifier", + "src": "2621:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2609:3:51", + "nodeType": "YulIdentifier", + "src": "2609:3:51" + }, + "nativeSrc": "2609:15:51", + "nodeType": "YulFunctionCall", + "src": "2609:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2582:6:51", + "nodeType": "YulIdentifier", + "src": "2582:6:51" + }, + "nativeSrc": "2582:43:51", + "nodeType": "YulFunctionCall", + "src": "2582:43:51" + }, + "nativeSrc": "2582:43:51", + "nodeType": "YulExpressionStatement", + "src": "2582:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2645:9:51", + "nodeType": "YulIdentifier", + "src": "2645:9:51" + }, + { + "kind": "number", + "nativeSrc": "2656:2:51", + "nodeType": "YulLiteral", + "src": "2656:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2641:3:51", + "nodeType": "YulIdentifier", + "src": "2641:3:51" + }, + "nativeSrc": "2641:18:51", + "nodeType": "YulFunctionCall", + "src": "2641:18:51" + }, + { + "name": "value2", + "nativeSrc": "2661:6:51", + "nodeType": "YulIdentifier", + "src": "2661:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2634:6:51", + "nodeType": "YulIdentifier", + "src": "2634:6:51" + }, + "nativeSrc": "2634:34:51", + "nodeType": "YulFunctionCall", + "src": "2634:34:51" + }, + "nativeSrc": "2634:34:51", + "nodeType": "YulExpressionStatement", + "src": "2634:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "2299:375:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2409:9:51", + "nodeType": "YulTypedName", + "src": "2409:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2420:6:51", + "nodeType": "YulTypedName", + "src": "2420:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2428:6:51", + "nodeType": "YulTypedName", + "src": "2428:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2436:6:51", + "nodeType": "YulTypedName", + "src": "2436:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2447:4:51", + "nodeType": "YulTypedName", + "src": "2447:4:51", + "type": "" + } + ], + "src": "2299:375:51" + } + ] + }, + "contents": "{\n { }\n function abi_encode_tuple_t_contract$_AddOnlyAppWhitelistRegistry_$12170__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_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 validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\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_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_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 let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "11914": [ + { + "length": 32, + "start": 108 + }, + { + "length": 32, + "start": 297 + }, + { + "length": 32, + "start": 444 + }, + { + "length": 32, + "start": 774 + }, + { + "length": 32, + "start": 920 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7C236C63 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x93AC9B16 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xD202158D EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8E PUSH2 0x111 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2A1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA2 JUMP JUMPDEST PUSH2 0xDB PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x2BD JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x10C CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x178 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 0x19C SWAP2 SWAP1 PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20B 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 0x22F SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x24C JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x262 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 PUSH1 0x1 PUSH2 0x437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0xF4EF25A4FEF731446D3E674BCF3BD90BBA639303A0B8F40A21401BF5CF8A19BD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 PUSH2 0x2BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 DUP6 SWAP1 SHR DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xFF DUP5 AND SHL AND ISZERO ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x355 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 0x379 SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD PUSH2 0x3CD PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x430 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x450 SWAP1 DUP4 DUP4 PUSH2 0x455 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL NOT AND SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 0xDF DUP9 DUP11 PUSH26 0xE374ADFDCEC15C9C29018563A2C35F6567D14B96CBE6423CE5A SGT PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1461:1465:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:117;;;;;;;;-1:-1:-1;;;;;215:32:51;;;197:51;;185:2;170:18;1528:117:48;;;;;;;;2615:134;;;:::i;2250:198::-;;;;;;:::i;:::-;;:::i;:::-;;2454:155;;;;;;:::i;:::-;;:::i;:::-;;;1020:14:51;;1013:22;995:41;;983:2;968:18;2454:155:48;855:187:51;1513:128:50;;;;;;:::i;:::-;;:::i;2755:169:48:-;;;;;;:::i;:::-;;:::i;2615:134::-;2679:63;;-1:-1:-1;;;2679:63:48;;2734:4;2679:63;;;1446:25:51;2653:7:48;;2679:22;-1:-1:-1;;;;;2679:30:48;;;;1419:18:51;;2679:63:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2672:70;;2615:134;:::o;2250:198::-;1838:80;;-1:-1:-1;;;1838:80:48;;1874:10;1838:80;;;1912:51:51;1910:4:48;1979:18:51;;;1972:34;1838:22:48;-1:-1:-1;;;;;1838:35:48;;;;1885:18:51;;1838:80:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1833:151;;1941:32;;-1:-1:-1;;;1941:32:48;;;;;;;;;;;1833:151;2310:78:::1;-1:-1:-1::0;;;;;2336:22:48;::::1;1791:1;2383:4;2310:17;:78::i;:::-;2403:38;::::0;-1:-1:-1;;;;;215:32:51;;197:51;;2403:38:48::1;::::0;185:2:51;170:18;2403:38:48::1;;;;;;;2250:198:::0;:::o;2454:155::-;2511:4;2534:68;-1:-1:-1;;;;;2556:22:48;;1791:1;2534:13;:68::i;:::-;2527:75;2454:155;-1:-1:-1;;2454:155:48:o;1513:128:50:-;1587:4;1610:11;;;;;;;;;;;1144:1:34;1135:10;;;1206:20;;;;;;;;1170:1;1184:4;1176:12;;1170:19;1206:27;:32;;1610:24:50;1603:31;1513:128;-1:-1:-1;;;1513:128:50:o;2755:169:48:-;1838:80;;-1:-1:-1;;;1838:80:48;;1874:10;1838:80;;;1912:51:51;1910:4:48;1979:18:51;;;1972:34;1838:22:48;-1:-1:-1;;;;;1838:35:48;;;;1885:18:51;;1838:80:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1833:151;;1941:32;;-1:-1:-1;;;1941:32:48;;;;;;;;;;;1833:151;2830:22:::1;-1:-1:-1::0;;;;;2830:35:48::1;;2866:7;:5;:7::i;:::-;2830:87;::::0;::::1;::::0;;;-1:-1:-1;;;;;;2830:87:48;;;-1:-1:-1;;;;;2557:15:51;;;2830:87:48::1;::::0;::::1;2539:34:51::0;2609:15;;;2589:18;;;2582:43;2909:4:48::1;2641:18:51::0;;;2634:34;2474:18;;2830:87:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2755:169:::0;:::o;1647:130:50:-;1736:6;:11;;;;;;;;;;:34;;1754:7;1763:6;1736:17;:34::i;:::-;1647:130;;;:::o;1327:195:34:-;1415:5;1411:105;;;1677:1;1668:10;;;1651:14;1732:20;;;;;;;;;;:28;;1703:1;1717:4;1709:12;;1703:19;1732:28;;;1647:130:50;;;:::o;1411:105:34:-;1926:1;1917:10;;;1900:14;1981:20;;;;;;;;;;:29;;1952:1;1966:4;1958:12;;1952:19;2005:5;1981:29;;;1647:130:50;;;:::o;467:131:51:-;-1:-1:-1;;;;;542:31:51;;532:42;;522:70;;588:1;585;578:12;522:70;467:131;:::o;603:247::-;662:6;715:2;703:9;694:7;690:23;686:32;683:52;;;731:1;728;721:12;683:52;770:9;757:23;789:31;814:5;789:31;:::i;1047:248::-;1115:6;1123;1176:2;1164:9;1155:7;1151:23;1147:32;1144:52;;;1192:1;1189;1182:12;1144:52;-1:-1:-1;;1215:23:51;;;1285:2;1270:18;;;1257:32;;-1:-1:-1;1047:248:51:o;1482:251::-;1552:6;1605:2;1593:9;1584:7;1580:23;1576:32;1573:52;;;1621:1;1618;1611:12;1573:52;1653:9;1647:16;1672:31;1697:5;1672:31;:::i;2017:277::-;2084:6;2137:2;2125:9;2116:7;2112:23;2108:32;2105:52;;;2153:1;2150;2143:12;2105:52;2185:9;2179:16;2238:5;2231:13;2224:21;2217:5;2214:32;2204:60;;2260:1;2257;2250:12" + }, + "methodIdentifiers": { + "APP_WHITELIST_REGISTRY()": "7c236c63", + "addApp(address)": "93ac9b16", + "isRegistered(address)": "c3c5a547", + "keyHasPurpose(bytes32,uint256)": "d202158d", + "owner()": "8da5cb5b", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NotAddOnlyAppWhitelistOperator\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"appAddress\",\"type\":\"address\"}],\"name\":\"NewAppAddedToAddOnlyAppWhitelist\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"APP_WHITELIST_REGISTRY\",\"outputs\":[{\"internalType\":\"contract AddOnlyAppWhitelistRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_app\",\"type\":\"address\"}],\"name\":\"addApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_app\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"NewAppAddedToAddOnlyAppWhitelist(address)\":{\"params\":{\"appAddress\":\"- The address added to the AddOnlyAppWhitelist.\"}}},\"kind\":\"dev\",\"methods\":{\"addApp(address)\":{\"params\":{\"_app\":\"- The address of the app to add.\"}},\"isRegistered(address)\":{\"params\":{\"_app\":\"- The address of the app to add.\"}},\"transferOwnership(address)\":{\"params\":{\"newOwner\":\"- The address of the new owner.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"NotAddOnlyAppWhitelistOperator()\":[{\"notice\":\"Custom revert error indicating that the caller is not the autorized operator.\"}]},\"events\":{\"NewAppAddedToAddOnlyAppWhitelist(address)\":{\"notice\":\"Custom revert error indicating that the application is not owned by the contract.\"}},\"kind\":\"user\",\"methods\":{\"addApp(address)\":{\"notice\":\"Allow operator of the whitelist can add an app.\"},\"isRegistered(address)\":{\"notice\":\"Return true if the app is registered or not in the AddOnlyAppWhitelist.\"},\"owner()\":{\"notice\":\"Returns the address of the current owner.\"},\"transferOwnership(address)\":{\"notice\":\"Transfers ownership of the contract to a new address. Only the operator is allow to do that.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/registry/AddOnlyAppWhitelist.sol\":\"AddOnlyAppWhitelist\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x7162fa3c6971aa6f0a70160fed018edbb8b1db3af9b034ef3f7c224c3bdb7431\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f212d25e8f357209838ad7ce8ebc89de79906d9fe580566962e889ecb090e6b4\",\"dweb:/ipfs/QmdbLuLwX24VB1Gdrabke584WyaUkuJSWuDzzuRgqAMFge\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@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/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@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\"]},\"@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]},\"contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0x3effb6bb9745cc98dfcb6b398930e937ac4263bba5da1460b4246a3179675720\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a6eec732266a50449e9da2711cbe05a90c56ba882a8f9f49c466dc04aa130b73\",\"dweb:/ipfs/Qmd7H2Xf2dJpL7kwpruCbqVDc5FmHcL2bt1TjJqAPmegow\"]},\"contracts/registry/AddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x8ee0e756d6de429c33f762938253bdc68f1fbcd3ea5b0d8fdc15405bb4d3d038\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2dbb6f000a728a0f62ef62c003116b749cd023163d33a7f9c4d562770dce4360\",\"dweb:/ipfs/QmSqtcCjgkYcDqS1Kophpb8GP8o1KfP3UbKubZgyfmDnYE\"]},\"contracts/registry/AddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0xaf0d909e9628551500bf88360473de8786accf9dcfcf935df3e1b02647b7b56b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://392008453c6bb059c12f1c6878825d9b92a0cbca9b39d0afb6213bffecb54cd1\",\"dweb:/ipfs/QmaWi5HStss4ehrMo5WFbwTdhTJ2hWsY2GBpfLTwtSo6gC\"]},\"contracts/registry/ERC734.sol\":{\"keccak256\":\"0xd5519a46ebed0a9e9527fb916c0d0dd2f87e8b8e242059b7c254f1141b1a40a3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://92ea72fbeb2d1049466b530ebe96f91c54dc6e53420f687735f19585732abb20\",\"dweb:/ipfs/QmTcyfLdBDk6gH8FkLmeVtWH94i9JWw8QZqL5chi5yCami\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 12183, + "contract": "contracts/registry/AddOnlyAppWhitelist.sol:AddOnlyAppWhitelist", + "label": "_store", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(BitMap)9100_storage)" + } + ], + "types": { + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(BitMap)9100_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct BitMaps.BitMap)", + "numberOfBytes": "32", + "value": "t_struct(BitMap)9100_storage" + }, + "t_mapping(t_uint256,t_uint256)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_struct(BitMap)9100_storage": { + "encoding": "inplace", + "label": "struct BitMaps.BitMap", + "members": [ + { + "astId": 9099, + "contract": "contracts/registry/AddOnlyAppWhitelist.sol:AddOnlyAppWhitelist", + "label": "_data", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_uint256,t_uint256)" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + } + } + }, + "contracts/registry/AddOnlyAppWhitelistRegistry.sol": { + "AddOnlyAppWhitelistRegistry": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "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": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "_implementationAddress", + "outputs": [ + { + "internalType": "contract AddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "createAddOnlyAppWhitelist", + "outputs": [ + { + "internalType": "contract IAddOnlyAppWhitelist", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "isAuthorized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_12069": { + "entryPoint": null, + "id": 12069, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_disableInitializers_584": { + "entryPoint": 30, + "id": 584, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_629": { + "entryPoint": null, + "id": 629, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_615": { + "entryPoint": null, + "id": 615, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:216:51", + "nodeType": "YulBlock", + "src": "0:216:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "113:101:51", + "nodeType": "YulBlock", + "src": "113:101:51", + "statements": [ + { + "nativeSrc": "123:26:51", + "nodeType": "YulAssignment", + "src": "123:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "135:9:51", + "nodeType": "YulIdentifier", + "src": "135:9:51" + }, + { + "kind": "number", + "nativeSrc": "146:2:51", + "nodeType": "YulLiteral", + "src": "146:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "131:3:51", + "nodeType": "YulIdentifier", + "src": "131:3:51" + }, + "nativeSrc": "131:18:51", + "nodeType": "YulFunctionCall", + "src": "131:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "123:4:51", + "nodeType": "YulIdentifier", + "src": "123:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "165:9:51", + "nodeType": "YulIdentifier", + "src": "165:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "180:6:51", + "nodeType": "YulIdentifier", + "src": "180:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "196:2:51", + "nodeType": "YulLiteral", + "src": "196:2:51", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "200:1:51", + "nodeType": "YulLiteral", + "src": "200:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "192:3:51", + "nodeType": "YulIdentifier", + "src": "192:3:51" + }, + "nativeSrc": "192:10:51", + "nodeType": "YulFunctionCall", + "src": "192:10:51" + }, + { + "kind": "number", + "nativeSrc": "204:1:51", + "nodeType": "YulLiteral", + "src": "204:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "188:3:51", + "nodeType": "YulIdentifier", + "src": "188:3:51" + }, + "nativeSrc": "188:18:51", + "nodeType": "YulFunctionCall", + "src": "188:18:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "176:3:51", + "nodeType": "YulIdentifier", + "src": "176:3:51" + }, + "nativeSrc": "176:31:51", + "nodeType": "YulFunctionCall", + "src": "176:31:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "158:6:51", + "nodeType": "YulIdentifier", + "src": "158:6:51" + }, + "nativeSrc": "158:50:51", + "nodeType": "YulFunctionCall", + "src": "158:50:51" + }, + "nativeSrc": "158:50:51", + "nodeType": "YulExpressionStatement", + "src": "158:50:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "14:200:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "82:9:51", + "nodeType": "YulTypedName", + "src": "82:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "93:6:51", + "nodeType": "YulTypedName", + "src": "93:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "104:4:51", + "nodeType": "YulTypedName", + "src": "104:4:51", + "type": "" + } + ], + "src": "14:200:51" + } + ] + }, + "contents": "{\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": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611b83806100df6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xD0 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6E 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 0xCD 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 PUSH2 0x1B83 DUP1 PUSH2 0xDF PUSH1 0x0 CODECOPY 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 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0x9A0D319E GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x9A0D319E EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x9680579D EQ PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x2972B0F0 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x178 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x10AB JUMP JUMPDEST PUSH2 0x27C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x140 PUSH2 0x2CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x1118 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x112B JUMP JUMPDEST PUSH2 0x372 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST PUSH2 0x18B PUSH2 0x186 CALLDATASIZE PUSH1 0x4 PUSH2 0x1160 JUMP JUMPDEST PUSH2 0x387 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18B PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x396 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1160 JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0x18B PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x442 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x112B JUMP JUMPDEST PUSH2 0x462 JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x11C6 JUMP JUMPDEST PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST PUSH2 0x18B PUSH2 0x4C9 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x63E JUMP JUMPDEST PUSH2 0x160 PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x11C6 JUMP JUMPDEST PUSH2 0x67D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x160 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x18B PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0x6AA JUMP JUMPDEST PUSH2 0x18B PUSH2 0x251 CALLDATASIZE PUSH1 0x4 PUSH2 0x1233 JUMP JUMPDEST PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x112B JUMP JUMPDEST PUSH2 0x6CD JUMP JUMPDEST PUSH2 0x123 PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x741 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2AD JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2C8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x2EE SWAP1 PUSH2 0x1342 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 0x31A SWAP1 PUSH2 0x1342 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x367 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x33C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x367 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 0x34A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37D DUP3 PUSH2 0x78E JUMP JUMPDEST POP PUSH2 0x2C8 DUP3 PUSH2 0x7C6 JUMP JUMPDEST PUSH2 0x392 DUP3 DUP3 CALLER PUSH2 0x800 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D2 DUP4 DUP4 CALLER PUSH2 0x80D JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x420 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43B PUSH2 0x434 DUP4 PUSH2 0x462 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x917 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x45D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C8 DUP3 PUSH2 0x78E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4A8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 PUSH2 0x93F JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x518 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x526 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x544 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x56E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x5A8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AC9 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1B22 PUSH1 0x2C SWAP2 CODECOPY PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B4 SWAP1 PUSH2 0x1085 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x5D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x637 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 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2EE SWAP1 PUSH2 0x1342 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x695 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x97A JUMP JUMPDEST SWAP1 POP PUSH2 0x2C8 DUP4 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x987 JUMP JUMPDEST PUSH2 0x392 CALLER DUP4 DUP4 PUSH2 0x9A1 JUMP JUMPDEST PUSH2 0x6C0 DUP5 DUP5 DUP5 PUSH2 0x396 JUMP JUMPDEST PUSH2 0x420 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6D8 DUP3 PUSH2 0x78E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x6F0 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x710 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x43B JUMP JUMPDEST DUP1 PUSH2 0x71A DUP5 PUSH2 0xB7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x72B SWAP3 SWAP2 SWAP1 PUSH2 0x137C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x79A DUP4 PUSH2 0xC0F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x45D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x828 DUP6 PUSH2 0xC0F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x844 JUMPI PUSH2 0x844 DUP2 DUP6 DUP8 PUSH2 0xD5F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x884 JUMPI PUSH2 0x861 PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x8B5 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x924 DUP5 DUP5 DUP5 PUSH2 0xDC3 JUMP JUMPDEST DUP1 PUSH2 0x937 JUMPI POP DUP2 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x970 PUSH2 0xE28 JUMP JUMPDEST PUSH2 0x392 DUP3 DUP3 PUSH2 0xE4F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C8 DUP3 PUSH1 0x0 PUSH2 0xE80 JUMP JUMPDEST PUSH2 0x392 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xF16 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x9E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x637 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xA94 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x13AB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xACF JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xACC SWAP2 DUP2 ADD SWAP1 PUSH2 0x13E8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xB38 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xAFD 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 0xB02 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xB30 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xB74 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB89 DUP4 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBA9 JUMPI PUSH2 0xBA9 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBD3 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xBDD JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0xC6C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 PUSH2 0xC7C DUP6 PUSH2 0x78E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xCA8 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xCBB JUMPI POP PUSH2 0xCB9 DUP2 DUP6 PUSH2 0x741 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xCE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST DUP3 ISZERO PUSH2 0xD2C JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xD6A DUP4 DUP4 DUP4 PUSH2 0x917 JUMP JUMPDEST PUSH2 0x45D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xD98 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x937 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xDFD JUMPI POP PUSH2 0xDFD DUP5 DUP5 PUSH2 0x741 JUMP JUMPDEST DUP1 PUSH2 0x937 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE16 DUP4 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xE30 PUSH2 0x1006 JUMP JUMPDEST PUSH2 0xE4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xE57 PUSH2 0xE28 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0xE71 DUP5 DUP3 PUSH2 0x144D JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x420 DUP4 DUP3 PUSH2 0x144D JUMP JUMPDEST PUSH1 0x0 DUP2 SELFBALANCE LT ISZERO PUSH2 0xEAC JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH23 0x3D602D80600A3D3981F3363D3D373D3D3D363D73000000 DUP4 PUSH1 0x60 SHL PUSH1 0xE8 SHR OR PUSH1 0x0 MSTORE PUSH15 0x5AF43D82803E903D91602B57FD5BF3 DUP4 PUSH1 0x78 SHL OR PUSH1 0x20 MSTORE PUSH1 0x37 PUSH1 0x9 DUP4 CREATE SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB06EBF3D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF20 DUP4 DUP4 PUSH2 0x1020 JUMP JUMPDEST PUSH2 0x45D CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xF6D JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xF99 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xFB7 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xFCF JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xFE3 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xFF5 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2C8 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1010 PUSH2 0x93F JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x104A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1058 DUP4 DUP4 PUSH1 0x0 PUSH2 0x80D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x45D JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x5BB DUP1 PUSH2 0x150E DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x10A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x43B DUP2 PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10E3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10CB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1104 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x10C8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x43B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x10EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x113D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x115B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x117C DUP4 PUSH2 0x1144 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x119F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11A8 DUP5 PUSH2 0x1144 JUMP JUMPDEST SWAP3 POP PUSH2 0x11B6 PUSH1 0x20 DUP6 ADD PUSH2 0x1144 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43B DUP3 PUSH2 0x1144 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11FD DUP4 PUSH2 0x1144 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1252 DUP6 PUSH2 0x1144 JUMP JUMPDEST SWAP4 POP PUSH2 0x1260 PUSH1 0x20 DUP7 ADD PUSH2 0x1144 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x12AA JUMPI PUSH2 0x12AA PUSH2 0x121D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x12D2 JUMPI PUSH2 0x12D2 PUSH2 0x121D JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x12EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x132B DUP4 PUSH2 0x1144 JUMP JUMPDEST SWAP2 POP PUSH2 0x1339 PUSH1 0x20 DUP5 ADD PUSH2 0x1144 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1356 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1376 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 0x0 DUP4 MLOAD PUSH2 0x138E DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x10C8 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x13A2 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x10C8 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x13DE SWAP1 DUP4 ADD DUP5 PUSH2 0x10EC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x43B DUP2 PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x142E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB74 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x143A JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1467 PUSH2 0x121D JUMP JUMPDEST PUSH2 0x147B DUP2 PUSH2 0x1475 DUP5 SLOAD PUSH2 0x1342 JUMP JUMPDEST DUP5 PUSH2 0x1405 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x14B0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1498 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x14DF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x14C0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x14FD JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLER PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x570 PUSH2 0x4B PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x6C ADD MSTORE DUP2 DUP2 PUSH2 0x129 ADD MSTORE DUP2 DUP2 PUSH2 0x1BC ADD MSTORE DUP2 DUP2 PUSH2 0x306 ADD MSTORE PUSH2 0x398 ADD MSTORE PUSH2 0x570 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7C236C63 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x93AC9B16 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xD202158D EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8E PUSH2 0x111 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2A1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA2 JUMP JUMPDEST PUSH2 0xDB PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x2BD JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x10C CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x178 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 0x19C SWAP2 SWAP1 PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20B 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 0x22F SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x24C JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x262 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 PUSH1 0x1 PUSH2 0x437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0xF4EF25A4FEF731446D3E674BCF3BD90BBA639303A0B8F40A21401BF5CF8A19BD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 PUSH2 0x2BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 DUP6 SWAP1 SHR DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xFF DUP5 AND SHL AND ISZERO ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x355 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 0x379 SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD PUSH2 0x3CD PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x430 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x450 SWAP1 DUP4 DUP4 PUSH2 0x455 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL NOT AND SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 0xDF DUP9 DUP11 PUSH26 0xE374ADFDCEC15C9C29018563A2C35F6567D14B96CBE6423CE5A SGT PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH10 0x45786563204461746150 PUSH19 0x6F746563746F7253686172696E67204170706C PUSH10 0x636174696F6E20576869 PUSH21 0x656C69737420526567697374727980BB2B638CC20B 0xC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB007930069457865634461746150726F74656374 PUSH16 0x7253686172696E674164644F6E6C7941 PUSH17 0x7057686974656C697374A2646970667358 0x22 SLT KECCAK256 PUSH31 0xBAAE22A072B8D41C86E96D4851A6BBDF8707029EC7F565B8A78DC4FA228051 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1776:1902:49:-:0;;;2347:53;;;;;;;;;-1:-1:-1;2371:22:49;:20;:22::i;:::-;1776:1902;;7709:422:1;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:1;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:1;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:1;-1:-1:-1;;;;;8033:33:1;;;;;8085:29;;158:50:51;;;8085:29:1;;146:2:51;131:18;8085:29:1;;;;;;;7979:146;7758:373;7709:422::o;14:200:51:-;1776:1902:49;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@__ERC721_init_717": { + "entryPoint": 2408, + "id": 717, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__ERC721_init_unchained_745": { + "entryPoint": 3663, + "id": 745, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_approve_1561": { + "entryPoint": 2048, + "id": 1561, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_approve_1635": { + "entryPoint": 3145, + "id": 1635, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_baseURI_901": { + "entryPoint": null, + "id": 901, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkAuthorized_1181": { + "entryPoint": 3423, + "id": 1181, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkInitializing_538": { + "entryPoint": 3624, + "id": 538, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getApproved_1108": { + "entryPoint": 1990, + "id": 1108, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getERC721Storage_701": { + "entryPoint": null, + "id": 701, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getInitializableStorage_629": { + "entryPoint": 2367, + "id": 629, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_implementationAddress_12061": { + "entryPoint": null, + "id": 12061, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_initializableStorageSlot_615": { + "entryPoint": null, + "id": 615, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isAuthorized_1144": { + "entryPoint": 3523, + "id": 1144, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_isAuthorized_12151": { + "entryPoint": 2327, + "id": 12151, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_isInitializing_606": { + "entryPoint": 4102, + "id": 606, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_mint_1357": { + "entryPoint": 4128, + "id": 1357, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_msgSender_1783": { + "entryPoint": null, + "id": 1783, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_ownerOf_1088": { + "entryPoint": 3087, + "id": 1088, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_requireOwned_1709": { + "entryPoint": 1934, + "id": 1709, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_safeMint_1372": { + "entryPoint": 2439, + "id": 1372, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_safeMint_1402": { + "entryPoint": 3862, + "id": 1402, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_setApprovalForAll_1680": { + "entryPoint": 2465, + "id": 1680, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_update_1307": { + "entryPoint": 2061, + "id": 1307, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@approve_917": { + "entryPoint": 903, + "id": 917, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@balanceOf_811": { + "entryPoint": 1133, + "id": 811, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@checkOnERC721Received_3560": { + "entryPoint": 2642, + "id": 3560, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@clone_2356": { + "entryPoint": 2426, + "id": 2356, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@clone_2401": { + "entryPoint": 3712, + "id": 2401, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@createAddOnlyAppWhitelist_12121": { + "entryPoint": 1661, + "id": 12121, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getApproved_934": { + "entryPoint": 882, + "id": 934, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@initialize_12087": { + "entryPoint": 1225, + "id": 12087, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@isApprovedForAll_974": { + "entryPoint": 1857, + "id": 974, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isAuthorized_12169": { + "entryPoint": 1062, + "id": 12169, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@log10_7015": { + "entryPoint": 3886, + "id": 7015, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@name_840": { + "entryPoint": 718, + "id": 840, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@ownerOf_824": { + "entryPoint": 1122, + "id": 824, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@safeTransferFrom_1038": { + "entryPoint": 1090, + "id": 1038, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@safeTransferFrom_1068": { + "entryPoint": 1717, + "id": 1068, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@setApprovalForAll_950": { + "entryPoint": 1706, + "id": 950, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsInterface_1943": { + "entryPoint": null, + "id": 1943, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_776": { + "entryPoint": 636, + "id": 776, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@symbol_856": { + "entryPoint": 1598, + "id": 856, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@toString_4262": { + "entryPoint": 2940, + "id": 4262, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@tokenURI_892": { + "entryPoint": 1741, + "id": 892, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferFrom_1020": { + "entryPoint": 918, + "id": 1020, + "parameterSlots": 3, + "returnSlots": 0 + }, + "abi_decode_address": { + "entryPoint": 4420, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 4550, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 4879, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_uint256": { + "entryPoint": 4490, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr": { + "entryPoint": 4659, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 4577, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 4448, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 4267, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 5096, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 4395, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_string": { + "entryPoint": 4332, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 4988, + "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_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 5035, + "id": null, + "parameterSlots": 5, + "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_address__to_t_address_t_uint256_t_address__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_contract$_AddOnlyAppWhitelist_$12038__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IAddOnlyAppWhitelist_$11098__to_t_address__fromStack_reversed": { + "entryPoint": null, + "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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4376, + "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_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "array_dataslot_string_storage": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_string_storage": { + "entryPoint": 5125, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 5197, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 4296, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 4930, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x12": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 4637, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_bytes4": { + "entryPoint": 4242, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:10335:51", + "nodeType": "YulBlock", + "src": "0:10335:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "58:87:51", + "nodeType": "YulBlock", + "src": "58:87:51", + "statements": [ + { + "body": { + "nativeSrc": "123:16:51", + "nodeType": "YulBlock", + "src": "123:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "132:1:51", + "nodeType": "YulLiteral", + "src": "132:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "135:1:51", + "nodeType": "YulLiteral", + "src": "135:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "125:6:51", + "nodeType": "YulIdentifier", + "src": "125:6:51" + }, + "nativeSrc": "125:12:51", + "nodeType": "YulFunctionCall", + "src": "125:12:51" + }, + "nativeSrc": "125:12:51", + "nodeType": "YulExpressionStatement", + "src": "125:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "81:5:51", + "nodeType": "YulIdentifier", + "src": "81:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "92:5:51", + "nodeType": "YulIdentifier", + "src": "92:5:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "103:3:51", + "nodeType": "YulLiteral", + "src": "103:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "108:10:51", + "nodeType": "YulLiteral", + "src": "108:10:51", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "99:3:51", + "nodeType": "YulIdentifier", + "src": "99:3:51" + }, + "nativeSrc": "99:20:51", + "nodeType": "YulFunctionCall", + "src": "99:20:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "88:3:51", + "nodeType": "YulIdentifier", + "src": "88:3:51" + }, + "nativeSrc": "88:32:51", + "nodeType": "YulFunctionCall", + "src": "88:32:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "78:2:51", + "nodeType": "YulIdentifier", + "src": "78:2:51" + }, + "nativeSrc": "78:43:51", + "nodeType": "YulFunctionCall", + "src": "78:43:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "71:6:51", + "nodeType": "YulIdentifier", + "src": "71:6:51" + }, + "nativeSrc": "71:51:51", + "nodeType": "YulFunctionCall", + "src": "71:51:51" + }, + "nativeSrc": "68:71:51", + "nodeType": "YulIf", + "src": "68:71:51" + } + ] + }, + "name": "validator_revert_bytes4", + "nativeSrc": "14:131:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "47:5:51", + "nodeType": "YulTypedName", + "src": "47:5:51", + "type": "" + } + ], + "src": "14:131:51" + }, + { + "body": { + "nativeSrc": "219:176:51", + "nodeType": "YulBlock", + "src": "219:176:51", + "statements": [ + { + "body": { + "nativeSrc": "265:16:51", + "nodeType": "YulBlock", + "src": "265:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "274:1:51", + "nodeType": "YulLiteral", + "src": "274:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "277:1:51", + "nodeType": "YulLiteral", + "src": "277:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "267:6:51", + "nodeType": "YulIdentifier", + "src": "267:6:51" + }, + "nativeSrc": "267:12:51", + "nodeType": "YulFunctionCall", + "src": "267:12:51" + }, + "nativeSrc": "267:12:51", + "nodeType": "YulExpressionStatement", + "src": "267:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "240:7:51", + "nodeType": "YulIdentifier", + "src": "240:7:51" + }, + { + "name": "headStart", + "nativeSrc": "249:9:51", + "nodeType": "YulIdentifier", + "src": "249:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "236:3:51", + "nodeType": "YulIdentifier", + "src": "236:3:51" + }, + "nativeSrc": "236:23:51", + "nodeType": "YulFunctionCall", + "src": "236:23:51" + }, + { + "kind": "number", + "nativeSrc": "261:2:51", + "nodeType": "YulLiteral", + "src": "261:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "232:3:51", + "nodeType": "YulIdentifier", + "src": "232:3:51" + }, + "nativeSrc": "232:32:51", + "nodeType": "YulFunctionCall", + "src": "232:32:51" + }, + "nativeSrc": "229:52:51", + "nodeType": "YulIf", + "src": "229:52:51" + }, + { + "nativeSrc": "290:36:51", + "nodeType": "YulVariableDeclaration", + "src": "290:36:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "316:9:51", + "nodeType": "YulIdentifier", + "src": "316:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "303:12:51", + "nodeType": "YulIdentifier", + "src": "303:12:51" + }, + "nativeSrc": "303:23:51", + "nodeType": "YulFunctionCall", + "src": "303:23:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "294:5:51", + "nodeType": "YulTypedName", + "src": "294:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "359:5:51", + "nodeType": "YulIdentifier", + "src": "359:5:51" + } + ], + "functionName": { + "name": "validator_revert_bytes4", + "nativeSrc": "335:23:51", + "nodeType": "YulIdentifier", + "src": "335:23:51" + }, + "nativeSrc": "335:30:51", + "nodeType": "YulFunctionCall", + "src": "335:30:51" + }, + "nativeSrc": "335:30:51", + "nodeType": "YulExpressionStatement", + "src": "335:30:51" + }, + { + "nativeSrc": "374:15:51", + "nodeType": "YulAssignment", + "src": "374:15:51", + "value": { + "name": "value", + "nativeSrc": "384:5:51", + "nodeType": "YulIdentifier", + "src": "384:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "374:6:51", + "nodeType": "YulIdentifier", + "src": "374:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "150:245:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "185:9:51", + "nodeType": "YulTypedName", + "src": "185:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "196:7:51", + "nodeType": "YulTypedName", + "src": "196:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "208:6:51", + "nodeType": "YulTypedName", + "src": "208:6:51", + "type": "" + } + ], + "src": "150:245:51" + }, + { + "body": { + "nativeSrc": "495:92:51", + "nodeType": "YulBlock", + "src": "495:92:51", + "statements": [ + { + "nativeSrc": "505:26:51", + "nodeType": "YulAssignment", + "src": "505:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "517:9:51", + "nodeType": "YulIdentifier", + "src": "517:9:51" + }, + { + "kind": "number", + "nativeSrc": "528:2:51", + "nodeType": "YulLiteral", + "src": "528:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "513:3:51", + "nodeType": "YulIdentifier", + "src": "513:3:51" + }, + "nativeSrc": "513:18:51", + "nodeType": "YulFunctionCall", + "src": "513:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "505:4:51", + "nodeType": "YulIdentifier", + "src": "505:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "547:9:51", + "nodeType": "YulIdentifier", + "src": "547:9:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "572:6:51", + "nodeType": "YulIdentifier", + "src": "572:6:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "565:6:51", + "nodeType": "YulIdentifier", + "src": "565:6:51" + }, + "nativeSrc": "565:14:51", + "nodeType": "YulFunctionCall", + "src": "565:14:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "558:6:51", + "nodeType": "YulIdentifier", + "src": "558:6:51" + }, + "nativeSrc": "558:22:51", + "nodeType": "YulFunctionCall", + "src": "558:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "540:6:51", + "nodeType": "YulIdentifier", + "src": "540:6:51" + }, + "nativeSrc": "540:41:51", + "nodeType": "YulFunctionCall", + "src": "540:41:51" + }, + "nativeSrc": "540:41:51", + "nodeType": "YulExpressionStatement", + "src": "540:41:51" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "400:187:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "464:9:51", + "nodeType": "YulTypedName", + "src": "464:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "475:6:51", + "nodeType": "YulTypedName", + "src": "475:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "486:4:51", + "nodeType": "YulTypedName", + "src": "486:4:51", + "type": "" + } + ], + "src": "400:187:51" + }, + { + "body": { + "nativeSrc": "658:184:51", + "nodeType": "YulBlock", + "src": "658:184:51", + "statements": [ + { + "nativeSrc": "668:10:51", + "nodeType": "YulVariableDeclaration", + "src": "668:10:51", + "value": { + "kind": "number", + "nativeSrc": "677:1:51", + "nodeType": "YulLiteral", + "src": "677:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "672:1:51", + "nodeType": "YulTypedName", + "src": "672:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "737:63:51", + "nodeType": "YulBlock", + "src": "737:63:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "762:3:51", + "nodeType": "YulIdentifier", + "src": "762:3:51" + }, + { + "name": "i", + "nativeSrc": "767:1:51", + "nodeType": "YulIdentifier", + "src": "767:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "758:3:51", + "nodeType": "YulIdentifier", + "src": "758:3:51" + }, + "nativeSrc": "758:11:51", + "nodeType": "YulFunctionCall", + "src": "758:11:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "781:3:51", + "nodeType": "YulIdentifier", + "src": "781:3:51" + }, + { + "name": "i", + "nativeSrc": "786:1:51", + "nodeType": "YulIdentifier", + "src": "786:1:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "777:3:51", + "nodeType": "YulIdentifier", + "src": "777:3:51" + }, + "nativeSrc": "777:11:51", + "nodeType": "YulFunctionCall", + "src": "777:11:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "771:5:51", + "nodeType": "YulIdentifier", + "src": "771:5:51" + }, + "nativeSrc": "771:18:51", + "nodeType": "YulFunctionCall", + "src": "771:18:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "751:6:51", + "nodeType": "YulIdentifier", + "src": "751:6:51" + }, + "nativeSrc": "751:39:51", + "nodeType": "YulFunctionCall", + "src": "751:39:51" + }, + "nativeSrc": "751:39:51", + "nodeType": "YulExpressionStatement", + "src": "751:39:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "698:1:51", + "nodeType": "YulIdentifier", + "src": "698:1:51" + }, + { + "name": "length", + "nativeSrc": "701:6:51", + "nodeType": "YulIdentifier", + "src": "701:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "695:2:51", + "nodeType": "YulIdentifier", + "src": "695:2:51" + }, + "nativeSrc": "695:13:51", + "nodeType": "YulFunctionCall", + "src": "695:13:51" + }, + "nativeSrc": "687:113:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "709:19:51", + "nodeType": "YulBlock", + "src": "709:19:51", + "statements": [ + { + "nativeSrc": "711:15:51", + "nodeType": "YulAssignment", + "src": "711:15:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "720:1:51", + "nodeType": "YulIdentifier", + "src": "720:1:51" + }, + { + "kind": "number", + "nativeSrc": "723:2:51", + "nodeType": "YulLiteral", + "src": "723:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "716:3:51", + "nodeType": "YulIdentifier", + "src": "716:3:51" + }, + "nativeSrc": "716:10:51", + "nodeType": "YulFunctionCall", + "src": "716:10:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "711:1:51", + "nodeType": "YulIdentifier", + "src": "711:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "691:3:51", + "nodeType": "YulBlock", + "src": "691:3:51", + "statements": [] + }, + "src": "687:113:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "820:3:51", + "nodeType": "YulIdentifier", + "src": "820:3:51" + }, + { + "name": "length", + "nativeSrc": "825:6:51", + "nodeType": "YulIdentifier", + "src": "825:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "816:3:51", + "nodeType": "YulIdentifier", + "src": "816:3:51" + }, + "nativeSrc": "816:16:51", + "nodeType": "YulFunctionCall", + "src": "816:16:51" + }, + { + "kind": "number", + "nativeSrc": "834:1:51", + "nodeType": "YulLiteral", + "src": "834:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "809:6:51", + "nodeType": "YulIdentifier", + "src": "809:6:51" + }, + "nativeSrc": "809:27:51", + "nodeType": "YulFunctionCall", + "src": "809:27:51" + }, + "nativeSrc": "809:27:51", + "nodeType": "YulExpressionStatement", + "src": "809:27:51" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "592:250:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "636:3:51", + "nodeType": "YulTypedName", + "src": "636:3:51", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "641:3:51", + "nodeType": "YulTypedName", + "src": "641:3:51", + "type": "" + }, + { + "name": "length", + "nativeSrc": "646:6:51", + "nodeType": "YulTypedName", + "src": "646:6:51", + "type": "" + } + ], + "src": "592:250:51" + }, + { + "body": { + "nativeSrc": "897:221:51", + "nodeType": "YulBlock", + "src": "897:221:51", + "statements": [ + { + "nativeSrc": "907:26:51", + "nodeType": "YulVariableDeclaration", + "src": "907:26:51", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "927:5:51", + "nodeType": "YulIdentifier", + "src": "927:5:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "921:5:51", + "nodeType": "YulIdentifier", + "src": "921:5:51" + }, + "nativeSrc": "921:12:51", + "nodeType": "YulFunctionCall", + "src": "921:12:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "911:6:51", + "nodeType": "YulTypedName", + "src": "911:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "949:3:51", + "nodeType": "YulIdentifier", + "src": "949:3:51" + }, + { + "name": "length", + "nativeSrc": "954:6:51", + "nodeType": "YulIdentifier", + "src": "954:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "942:6:51", + "nodeType": "YulIdentifier", + "src": "942:6:51" + }, + "nativeSrc": "942:19:51", + "nodeType": "YulFunctionCall", + "src": "942:19:51" + }, + "nativeSrc": "942:19:51", + "nodeType": "YulExpressionStatement", + "src": "942:19:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1009:5:51", + "nodeType": "YulIdentifier", + "src": "1009:5:51" + }, + { + "kind": "number", + "nativeSrc": "1016:4:51", + "nodeType": "YulLiteral", + "src": "1016:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1005:3:51", + "nodeType": "YulIdentifier", + "src": "1005:3:51" + }, + "nativeSrc": "1005:16:51", + "nodeType": "YulFunctionCall", + "src": "1005:16:51" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1027:3:51", + "nodeType": "YulIdentifier", + "src": "1027:3:51" + }, + { + "kind": "number", + "nativeSrc": "1032:4:51", + "nodeType": "YulLiteral", + "src": "1032:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1023:3:51", + "nodeType": "YulIdentifier", + "src": "1023:3:51" + }, + "nativeSrc": "1023:14:51", + "nodeType": "YulFunctionCall", + "src": "1023:14:51" + }, + { + "name": "length", + "nativeSrc": "1039:6:51", + "nodeType": "YulIdentifier", + "src": "1039:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "970:34:51", + "nodeType": "YulIdentifier", + "src": "970:34:51" + }, + "nativeSrc": "970:76:51", + "nodeType": "YulFunctionCall", + "src": "970:76:51" + }, + "nativeSrc": "970:76:51", + "nodeType": "YulExpressionStatement", + "src": "970:76:51" + }, + { + "nativeSrc": "1055:57:51", + "nodeType": "YulAssignment", + "src": "1055:57:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1070:3:51", + "nodeType": "YulIdentifier", + "src": "1070:3:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "1083:6:51", + "nodeType": "YulIdentifier", + "src": "1083:6:51" + }, + { + "kind": "number", + "nativeSrc": "1091:2:51", + "nodeType": "YulLiteral", + "src": "1091:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1079:3:51", + "nodeType": "YulIdentifier", + "src": "1079:3:51" + }, + "nativeSrc": "1079:15:51", + "nodeType": "YulFunctionCall", + "src": "1079:15:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1100:2:51", + "nodeType": "YulLiteral", + "src": "1100:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1096:3:51", + "nodeType": "YulIdentifier", + "src": "1096:3:51" + }, + "nativeSrc": "1096:7:51", + "nodeType": "YulFunctionCall", + "src": "1096:7:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1075:3:51", + "nodeType": "YulIdentifier", + "src": "1075:3:51" + }, + "nativeSrc": "1075:29:51", + "nodeType": "YulFunctionCall", + "src": "1075:29:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1066:3:51", + "nodeType": "YulIdentifier", + "src": "1066:3:51" + }, + "nativeSrc": "1066:39:51", + "nodeType": "YulFunctionCall", + "src": "1066:39:51" + }, + { + "kind": "number", + "nativeSrc": "1107:4:51", + "nodeType": "YulLiteral", + "src": "1107:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1062:3:51", + "nodeType": "YulIdentifier", + "src": "1062:3:51" + }, + "nativeSrc": "1062:50:51", + "nodeType": "YulFunctionCall", + "src": "1062:50:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "1055:3:51", + "nodeType": "YulIdentifier", + "src": "1055:3:51" + } + ] + } + ] + }, + "name": "abi_encode_string", + "nativeSrc": "847:271:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "874:5:51", + "nodeType": "YulTypedName", + "src": "874:5:51", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "881:3:51", + "nodeType": "YulTypedName", + "src": "881:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "889:3:51", + "nodeType": "YulTypedName", + "src": "889:3:51", + "type": "" + } + ], + "src": "847:271:51" + }, + { + "body": { + "nativeSrc": "1244:99:51", + "nodeType": "YulBlock", + "src": "1244:99:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1261:9:51", + "nodeType": "YulIdentifier", + "src": "1261:9:51" + }, + { + "kind": "number", + "nativeSrc": "1272:2:51", + "nodeType": "YulLiteral", + "src": "1272:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1254:6:51", + "nodeType": "YulIdentifier", + "src": "1254:6:51" + }, + "nativeSrc": "1254:21:51", + "nodeType": "YulFunctionCall", + "src": "1254:21:51" + }, + "nativeSrc": "1254:21:51", + "nodeType": "YulExpressionStatement", + "src": "1254:21:51" + }, + { + "nativeSrc": "1284:53:51", + "nodeType": "YulAssignment", + "src": "1284:53:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1310:6:51", + "nodeType": "YulIdentifier", + "src": "1310:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1322:9:51", + "nodeType": "YulIdentifier", + "src": "1322:9:51" + }, + { + "kind": "number", + "nativeSrc": "1333:2:51", + "nodeType": "YulLiteral", + "src": "1333:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1318:3:51", + "nodeType": "YulIdentifier", + "src": "1318:3:51" + }, + "nativeSrc": "1318:18:51", + "nodeType": "YulFunctionCall", + "src": "1318:18:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "1292:17:51", + "nodeType": "YulIdentifier", + "src": "1292:17:51" + }, + "nativeSrc": "1292:45:51", + "nodeType": "YulFunctionCall", + "src": "1292:45:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1284:4:51", + "nodeType": "YulIdentifier", + "src": "1284:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "1123:220:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1213:9:51", + "nodeType": "YulTypedName", + "src": "1213:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1224:6:51", + "nodeType": "YulTypedName", + "src": "1224:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1235:4:51", + "nodeType": "YulTypedName", + "src": "1235:4:51", + "type": "" + } + ], + "src": "1123:220:51" + }, + { + "body": { + "nativeSrc": "1418:110:51", + "nodeType": "YulBlock", + "src": "1418:110:51", + "statements": [ + { + "body": { + "nativeSrc": "1464:16:51", + "nodeType": "YulBlock", + "src": "1464:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1473:1:51", + "nodeType": "YulLiteral", + "src": "1473:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1476:1:51", + "nodeType": "YulLiteral", + "src": "1476:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1466:6:51", + "nodeType": "YulIdentifier", + "src": "1466:6:51" + }, + "nativeSrc": "1466:12:51", + "nodeType": "YulFunctionCall", + "src": "1466:12:51" + }, + "nativeSrc": "1466:12:51", + "nodeType": "YulExpressionStatement", + "src": "1466:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1439:7:51", + "nodeType": "YulIdentifier", + "src": "1439:7:51" + }, + { + "name": "headStart", + "nativeSrc": "1448:9:51", + "nodeType": "YulIdentifier", + "src": "1448:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1435:3:51", + "nodeType": "YulIdentifier", + "src": "1435:3:51" + }, + "nativeSrc": "1435:23:51", + "nodeType": "YulFunctionCall", + "src": "1435:23:51" + }, + { + "kind": "number", + "nativeSrc": "1460:2:51", + "nodeType": "YulLiteral", + "src": "1460:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1431:3:51", + "nodeType": "YulIdentifier", + "src": "1431:3:51" + }, + "nativeSrc": "1431:32:51", + "nodeType": "YulFunctionCall", + "src": "1431:32:51" + }, + "nativeSrc": "1428:52:51", + "nodeType": "YulIf", + "src": "1428:52:51" + }, + { + "nativeSrc": "1489:33:51", + "nodeType": "YulAssignment", + "src": "1489:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1512:9:51", + "nodeType": "YulIdentifier", + "src": "1512:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1499:12:51", + "nodeType": "YulIdentifier", + "src": "1499:12:51" + }, + "nativeSrc": "1499:23:51", + "nodeType": "YulFunctionCall", + "src": "1499:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1489:6:51", + "nodeType": "YulIdentifier", + "src": "1489:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "1348:180:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1384:9:51", + "nodeType": "YulTypedName", + "src": "1384:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1395:7:51", + "nodeType": "YulTypedName", + "src": "1395:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1407:6:51", + "nodeType": "YulTypedName", + "src": "1407:6:51", + "type": "" + } + ], + "src": "1348:180:51" + }, + { + "body": { + "nativeSrc": "1634:102:51", + "nodeType": "YulBlock", + "src": "1634:102:51", + "statements": [ + { + "nativeSrc": "1644:26:51", + "nodeType": "YulAssignment", + "src": "1644:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1656:9:51", + "nodeType": "YulIdentifier", + "src": "1656:9:51" + }, + { + "kind": "number", + "nativeSrc": "1667:2:51", + "nodeType": "YulLiteral", + "src": "1667:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1652:3:51", + "nodeType": "YulIdentifier", + "src": "1652:3:51" + }, + "nativeSrc": "1652:18:51", + "nodeType": "YulFunctionCall", + "src": "1652:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1644:4:51", + "nodeType": "YulIdentifier", + "src": "1644:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1686:9:51", + "nodeType": "YulIdentifier", + "src": "1686:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1701:6:51", + "nodeType": "YulIdentifier", + "src": "1701:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1717:3:51", + "nodeType": "YulLiteral", + "src": "1717:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1722:1:51", + "nodeType": "YulLiteral", + "src": "1722:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1713:3:51", + "nodeType": "YulIdentifier", + "src": "1713:3:51" + }, + "nativeSrc": "1713:11:51", + "nodeType": "YulFunctionCall", + "src": "1713:11:51" + }, + { + "kind": "number", + "nativeSrc": "1726:1:51", + "nodeType": "YulLiteral", + "src": "1726:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1709:3:51", + "nodeType": "YulIdentifier", + "src": "1709:3:51" + }, + "nativeSrc": "1709:19:51", + "nodeType": "YulFunctionCall", + "src": "1709:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1697:3:51", + "nodeType": "YulIdentifier", + "src": "1697:3:51" + }, + "nativeSrc": "1697:32:51", + "nodeType": "YulFunctionCall", + "src": "1697:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1679:6:51", + "nodeType": "YulIdentifier", + "src": "1679:6:51" + }, + "nativeSrc": "1679:51:51", + "nodeType": "YulFunctionCall", + "src": "1679:51:51" + }, + "nativeSrc": "1679:51:51", + "nodeType": "YulExpressionStatement", + "src": "1679:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "1533:203:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1603:9:51", + "nodeType": "YulTypedName", + "src": "1603:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1614:6:51", + "nodeType": "YulTypedName", + "src": "1614:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1625:4:51", + "nodeType": "YulTypedName", + "src": "1625:4:51", + "type": "" + } + ], + "src": "1533:203:51" + }, + { + "body": { + "nativeSrc": "1790:124:51", + "nodeType": "YulBlock", + "src": "1790:124:51", + "statements": [ + { + "nativeSrc": "1800:29:51", + "nodeType": "YulAssignment", + "src": "1800:29:51", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1822:6:51", + "nodeType": "YulIdentifier", + "src": "1822:6:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1809:12:51", + "nodeType": "YulIdentifier", + "src": "1809:12:51" + }, + "nativeSrc": "1809:20:51", + "nodeType": "YulFunctionCall", + "src": "1809:20:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1800:5:51", + "nodeType": "YulIdentifier", + "src": "1800:5:51" + } + ] + }, + { + "body": { + "nativeSrc": "1892:16:51", + "nodeType": "YulBlock", + "src": "1892:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1901:1:51", + "nodeType": "YulLiteral", + "src": "1901:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1904:1:51", + "nodeType": "YulLiteral", + "src": "1904:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1894:6:51", + "nodeType": "YulIdentifier", + "src": "1894:6:51" + }, + "nativeSrc": "1894:12:51", + "nodeType": "YulFunctionCall", + "src": "1894:12:51" + }, + "nativeSrc": "1894:12:51", + "nodeType": "YulExpressionStatement", + "src": "1894:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1851:5:51", + "nodeType": "YulIdentifier", + "src": "1851:5:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1862:5:51", + "nodeType": "YulIdentifier", + "src": "1862:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1877:3:51", + "nodeType": "YulLiteral", + "src": "1877:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1882:1:51", + "nodeType": "YulLiteral", + "src": "1882:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1873:3:51", + "nodeType": "YulIdentifier", + "src": "1873:3:51" + }, + "nativeSrc": "1873:11:51", + "nodeType": "YulFunctionCall", + "src": "1873:11:51" + }, + { + "kind": "number", + "nativeSrc": "1886:1:51", + "nodeType": "YulLiteral", + "src": "1886:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1869:3:51", + "nodeType": "YulIdentifier", + "src": "1869:3:51" + }, + "nativeSrc": "1869:19:51", + "nodeType": "YulFunctionCall", + "src": "1869:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1858:3:51", + "nodeType": "YulIdentifier", + "src": "1858:3:51" + }, + "nativeSrc": "1858:31:51", + "nodeType": "YulFunctionCall", + "src": "1858:31:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1848:2:51", + "nodeType": "YulIdentifier", + "src": "1848:2:51" + }, + "nativeSrc": "1848:42:51", + "nodeType": "YulFunctionCall", + "src": "1848:42:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1841:6:51", + "nodeType": "YulIdentifier", + "src": "1841:6:51" + }, + "nativeSrc": "1841:50:51", + "nodeType": "YulFunctionCall", + "src": "1841:50:51" + }, + "nativeSrc": "1838:70:51", + "nodeType": "YulIf", + "src": "1838:70:51" + } + ] + }, + "name": "abi_decode_address", + "nativeSrc": "1741:173:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1769:6:51", + "nodeType": "YulTypedName", + "src": "1769:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1780:5:51", + "nodeType": "YulTypedName", + "src": "1780:5:51", + "type": "" + } + ], + "src": "1741:173:51" + }, + { + "body": { + "nativeSrc": "2006:167:51", + "nodeType": "YulBlock", + "src": "2006:167:51", + "statements": [ + { + "body": { + "nativeSrc": "2052:16:51", + "nodeType": "YulBlock", + "src": "2052:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2061:1:51", + "nodeType": "YulLiteral", + "src": "2061:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2064:1:51", + "nodeType": "YulLiteral", + "src": "2064:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2054:6:51", + "nodeType": "YulIdentifier", + "src": "2054:6:51" + }, + "nativeSrc": "2054:12:51", + "nodeType": "YulFunctionCall", + "src": "2054:12:51" + }, + "nativeSrc": "2054:12:51", + "nodeType": "YulExpressionStatement", + "src": "2054:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2027:7:51", + "nodeType": "YulIdentifier", + "src": "2027:7:51" + }, + { + "name": "headStart", + "nativeSrc": "2036:9:51", + "nodeType": "YulIdentifier", + "src": "2036:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2023:3:51", + "nodeType": "YulIdentifier", + "src": "2023:3:51" + }, + "nativeSrc": "2023:23:51", + "nodeType": "YulFunctionCall", + "src": "2023:23:51" + }, + { + "kind": "number", + "nativeSrc": "2048:2:51", + "nodeType": "YulLiteral", + "src": "2048:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2019:3:51", + "nodeType": "YulIdentifier", + "src": "2019:3:51" + }, + "nativeSrc": "2019:32:51", + "nodeType": "YulFunctionCall", + "src": "2019:32:51" + }, + "nativeSrc": "2016:52:51", + "nodeType": "YulIf", + "src": "2016:52:51" + }, + { + "nativeSrc": "2077:39:51", + "nodeType": "YulAssignment", + "src": "2077:39:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2106:9:51", + "nodeType": "YulIdentifier", + "src": "2106:9:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "2087:18:51", + "nodeType": "YulIdentifier", + "src": "2087:18:51" + }, + "nativeSrc": "2087:29:51", + "nodeType": "YulFunctionCall", + "src": "2087:29:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2077:6:51", + "nodeType": "YulIdentifier", + "src": "2077:6:51" + } + ] + }, + { + "nativeSrc": "2125:42:51", + "nodeType": "YulAssignment", + "src": "2125:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2152:9:51", + "nodeType": "YulIdentifier", + "src": "2152:9:51" + }, + { + "kind": "number", + "nativeSrc": "2163:2:51", + "nodeType": "YulLiteral", + "src": "2163:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2148:3:51", + "nodeType": "YulIdentifier", + "src": "2148:3:51" + }, + "nativeSrc": "2148:18:51", + "nodeType": "YulFunctionCall", + "src": "2148:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2135:12:51", + "nodeType": "YulIdentifier", + "src": "2135:12:51" + }, + "nativeSrc": "2135:32:51", + "nodeType": "YulFunctionCall", + "src": "2135:32:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2125:6:51", + "nodeType": "YulIdentifier", + "src": "2125:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1919:254:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1964:9:51", + "nodeType": "YulTypedName", + "src": "1964:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1975:7:51", + "nodeType": "YulTypedName", + "src": "1975:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1987:6:51", + "nodeType": "YulTypedName", + "src": "1987:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1995:6:51", + "nodeType": "YulTypedName", + "src": "1995:6:51", + "type": "" + } + ], + "src": "1919:254:51" + }, + { + "body": { + "nativeSrc": "2282:224:51", + "nodeType": "YulBlock", + "src": "2282:224:51", + "statements": [ + { + "body": { + "nativeSrc": "2328:16:51", + "nodeType": "YulBlock", + "src": "2328:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2337:1:51", + "nodeType": "YulLiteral", + "src": "2337:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2340:1:51", + "nodeType": "YulLiteral", + "src": "2340:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2330:6:51", + "nodeType": "YulIdentifier", + "src": "2330:6:51" + }, + "nativeSrc": "2330:12:51", + "nodeType": "YulFunctionCall", + "src": "2330:12:51" + }, + "nativeSrc": "2330:12:51", + "nodeType": "YulExpressionStatement", + "src": "2330:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2303:7:51", + "nodeType": "YulIdentifier", + "src": "2303:7:51" + }, + { + "name": "headStart", + "nativeSrc": "2312:9:51", + "nodeType": "YulIdentifier", + "src": "2312:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2299:3:51", + "nodeType": "YulIdentifier", + "src": "2299:3:51" + }, + "nativeSrc": "2299:23:51", + "nodeType": "YulFunctionCall", + "src": "2299:23:51" + }, + { + "kind": "number", + "nativeSrc": "2324:2:51", + "nodeType": "YulLiteral", + "src": "2324:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2295:3:51", + "nodeType": "YulIdentifier", + "src": "2295:3:51" + }, + "nativeSrc": "2295:32:51", + "nodeType": "YulFunctionCall", + "src": "2295:32:51" + }, + "nativeSrc": "2292:52:51", + "nodeType": "YulIf", + "src": "2292:52:51" + }, + { + "nativeSrc": "2353:39:51", + "nodeType": "YulAssignment", + "src": "2353:39:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2382:9:51", + "nodeType": "YulIdentifier", + "src": "2382:9:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "2363:18:51", + "nodeType": "YulIdentifier", + "src": "2363:18:51" + }, + "nativeSrc": "2363:29:51", + "nodeType": "YulFunctionCall", + "src": "2363:29:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2353:6:51", + "nodeType": "YulIdentifier", + "src": "2353:6:51" + } + ] + }, + { + "nativeSrc": "2401:48:51", + "nodeType": "YulAssignment", + "src": "2401:48:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2434:9:51", + "nodeType": "YulIdentifier", + "src": "2434:9:51" + }, + { + "kind": "number", + "nativeSrc": "2445:2:51", + "nodeType": "YulLiteral", + "src": "2445:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2430:3:51", + "nodeType": "YulIdentifier", + "src": "2430:3:51" + }, + "nativeSrc": "2430:18:51", + "nodeType": "YulFunctionCall", + "src": "2430:18:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "2411:18:51", + "nodeType": "YulIdentifier", + "src": "2411:18:51" + }, + "nativeSrc": "2411:38:51", + "nodeType": "YulFunctionCall", + "src": "2411:38:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2401:6:51", + "nodeType": "YulIdentifier", + "src": "2401:6:51" + } + ] + }, + { + "nativeSrc": "2458:42:51", + "nodeType": "YulAssignment", + "src": "2458:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2485:9:51", + "nodeType": "YulIdentifier", + "src": "2485:9:51" + }, + { + "kind": "number", + "nativeSrc": "2496:2:51", + "nodeType": "YulLiteral", + "src": "2496:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2481:3:51", + "nodeType": "YulIdentifier", + "src": "2481:3:51" + }, + "nativeSrc": "2481:18:51", + "nodeType": "YulFunctionCall", + "src": "2481:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2468:12:51", + "nodeType": "YulIdentifier", + "src": "2468:12:51" + }, + "nativeSrc": "2468:32:51", + "nodeType": "YulFunctionCall", + "src": "2468:32:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "2458:6:51", + "nodeType": "YulIdentifier", + "src": "2458:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nativeSrc": "2178:328:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2232:9:51", + "nodeType": "YulTypedName", + "src": "2232:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2243:7:51", + "nodeType": "YulTypedName", + "src": "2243:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2255:6:51", + "nodeType": "YulTypedName", + "src": "2255:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2263:6:51", + "nodeType": "YulTypedName", + "src": "2263:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2271:6:51", + "nodeType": "YulTypedName", + "src": "2271:6:51", + "type": "" + } + ], + "src": "2178:328:51" + }, + { + "body": { + "nativeSrc": "2581:116:51", + "nodeType": "YulBlock", + "src": "2581:116:51", + "statements": [ + { + "body": { + "nativeSrc": "2627:16:51", + "nodeType": "YulBlock", + "src": "2627:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2636:1:51", + "nodeType": "YulLiteral", + "src": "2636:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2639:1:51", + "nodeType": "YulLiteral", + "src": "2639:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2629:6:51", + "nodeType": "YulIdentifier", + "src": "2629:6:51" + }, + "nativeSrc": "2629:12:51", + "nodeType": "YulFunctionCall", + "src": "2629:12:51" + }, + "nativeSrc": "2629:12:51", + "nodeType": "YulExpressionStatement", + "src": "2629:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2602:7:51", + "nodeType": "YulIdentifier", + "src": "2602:7:51" + }, + { + "name": "headStart", + "nativeSrc": "2611:9:51", + "nodeType": "YulIdentifier", + "src": "2611:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2598:3:51", + "nodeType": "YulIdentifier", + "src": "2598:3:51" + }, + "nativeSrc": "2598:23:51", + "nodeType": "YulFunctionCall", + "src": "2598:23:51" + }, + { + "kind": "number", + "nativeSrc": "2623:2:51", + "nodeType": "YulLiteral", + "src": "2623:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2594:3:51", + "nodeType": "YulIdentifier", + "src": "2594:3:51" + }, + "nativeSrc": "2594:32:51", + "nodeType": "YulFunctionCall", + "src": "2594:32:51" + }, + "nativeSrc": "2591:52:51", + "nodeType": "YulIf", + "src": "2591:52:51" + }, + { + "nativeSrc": "2652:39:51", + "nodeType": "YulAssignment", + "src": "2652:39:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2681:9:51", + "nodeType": "YulIdentifier", + "src": "2681:9:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "2662:18:51", + "nodeType": "YulIdentifier", + "src": "2662:18:51" + }, + "nativeSrc": "2662:29:51", + "nodeType": "YulFunctionCall", + "src": "2662:29:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2652:6:51", + "nodeType": "YulIdentifier", + "src": "2652:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "2511:186:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2547:9:51", + "nodeType": "YulTypedName", + "src": "2547:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2558:7:51", + "nodeType": "YulTypedName", + "src": "2558:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2570:6:51", + "nodeType": "YulTypedName", + "src": "2570:6:51", + "type": "" + } + ], + "src": "2511:186:51" + }, + { + "body": { + "nativeSrc": "2803:76:51", + "nodeType": "YulBlock", + "src": "2803:76:51", + "statements": [ + { + "nativeSrc": "2813:26:51", + "nodeType": "YulAssignment", + "src": "2813:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2825:9:51", + "nodeType": "YulIdentifier", + "src": "2825:9:51" + }, + { + "kind": "number", + "nativeSrc": "2836:2:51", + "nodeType": "YulLiteral", + "src": "2836:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2821:3:51", + "nodeType": "YulIdentifier", + "src": "2821:3:51" + }, + "nativeSrc": "2821:18:51", + "nodeType": "YulFunctionCall", + "src": "2821:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2813:4:51", + "nodeType": "YulIdentifier", + "src": "2813:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2855:9:51", + "nodeType": "YulIdentifier", + "src": "2855:9:51" + }, + { + "name": "value0", + "nativeSrc": "2866:6:51", + "nodeType": "YulIdentifier", + "src": "2866:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2848:6:51", + "nodeType": "YulIdentifier", + "src": "2848:6:51" + }, + "nativeSrc": "2848:25:51", + "nodeType": "YulFunctionCall", + "src": "2848:25:51" + }, + "nativeSrc": "2848:25:51", + "nodeType": "YulExpressionStatement", + "src": "2848:25:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "2702:177:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2772:9:51", + "nodeType": "YulTypedName", + "src": "2772:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2783:6:51", + "nodeType": "YulTypedName", + "src": "2783:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2794:4:51", + "nodeType": "YulTypedName", + "src": "2794:4:51", + "type": "" + } + ], + "src": "2702:177:51" + }, + { + "body": { + "nativeSrc": "3015:102:51", + "nodeType": "YulBlock", + "src": "3015:102:51", + "statements": [ + { + "nativeSrc": "3025:26:51", + "nodeType": "YulAssignment", + "src": "3025:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3037:9:51", + "nodeType": "YulIdentifier", + "src": "3037:9:51" + }, + { + "kind": "number", + "nativeSrc": "3048:2:51", + "nodeType": "YulLiteral", + "src": "3048:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3033:3:51", + "nodeType": "YulIdentifier", + "src": "3033:3:51" + }, + "nativeSrc": "3033:18:51", + "nodeType": "YulFunctionCall", + "src": "3033:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3025:4:51", + "nodeType": "YulIdentifier", + "src": "3025:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3067:9:51", + "nodeType": "YulIdentifier", + "src": "3067:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3082:6:51", + "nodeType": "YulIdentifier", + "src": "3082:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3098:3:51", + "nodeType": "YulLiteral", + "src": "3098:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "3103:1:51", + "nodeType": "YulLiteral", + "src": "3103:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3094:3:51", + "nodeType": "YulIdentifier", + "src": "3094:3:51" + }, + "nativeSrc": "3094:11:51", + "nodeType": "YulFunctionCall", + "src": "3094:11:51" + }, + { + "kind": "number", + "nativeSrc": "3107:1:51", + "nodeType": "YulLiteral", + "src": "3107:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3090:3:51", + "nodeType": "YulIdentifier", + "src": "3090:3:51" + }, + "nativeSrc": "3090:19:51", + "nodeType": "YulFunctionCall", + "src": "3090:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3078:3:51", + "nodeType": "YulIdentifier", + "src": "3078:3:51" + }, + "nativeSrc": "3078:32:51", + "nodeType": "YulFunctionCall", + "src": "3078:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3060:6:51", + "nodeType": "YulIdentifier", + "src": "3060:6:51" + }, + "nativeSrc": "3060:51:51", + "nodeType": "YulFunctionCall", + "src": "3060:51:51" + }, + "nativeSrc": "3060:51:51", + "nodeType": "YulExpressionStatement", + "src": "3060:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IAddOnlyAppWhitelist_$11098__to_t_address__fromStack_reversed", + "nativeSrc": "2884:233:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2984:9:51", + "nodeType": "YulTypedName", + "src": "2984:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2995:6:51", + "nodeType": "YulTypedName", + "src": "2995:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3006:4:51", + "nodeType": "YulTypedName", + "src": "3006:4:51", + "type": "" + } + ], + "src": "2884:233:51" + }, + { + "body": { + "nativeSrc": "3252:102:51", + "nodeType": "YulBlock", + "src": "3252:102:51", + "statements": [ + { + "nativeSrc": "3262:26:51", + "nodeType": "YulAssignment", + "src": "3262:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3274:9:51", + "nodeType": "YulIdentifier", + "src": "3274:9:51" + }, + { + "kind": "number", + "nativeSrc": "3285:2:51", + "nodeType": "YulLiteral", + "src": "3285:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3270:3:51", + "nodeType": "YulIdentifier", + "src": "3270:3:51" + }, + "nativeSrc": "3270:18:51", + "nodeType": "YulFunctionCall", + "src": "3270:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3262:4:51", + "nodeType": "YulIdentifier", + "src": "3262:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3304:9:51", + "nodeType": "YulIdentifier", + "src": "3304:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3319:6:51", + "nodeType": "YulIdentifier", + "src": "3319:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3335:3:51", + "nodeType": "YulLiteral", + "src": "3335:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "3340:1:51", + "nodeType": "YulLiteral", + "src": "3340:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3331:3:51", + "nodeType": "YulIdentifier", + "src": "3331:3:51" + }, + "nativeSrc": "3331:11:51", + "nodeType": "YulFunctionCall", + "src": "3331:11:51" + }, + { + "kind": "number", + "nativeSrc": "3344:1:51", + "nodeType": "YulLiteral", + "src": "3344:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3327:3:51", + "nodeType": "YulIdentifier", + "src": "3327:3:51" + }, + "nativeSrc": "3327:19:51", + "nodeType": "YulFunctionCall", + "src": "3327:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3315:3:51", + "nodeType": "YulIdentifier", + "src": "3315:3:51" + }, + "nativeSrc": "3315:32:51", + "nodeType": "YulFunctionCall", + "src": "3315:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3297:6:51", + "nodeType": "YulIdentifier", + "src": "3297:6:51" + }, + "nativeSrc": "3297:51:51", + "nodeType": "YulFunctionCall", + "src": "3297:51:51" + }, + "nativeSrc": "3297:51:51", + "nodeType": "YulExpressionStatement", + "src": "3297:51:51" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_AddOnlyAppWhitelist_$12038__to_t_address__fromStack_reversed", + "nativeSrc": "3122:232:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3221:9:51", + "nodeType": "YulTypedName", + "src": "3221:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3232:6:51", + "nodeType": "YulTypedName", + "src": "3232:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3243:4:51", + "nodeType": "YulTypedName", + "src": "3243:4:51", + "type": "" + } + ], + "src": "3122:232:51" + }, + { + "body": { + "nativeSrc": "3443:263:51", + "nodeType": "YulBlock", + "src": "3443:263:51", + "statements": [ + { + "body": { + "nativeSrc": "3489:16:51", + "nodeType": "YulBlock", + "src": "3489:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3498:1:51", + "nodeType": "YulLiteral", + "src": "3498:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3501:1:51", + "nodeType": "YulLiteral", + "src": "3501:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3491:6:51", + "nodeType": "YulIdentifier", + "src": "3491:6:51" + }, + "nativeSrc": "3491:12:51", + "nodeType": "YulFunctionCall", + "src": "3491:12:51" + }, + "nativeSrc": "3491:12:51", + "nodeType": "YulExpressionStatement", + "src": "3491:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3464:7:51", + "nodeType": "YulIdentifier", + "src": "3464:7:51" + }, + { + "name": "headStart", + "nativeSrc": "3473:9:51", + "nodeType": "YulIdentifier", + "src": "3473:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3460:3:51", + "nodeType": "YulIdentifier", + "src": "3460:3:51" + }, + "nativeSrc": "3460:23:51", + "nodeType": "YulFunctionCall", + "src": "3460:23:51" + }, + { + "kind": "number", + "nativeSrc": "3485:2:51", + "nodeType": "YulLiteral", + "src": "3485:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3456:3:51", + "nodeType": "YulIdentifier", + "src": "3456:3:51" + }, + "nativeSrc": "3456:32:51", + "nodeType": "YulFunctionCall", + "src": "3456:32:51" + }, + "nativeSrc": "3453:52:51", + "nodeType": "YulIf", + "src": "3453:52:51" + }, + { + "nativeSrc": "3514:39:51", + "nodeType": "YulAssignment", + "src": "3514:39:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3543:9:51", + "nodeType": "YulIdentifier", + "src": "3543:9:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "3524:18:51", + "nodeType": "YulIdentifier", + "src": "3524:18:51" + }, + "nativeSrc": "3524:29:51", + "nodeType": "YulFunctionCall", + "src": "3524:29:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3514:6:51", + "nodeType": "YulIdentifier", + "src": "3514:6:51" + } + ] + }, + { + "nativeSrc": "3562:45:51", + "nodeType": "YulVariableDeclaration", + "src": "3562:45:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3592:9:51", + "nodeType": "YulIdentifier", + "src": "3592:9:51" + }, + { + "kind": "number", + "nativeSrc": "3603:2:51", + "nodeType": "YulLiteral", + "src": "3603:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3588:3:51", + "nodeType": "YulIdentifier", + "src": "3588:3:51" + }, + "nativeSrc": "3588:18:51", + "nodeType": "YulFunctionCall", + "src": "3588:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3575:12:51", + "nodeType": "YulIdentifier", + "src": "3575:12:51" + }, + "nativeSrc": "3575:32:51", + "nodeType": "YulFunctionCall", + "src": "3575:32:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3566:5:51", + "nodeType": "YulTypedName", + "src": "3566:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3660:16:51", + "nodeType": "YulBlock", + "src": "3660:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3669:1:51", + "nodeType": "YulLiteral", + "src": "3669:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3672:1:51", + "nodeType": "YulLiteral", + "src": "3672:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3662:6:51", + "nodeType": "YulIdentifier", + "src": "3662:6:51" + }, + "nativeSrc": "3662:12:51", + "nodeType": "YulFunctionCall", + "src": "3662:12:51" + }, + "nativeSrc": "3662:12:51", + "nodeType": "YulExpressionStatement", + "src": "3662:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3629:5:51", + "nodeType": "YulIdentifier", + "src": "3629:5:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3650:5:51", + "nodeType": "YulIdentifier", + "src": "3650:5:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3643:6:51", + "nodeType": "YulIdentifier", + "src": "3643:6:51" + }, + "nativeSrc": "3643:13:51", + "nodeType": "YulFunctionCall", + "src": "3643:13:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3636:6:51", + "nodeType": "YulIdentifier", + "src": "3636:6:51" + }, + "nativeSrc": "3636:21:51", + "nodeType": "YulFunctionCall", + "src": "3636:21:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3626:2:51", + "nodeType": "YulIdentifier", + "src": "3626:2:51" + }, + "nativeSrc": "3626:32:51", + "nodeType": "YulFunctionCall", + "src": "3626:32:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3619:6:51", + "nodeType": "YulIdentifier", + "src": "3619:6:51" + }, + "nativeSrc": "3619:40:51", + "nodeType": "YulFunctionCall", + "src": "3619:40:51" + }, + "nativeSrc": "3616:60:51", + "nodeType": "YulIf", + "src": "3616:60:51" + }, + { + "nativeSrc": "3685:15:51", + "nodeType": "YulAssignment", + "src": "3685:15:51", + "value": { + "name": "value", + "nativeSrc": "3695:5:51", + "nodeType": "YulIdentifier", + "src": "3695:5:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3685:6:51", + "nodeType": "YulIdentifier", + "src": "3685:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "3359:347:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3401:9:51", + "nodeType": "YulTypedName", + "src": "3401:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3412:7:51", + "nodeType": "YulTypedName", + "src": "3412:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3424:6:51", + "nodeType": "YulTypedName", + "src": "3424:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3432:6:51", + "nodeType": "YulTypedName", + "src": "3432:6:51", + "type": "" + } + ], + "src": "3359:347:51" + }, + { + "body": { + "nativeSrc": "3743:95:51", + "nodeType": "YulBlock", + "src": "3743:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3760:1:51", + "nodeType": "YulLiteral", + "src": "3760:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3767:3:51", + "nodeType": "YulLiteral", + "src": "3767:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "3772:10:51", + "nodeType": "YulLiteral", + "src": "3772:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3763:3:51", + "nodeType": "YulIdentifier", + "src": "3763:3:51" + }, + "nativeSrc": "3763:20:51", + "nodeType": "YulFunctionCall", + "src": "3763:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3753:6:51", + "nodeType": "YulIdentifier", + "src": "3753:6:51" + }, + "nativeSrc": "3753:31:51", + "nodeType": "YulFunctionCall", + "src": "3753:31:51" + }, + "nativeSrc": "3753:31:51", + "nodeType": "YulExpressionStatement", + "src": "3753:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3800:1:51", + "nodeType": "YulLiteral", + "src": "3800:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "3803:4:51", + "nodeType": "YulLiteral", + "src": "3803:4:51", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3793:6:51", + "nodeType": "YulIdentifier", + "src": "3793:6:51" + }, + "nativeSrc": "3793:15:51", + "nodeType": "YulFunctionCall", + "src": "3793:15:51" + }, + "nativeSrc": "3793:15:51", + "nodeType": "YulExpressionStatement", + "src": "3793:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3824:1:51", + "nodeType": "YulLiteral", + "src": "3824:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3827:4:51", + "nodeType": "YulLiteral", + "src": "3827:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3817:6:51", + "nodeType": "YulIdentifier", + "src": "3817:6:51" + }, + "nativeSrc": "3817:15:51", + "nodeType": "YulFunctionCall", + "src": "3817:15:51" + }, + "nativeSrc": "3817:15:51", + "nodeType": "YulExpressionStatement", + "src": "3817:15:51" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "3711:127:51", + "nodeType": "YulFunctionDefinition", + "src": "3711:127:51" + }, + { + "body": { + "nativeSrc": "3973:1008:51", + "nodeType": "YulBlock", + "src": "3973:1008:51", + "statements": [ + { + "body": { + "nativeSrc": "4020:16:51", + "nodeType": "YulBlock", + "src": "4020:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4029:1:51", + "nodeType": "YulLiteral", + "src": "4029:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4032:1:51", + "nodeType": "YulLiteral", + "src": "4032:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4022:6:51", + "nodeType": "YulIdentifier", + "src": "4022:6:51" + }, + "nativeSrc": "4022:12:51", + "nodeType": "YulFunctionCall", + "src": "4022:12:51" + }, + "nativeSrc": "4022:12:51", + "nodeType": "YulExpressionStatement", + "src": "4022:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3994:7:51", + "nodeType": "YulIdentifier", + "src": "3994:7:51" + }, + { + "name": "headStart", + "nativeSrc": "4003:9:51", + "nodeType": "YulIdentifier", + "src": "4003:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3990:3:51", + "nodeType": "YulIdentifier", + "src": "3990:3:51" + }, + "nativeSrc": "3990:23:51", + "nodeType": "YulFunctionCall", + "src": "3990:23:51" + }, + { + "kind": "number", + "nativeSrc": "4015:3:51", + "nodeType": "YulLiteral", + "src": "4015:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3986:3:51", + "nodeType": "YulIdentifier", + "src": "3986:3:51" + }, + "nativeSrc": "3986:33:51", + "nodeType": "YulFunctionCall", + "src": "3986:33:51" + }, + "nativeSrc": "3983:53:51", + "nodeType": "YulIf", + "src": "3983:53:51" + }, + { + "nativeSrc": "4045:39:51", + "nodeType": "YulAssignment", + "src": "4045:39:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4074:9:51", + "nodeType": "YulIdentifier", + "src": "4074:9:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "4055:18:51", + "nodeType": "YulIdentifier", + "src": "4055:18:51" + }, + "nativeSrc": "4055:29:51", + "nodeType": "YulFunctionCall", + "src": "4055:29:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4045:6:51", + "nodeType": "YulIdentifier", + "src": "4045:6:51" + } + ] + }, + { + "nativeSrc": "4093:48:51", + "nodeType": "YulAssignment", + "src": "4093:48:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4126:9:51", + "nodeType": "YulIdentifier", + "src": "4126:9:51" + }, + { + "kind": "number", + "nativeSrc": "4137:2:51", + "nodeType": "YulLiteral", + "src": "4137:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4122:3:51", + "nodeType": "YulIdentifier", + "src": "4122:3:51" + }, + "nativeSrc": "4122:18:51", + "nodeType": "YulFunctionCall", + "src": "4122:18:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "4103:18:51", + "nodeType": "YulIdentifier", + "src": "4103:18:51" + }, + "nativeSrc": "4103:38:51", + "nodeType": "YulFunctionCall", + "src": "4103:38:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4093:6:51", + "nodeType": "YulIdentifier", + "src": "4093:6:51" + } + ] + }, + { + "nativeSrc": "4150:42:51", + "nodeType": "YulAssignment", + "src": "4150:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4177:9:51", + "nodeType": "YulIdentifier", + "src": "4177:9:51" + }, + { + "kind": "number", + "nativeSrc": "4188:2:51", + "nodeType": "YulLiteral", + "src": "4188:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4173:3:51", + "nodeType": "YulIdentifier", + "src": "4173:3:51" + }, + "nativeSrc": "4173:18:51", + "nodeType": "YulFunctionCall", + "src": "4173:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4160:12:51", + "nodeType": "YulIdentifier", + "src": "4160:12:51" + }, + "nativeSrc": "4160:32:51", + "nodeType": "YulFunctionCall", + "src": "4160:32:51" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4150:6:51", + "nodeType": "YulIdentifier", + "src": "4150:6:51" + } + ] + }, + { + "nativeSrc": "4201:46:51", + "nodeType": "YulVariableDeclaration", + "src": "4201:46:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4232:9:51", + "nodeType": "YulIdentifier", + "src": "4232:9:51" + }, + { + "kind": "number", + "nativeSrc": "4243:2:51", + "nodeType": "YulLiteral", + "src": "4243:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4228:3:51", + "nodeType": "YulIdentifier", + "src": "4228:3:51" + }, + "nativeSrc": "4228:18:51", + "nodeType": "YulFunctionCall", + "src": "4228:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4215:12:51", + "nodeType": "YulIdentifier", + "src": "4215:12:51" + }, + "nativeSrc": "4215:32:51", + "nodeType": "YulFunctionCall", + "src": "4215:32:51" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4205:6:51", + "nodeType": "YulTypedName", + "src": "4205:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "4256:28:51", + "nodeType": "YulVariableDeclaration", + "src": "4256:28:51", + "value": { + "kind": "number", + "nativeSrc": "4266:18:51", + "nodeType": "YulLiteral", + "src": "4266:18:51", + "type": "", + "value": "0xffffffffffffffff" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "4260:2:51", + "nodeType": "YulTypedName", + "src": "4260:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4311:16:51", + "nodeType": "YulBlock", + "src": "4311:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4320:1:51", + "nodeType": "YulLiteral", + "src": "4320:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4323:1:51", + "nodeType": "YulLiteral", + "src": "4323:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4313:6:51", + "nodeType": "YulIdentifier", + "src": "4313:6:51" + }, + "nativeSrc": "4313:12:51", + "nodeType": "YulFunctionCall", + "src": "4313:12:51" + }, + "nativeSrc": "4313:12:51", + "nodeType": "YulExpressionStatement", + "src": "4313:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4299:6:51", + "nodeType": "YulIdentifier", + "src": "4299:6:51" + }, + { + "name": "_1", + "nativeSrc": "4307:2:51", + "nodeType": "YulIdentifier", + "src": "4307:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4296:2:51", + "nodeType": "YulIdentifier", + "src": "4296:2:51" + }, + "nativeSrc": "4296:14:51", + "nodeType": "YulFunctionCall", + "src": "4296:14:51" + }, + "nativeSrc": "4293:34:51", + "nodeType": "YulIf", + "src": "4293:34:51" + }, + { + "nativeSrc": "4336:32:51", + "nodeType": "YulVariableDeclaration", + "src": "4336:32:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4350:9:51", + "nodeType": "YulIdentifier", + "src": "4350:9:51" + }, + { + "name": "offset", + "nativeSrc": "4361:6:51", + "nodeType": "YulIdentifier", + "src": "4361:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4346:3:51", + "nodeType": "YulIdentifier", + "src": "4346:3:51" + }, + "nativeSrc": "4346:22:51", + "nodeType": "YulFunctionCall", + "src": "4346:22:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "4340:2:51", + "nodeType": "YulTypedName", + "src": "4340:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4416:16:51", + "nodeType": "YulBlock", + "src": "4416:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4425:1:51", + "nodeType": "YulLiteral", + "src": "4425:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4428:1:51", + "nodeType": "YulLiteral", + "src": "4428:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4418:6:51", + "nodeType": "YulIdentifier", + "src": "4418:6:51" + }, + "nativeSrc": "4418:12:51", + "nodeType": "YulFunctionCall", + "src": "4418:12:51" + }, + "nativeSrc": "4418:12:51", + "nodeType": "YulExpressionStatement", + "src": "4418:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "4395:2:51", + "nodeType": "YulIdentifier", + "src": "4395:2:51" + }, + { + "kind": "number", + "nativeSrc": "4399:4:51", + "nodeType": "YulLiteral", + "src": "4399:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4391:3:51", + "nodeType": "YulIdentifier", + "src": "4391:3:51" + }, + "nativeSrc": "4391:13:51", + "nodeType": "YulFunctionCall", + "src": "4391:13:51" + }, + { + "name": "dataEnd", + "nativeSrc": "4406:7:51", + "nodeType": "YulIdentifier", + "src": "4406:7:51" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4387:3:51", + "nodeType": "YulIdentifier", + "src": "4387:3:51" + }, + "nativeSrc": "4387:27:51", + "nodeType": "YulFunctionCall", + "src": "4387:27:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4380:6:51", + "nodeType": "YulIdentifier", + "src": "4380:6:51" + }, + "nativeSrc": "4380:35:51", + "nodeType": "YulFunctionCall", + "src": "4380:35:51" + }, + "nativeSrc": "4377:55:51", + "nodeType": "YulIf", + "src": "4377:55:51" + }, + { + "nativeSrc": "4441:26:51", + "nodeType": "YulVariableDeclaration", + "src": "4441:26:51", + "value": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "4464:2:51", + "nodeType": "YulIdentifier", + "src": "4464:2:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4451:12:51", + "nodeType": "YulIdentifier", + "src": "4451:12:51" + }, + "nativeSrc": "4451:16:51", + "nodeType": "YulFunctionCall", + "src": "4451:16:51" + }, + "variables": [ + { + "name": "_3", + "nativeSrc": "4445:2:51", + "nodeType": "YulTypedName", + "src": "4445:2:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4490:22:51", + "nodeType": "YulBlock", + "src": "4490:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "4492:16:51", + "nodeType": "YulIdentifier", + "src": "4492:16:51" + }, + "nativeSrc": "4492:18:51", + "nodeType": "YulFunctionCall", + "src": "4492:18:51" + }, + "nativeSrc": "4492:18:51", + "nodeType": "YulExpressionStatement", + "src": "4492:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_3", + "nativeSrc": "4482:2:51", + "nodeType": "YulIdentifier", + "src": "4482:2:51" + }, + { + "name": "_1", + "nativeSrc": "4486:2:51", + "nodeType": "YulIdentifier", + "src": "4486:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4479:2:51", + "nodeType": "YulIdentifier", + "src": "4479:2:51" + }, + "nativeSrc": "4479:10:51", + "nodeType": "YulFunctionCall", + "src": "4479:10:51" + }, + "nativeSrc": "4476:36:51", + "nodeType": "YulIf", + "src": "4476:36:51" + }, + { + "nativeSrc": "4521:17:51", + "nodeType": "YulVariableDeclaration", + "src": "4521:17:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4535:2:51", + "nodeType": "YulLiteral", + "src": "4535:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4531:3:51", + "nodeType": "YulIdentifier", + "src": "4531:3:51" + }, + "nativeSrc": "4531:7:51", + "nodeType": "YulFunctionCall", + "src": "4531:7:51" + }, + "variables": [ + { + "name": "_4", + "nativeSrc": "4525:2:51", + "nodeType": "YulTypedName", + "src": "4525:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "4547:23:51", + "nodeType": "YulVariableDeclaration", + "src": "4547:23:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4567:2:51", + "nodeType": "YulLiteral", + "src": "4567:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4561:5:51", + "nodeType": "YulIdentifier", + "src": "4561:5:51" + }, + "nativeSrc": "4561:9:51", + "nodeType": "YulFunctionCall", + "src": "4561:9:51" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "4551:6:51", + "nodeType": "YulTypedName", + "src": "4551:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "4579:71:51", + "nodeType": "YulVariableDeclaration", + "src": "4579:71:51", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "4601:6:51", + "nodeType": "YulIdentifier", + "src": "4601:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_3", + "nativeSrc": "4625:2:51", + "nodeType": "YulIdentifier", + "src": "4625:2:51" + }, + { + "kind": "number", + "nativeSrc": "4629:4:51", + "nodeType": "YulLiteral", + "src": "4629:4:51", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4621:3:51", + "nodeType": "YulIdentifier", + "src": "4621:3:51" + }, + "nativeSrc": "4621:13:51", + "nodeType": "YulFunctionCall", + "src": "4621:13:51" + }, + { + "name": "_4", + "nativeSrc": "4636:2:51", + "nodeType": "YulIdentifier", + "src": "4636:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4617:3:51", + "nodeType": "YulIdentifier", + "src": "4617:3:51" + }, + "nativeSrc": "4617:22:51", + "nodeType": "YulFunctionCall", + "src": "4617:22:51" + }, + { + "kind": "number", + "nativeSrc": "4641:2:51", + "nodeType": "YulLiteral", + "src": "4641:2:51", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4613:3:51", + "nodeType": "YulIdentifier", + "src": "4613:3:51" + }, + "nativeSrc": "4613:31:51", + "nodeType": "YulFunctionCall", + "src": "4613:31:51" + }, + { + "name": "_4", + "nativeSrc": "4646:2:51", + "nodeType": "YulIdentifier", + "src": "4646:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4609:3:51", + "nodeType": "YulIdentifier", + "src": "4609:3:51" + }, + "nativeSrc": "4609:40:51", + "nodeType": "YulFunctionCall", + "src": "4609:40:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4597:3:51", + "nodeType": "YulIdentifier", + "src": "4597:3:51" + }, + "nativeSrc": "4597:53:51", + "nodeType": "YulFunctionCall", + "src": "4597:53:51" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "4583:10:51", + "nodeType": "YulTypedName", + "src": "4583:10:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4709:22:51", + "nodeType": "YulBlock", + "src": "4709:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "4711:16:51", + "nodeType": "YulIdentifier", + "src": "4711:16:51" + }, + "nativeSrc": "4711:18:51", + "nodeType": "YulFunctionCall", + "src": "4711:18:51" + }, + "nativeSrc": "4711:18:51", + "nodeType": "YulExpressionStatement", + "src": "4711:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "4668:10:51", + "nodeType": "YulIdentifier", + "src": "4668:10:51" + }, + { + "name": "_1", + "nativeSrc": "4680:2:51", + "nodeType": "YulIdentifier", + "src": "4680:2:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4665:2:51", + "nodeType": "YulIdentifier", + "src": "4665:2:51" + }, + "nativeSrc": "4665:18:51", + "nodeType": "YulFunctionCall", + "src": "4665:18:51" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "4688:10:51", + "nodeType": "YulIdentifier", + "src": "4688:10:51" + }, + { + "name": "memPtr", + "nativeSrc": "4700:6:51", + "nodeType": "YulIdentifier", + "src": "4700:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4685:2:51", + "nodeType": "YulIdentifier", + "src": "4685:2:51" + }, + "nativeSrc": "4685:22:51", + "nodeType": "YulFunctionCall", + "src": "4685:22:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "4662:2:51", + "nodeType": "YulIdentifier", + "src": "4662:2:51" + }, + "nativeSrc": "4662:46:51", + "nodeType": "YulFunctionCall", + "src": "4662:46:51" + }, + "nativeSrc": "4659:72:51", + "nodeType": "YulIf", + "src": "4659:72:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4747:2:51", + "nodeType": "YulLiteral", + "src": "4747:2:51", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "4751:10:51", + "nodeType": "YulIdentifier", + "src": "4751:10:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4740:6:51", + "nodeType": "YulIdentifier", + "src": "4740:6:51" + }, + "nativeSrc": "4740:22:51", + "nodeType": "YulFunctionCall", + "src": "4740:22:51" + }, + "nativeSrc": "4740:22:51", + "nodeType": "YulExpressionStatement", + "src": "4740:22:51" + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "4778:6:51", + "nodeType": "YulIdentifier", + "src": "4778:6:51" + }, + { + "name": "_3", + "nativeSrc": "4786:2:51", + "nodeType": "YulIdentifier", + "src": "4786:2:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4771:6:51", + "nodeType": "YulIdentifier", + "src": "4771:6:51" + }, + "nativeSrc": "4771:18:51", + "nodeType": "YulFunctionCall", + "src": "4771:18:51" + }, + "nativeSrc": "4771:18:51", + "nodeType": "YulExpressionStatement", + "src": "4771:18:51" + }, + { + "body": { + "nativeSrc": "4835:16:51", + "nodeType": "YulBlock", + "src": "4835:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4844:1:51", + "nodeType": "YulLiteral", + "src": "4844:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4847:1:51", + "nodeType": "YulLiteral", + "src": "4847:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4837:6:51", + "nodeType": "YulIdentifier", + "src": "4837:6:51" + }, + "nativeSrc": "4837:12:51", + "nodeType": "YulFunctionCall", + "src": "4837:12:51" + }, + "nativeSrc": "4837:12:51", + "nodeType": "YulExpressionStatement", + "src": "4837:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "4812:2:51", + "nodeType": "YulIdentifier", + "src": "4812:2:51" + }, + { + "name": "_3", + "nativeSrc": "4816:2:51", + "nodeType": "YulIdentifier", + "src": "4816:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4808:3:51", + "nodeType": "YulIdentifier", + "src": "4808:3:51" + }, + "nativeSrc": "4808:11:51", + "nodeType": "YulFunctionCall", + "src": "4808:11:51" + }, + { + "kind": "number", + "nativeSrc": "4821:2:51", + "nodeType": "YulLiteral", + "src": "4821:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4804:3:51", + "nodeType": "YulIdentifier", + "src": "4804:3:51" + }, + "nativeSrc": "4804:20:51", + "nodeType": "YulFunctionCall", + "src": "4804:20:51" + }, + { + "name": "dataEnd", + "nativeSrc": "4826:7:51", + "nodeType": "YulIdentifier", + "src": "4826:7:51" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4801:2:51", + "nodeType": "YulIdentifier", + "src": "4801:2:51" + }, + "nativeSrc": "4801:33:51", + "nodeType": "YulFunctionCall", + "src": "4801:33:51" + }, + "nativeSrc": "4798:53:51", + "nodeType": "YulIf", + "src": "4798:53:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "4877:6:51", + "nodeType": "YulIdentifier", + "src": "4877:6:51" + }, + { + "kind": "number", + "nativeSrc": "4885:2:51", + "nodeType": "YulLiteral", + "src": "4885:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4873:3:51", + "nodeType": "YulIdentifier", + "src": "4873:3:51" + }, + "nativeSrc": "4873:15:51", + "nodeType": "YulFunctionCall", + "src": "4873:15:51" + }, + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "4894:2:51", + "nodeType": "YulIdentifier", + "src": "4894:2:51" + }, + { + "kind": "number", + "nativeSrc": "4898:2:51", + "nodeType": "YulLiteral", + "src": "4898:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4890:3:51", + "nodeType": "YulIdentifier", + "src": "4890:3:51" + }, + "nativeSrc": "4890:11:51", + "nodeType": "YulFunctionCall", + "src": "4890:11:51" + }, + { + "name": "_3", + "nativeSrc": "4903:2:51", + "nodeType": "YulIdentifier", + "src": "4903:2:51" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "4860:12:51", + "nodeType": "YulIdentifier", + "src": "4860:12:51" + }, + "nativeSrc": "4860:46:51", + "nodeType": "YulFunctionCall", + "src": "4860:46:51" + }, + "nativeSrc": "4860:46:51", + "nodeType": "YulExpressionStatement", + "src": "4860:46:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "4930:6:51", + "nodeType": "YulIdentifier", + "src": "4930:6:51" + }, + { + "name": "_3", + "nativeSrc": "4938:2:51", + "nodeType": "YulIdentifier", + "src": "4938:2:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4926:3:51", + "nodeType": "YulIdentifier", + "src": "4926:3:51" + }, + "nativeSrc": "4926:15:51", + "nodeType": "YulFunctionCall", + "src": "4926:15:51" + }, + { + "kind": "number", + "nativeSrc": "4943:2:51", + "nodeType": "YulLiteral", + "src": "4943:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4922:3:51", + "nodeType": "YulIdentifier", + "src": "4922:3:51" + }, + "nativeSrc": "4922:24:51", + "nodeType": "YulFunctionCall", + "src": "4922:24:51" + }, + { + "kind": "number", + "nativeSrc": "4948:1:51", + "nodeType": "YulLiteral", + "src": "4948:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4915:6:51", + "nodeType": "YulIdentifier", + "src": "4915:6:51" + }, + "nativeSrc": "4915:35:51", + "nodeType": "YulFunctionCall", + "src": "4915:35:51" + }, + "nativeSrc": "4915:35:51", + "nodeType": "YulExpressionStatement", + "src": "4915:35:51" + }, + { + "nativeSrc": "4959:16:51", + "nodeType": "YulAssignment", + "src": "4959:16:51", + "value": { + "name": "memPtr", + "nativeSrc": "4969:6:51", + "nodeType": "YulIdentifier", + "src": "4969:6:51" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "4959:6:51", + "nodeType": "YulIdentifier", + "src": "4959:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nativeSrc": "3843:1138:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3915:9:51", + "nodeType": "YulTypedName", + "src": "3915:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3926:7:51", + "nodeType": "YulTypedName", + "src": "3926:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3938:6:51", + "nodeType": "YulTypedName", + "src": "3938:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3946:6:51", + "nodeType": "YulTypedName", + "src": "3946:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "3954:6:51", + "nodeType": "YulTypedName", + "src": "3954:6:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "3962:6:51", + "nodeType": "YulTypedName", + "src": "3962:6:51", + "type": "" + } + ], + "src": "3843:1138:51" + }, + { + "body": { + "nativeSrc": "5073:173:51", + "nodeType": "YulBlock", + "src": "5073:173:51", + "statements": [ + { + "body": { + "nativeSrc": "5119:16:51", + "nodeType": "YulBlock", + "src": "5119:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5128:1:51", + "nodeType": "YulLiteral", + "src": "5128:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5131:1:51", + "nodeType": "YulLiteral", + "src": "5131:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5121:6:51", + "nodeType": "YulIdentifier", + "src": "5121:6:51" + }, + "nativeSrc": "5121:12:51", + "nodeType": "YulFunctionCall", + "src": "5121:12:51" + }, + "nativeSrc": "5121:12:51", + "nodeType": "YulExpressionStatement", + "src": "5121:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5094:7:51", + "nodeType": "YulIdentifier", + "src": "5094:7:51" + }, + { + "name": "headStart", + "nativeSrc": "5103:9:51", + "nodeType": "YulIdentifier", + "src": "5103:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5090:3:51", + "nodeType": "YulIdentifier", + "src": "5090:3:51" + }, + "nativeSrc": "5090:23:51", + "nodeType": "YulFunctionCall", + "src": "5090:23:51" + }, + { + "kind": "number", + "nativeSrc": "5115:2:51", + "nodeType": "YulLiteral", + "src": "5115:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5086:3:51", + "nodeType": "YulIdentifier", + "src": "5086:3:51" + }, + "nativeSrc": "5086:32:51", + "nodeType": "YulFunctionCall", + "src": "5086:32:51" + }, + "nativeSrc": "5083:52:51", + "nodeType": "YulIf", + "src": "5083:52:51" + }, + { + "nativeSrc": "5144:39:51", + "nodeType": "YulAssignment", + "src": "5144:39:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5173:9:51", + "nodeType": "YulIdentifier", + "src": "5173:9:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "5154:18:51", + "nodeType": "YulIdentifier", + "src": "5154:18:51" + }, + "nativeSrc": "5154:29:51", + "nodeType": "YulFunctionCall", + "src": "5154:29:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5144:6:51", + "nodeType": "YulIdentifier", + "src": "5144:6:51" + } + ] + }, + { + "nativeSrc": "5192:48:51", + "nodeType": "YulAssignment", + "src": "5192:48:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5225:9:51", + "nodeType": "YulIdentifier", + "src": "5225:9:51" + }, + { + "kind": "number", + "nativeSrc": "5236:2:51", + "nodeType": "YulLiteral", + "src": "5236:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5221:3:51", + "nodeType": "YulIdentifier", + "src": "5221:3:51" + }, + "nativeSrc": "5221:18:51", + "nodeType": "YulFunctionCall", + "src": "5221:18:51" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "5202:18:51", + "nodeType": "YulIdentifier", + "src": "5202:18:51" + }, + "nativeSrc": "5202:38:51", + "nodeType": "YulFunctionCall", + "src": "5202:38:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5192:6:51", + "nodeType": "YulIdentifier", + "src": "5192:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "4986:260:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5031:9:51", + "nodeType": "YulTypedName", + "src": "5031:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5042:7:51", + "nodeType": "YulTypedName", + "src": "5042:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5054:6:51", + "nodeType": "YulTypedName", + "src": "5054:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5062:6:51", + "nodeType": "YulTypedName", + "src": "5062:6:51", + "type": "" + } + ], + "src": "4986:260:51" + }, + { + "body": { + "nativeSrc": "5306:325:51", + "nodeType": "YulBlock", + "src": "5306:325:51", + "statements": [ + { + "nativeSrc": "5316:22:51", + "nodeType": "YulAssignment", + "src": "5316:22:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5330:1:51", + "nodeType": "YulLiteral", + "src": "5330:1:51", + "type": "", + "value": "1" + }, + { + "name": "data", + "nativeSrc": "5333:4:51", + "nodeType": "YulIdentifier", + "src": "5333:4:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "5326:3:51", + "nodeType": "YulIdentifier", + "src": "5326:3:51" + }, + "nativeSrc": "5326:12:51", + "nodeType": "YulFunctionCall", + "src": "5326:12:51" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5316:6:51", + "nodeType": "YulIdentifier", + "src": "5316:6:51" + } + ] + }, + { + "nativeSrc": "5347:38:51", + "nodeType": "YulVariableDeclaration", + "src": "5347:38:51", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "5377:4:51", + "nodeType": "YulIdentifier", + "src": "5377:4:51" + }, + { + "kind": "number", + "nativeSrc": "5383:1:51", + "nodeType": "YulLiteral", + "src": "5383:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5373:3:51", + "nodeType": "YulIdentifier", + "src": "5373:3:51" + }, + "nativeSrc": "5373:12:51", + "nodeType": "YulFunctionCall", + "src": "5373:12:51" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5351:18:51", + "nodeType": "YulTypedName", + "src": "5351:18:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5424:31:51", + "nodeType": "YulBlock", + "src": "5424:31:51", + "statements": [ + { + "nativeSrc": "5426:27:51", + "nodeType": "YulAssignment", + "src": "5426:27:51", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "5440:6:51", + "nodeType": "YulIdentifier", + "src": "5440:6:51" + }, + { + "kind": "number", + "nativeSrc": "5448:4:51", + "nodeType": "YulLiteral", + "src": "5448:4:51", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5436:3:51", + "nodeType": "YulIdentifier", + "src": "5436:3:51" + }, + "nativeSrc": "5436:17:51", + "nodeType": "YulFunctionCall", + "src": "5436:17:51" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5426:6:51", + "nodeType": "YulIdentifier", + "src": "5426:6:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5404:18:51", + "nodeType": "YulIdentifier", + "src": "5404:18:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5397:6:51", + "nodeType": "YulIdentifier", + "src": "5397:6:51" + }, + "nativeSrc": "5397:26:51", + "nodeType": "YulFunctionCall", + "src": "5397:26:51" + }, + "nativeSrc": "5394:61:51", + "nodeType": "YulIf", + "src": "5394:61:51" + }, + { + "body": { + "nativeSrc": "5514:111:51", + "nodeType": "YulBlock", + "src": "5514:111:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5535:1:51", + "nodeType": "YulLiteral", + "src": "5535:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5542:3:51", + "nodeType": "YulLiteral", + "src": "5542:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "5547:10:51", + "nodeType": "YulLiteral", + "src": "5547:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "5538:3:51", + "nodeType": "YulIdentifier", + "src": "5538:3:51" + }, + "nativeSrc": "5538:20:51", + "nodeType": "YulFunctionCall", + "src": "5538:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5528:6:51", + "nodeType": "YulIdentifier", + "src": "5528:6:51" + }, + "nativeSrc": "5528:31:51", + "nodeType": "YulFunctionCall", + "src": "5528:31:51" + }, + "nativeSrc": "5528:31:51", + "nodeType": "YulExpressionStatement", + "src": "5528:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5579:1:51", + "nodeType": "YulLiteral", + "src": "5579:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "5582:4:51", + "nodeType": "YulLiteral", + "src": "5582:4:51", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5572:6:51", + "nodeType": "YulIdentifier", + "src": "5572:6:51" + }, + "nativeSrc": "5572:15:51", + "nodeType": "YulFunctionCall", + "src": "5572:15:51" + }, + "nativeSrc": "5572:15:51", + "nodeType": "YulExpressionStatement", + "src": "5572:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5607:1:51", + "nodeType": "YulLiteral", + "src": "5607:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5610:4:51", + "nodeType": "YulLiteral", + "src": "5610:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5600:6:51", + "nodeType": "YulIdentifier", + "src": "5600:6:51" + }, + "nativeSrc": "5600:15:51", + "nodeType": "YulFunctionCall", + "src": "5600:15:51" + }, + "nativeSrc": "5600:15:51", + "nodeType": "YulExpressionStatement", + "src": "5600:15:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "5470:18:51", + "nodeType": "YulIdentifier", + "src": "5470:18:51" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5493:6:51", + "nodeType": "YulIdentifier", + "src": "5493:6:51" + }, + { + "kind": "number", + "nativeSrc": "5501:2:51", + "nodeType": "YulLiteral", + "src": "5501:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5490:2:51", + "nodeType": "YulIdentifier", + "src": "5490:2:51" + }, + "nativeSrc": "5490:14:51", + "nodeType": "YulFunctionCall", + "src": "5490:14:51" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5467:2:51", + "nodeType": "YulIdentifier", + "src": "5467:2:51" + }, + "nativeSrc": "5467:38:51", + "nodeType": "YulFunctionCall", + "src": "5467:38:51" + }, + "nativeSrc": "5464:161:51", + "nodeType": "YulIf", + "src": "5464:161:51" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "5251:380:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "5286:4:51", + "nodeType": "YulTypedName", + "src": "5286:4:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "5295:6:51", + "nodeType": "YulTypedName", + "src": "5295:6:51", + "type": "" + } + ], + "src": "5251:380:51" + }, + { + "body": { + "nativeSrc": "5793:218:51", + "nodeType": "YulBlock", + "src": "5793:218:51", + "statements": [ + { + "nativeSrc": "5803:26:51", + "nodeType": "YulAssignment", + "src": "5803:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5815:9:51", + "nodeType": "YulIdentifier", + "src": "5815:9:51" + }, + { + "kind": "number", + "nativeSrc": "5826:2:51", + "nodeType": "YulLiteral", + "src": "5826:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5811:3:51", + "nodeType": "YulIdentifier", + "src": "5811:3:51" + }, + "nativeSrc": "5811:18:51", + "nodeType": "YulFunctionCall", + "src": "5811:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5803:4:51", + "nodeType": "YulIdentifier", + "src": "5803:4:51" + } + ] + }, + { + "nativeSrc": "5838:29:51", + "nodeType": "YulVariableDeclaration", + "src": "5838:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5856:3:51", + "nodeType": "YulLiteral", + "src": "5856:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "5861:1:51", + "nodeType": "YulLiteral", + "src": "5861:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "5852:3:51", + "nodeType": "YulIdentifier", + "src": "5852:3:51" + }, + "nativeSrc": "5852:11:51", + "nodeType": "YulFunctionCall", + "src": "5852:11:51" + }, + { + "kind": "number", + "nativeSrc": "5865:1:51", + "nodeType": "YulLiteral", + "src": "5865:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5848:3:51", + "nodeType": "YulIdentifier", + "src": "5848:3:51" + }, + "nativeSrc": "5848:19:51", + "nodeType": "YulFunctionCall", + "src": "5848:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "5842:2:51", + "nodeType": "YulTypedName", + "src": "5842:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5883:9:51", + "nodeType": "YulIdentifier", + "src": "5883:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5898:6:51", + "nodeType": "YulIdentifier", + "src": "5898:6:51" + }, + { + "name": "_1", + "nativeSrc": "5906:2:51", + "nodeType": "YulIdentifier", + "src": "5906:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5894:3:51", + "nodeType": "YulIdentifier", + "src": "5894:3:51" + }, + "nativeSrc": "5894:15:51", + "nodeType": "YulFunctionCall", + "src": "5894:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5876:6:51", + "nodeType": "YulIdentifier", + "src": "5876:6:51" + }, + "nativeSrc": "5876:34:51", + "nodeType": "YulFunctionCall", + "src": "5876:34:51" + }, + "nativeSrc": "5876:34:51", + "nodeType": "YulExpressionStatement", + "src": "5876:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5930:9:51", + "nodeType": "YulIdentifier", + "src": "5930:9:51" + }, + { + "kind": "number", + "nativeSrc": "5941:2:51", + "nodeType": "YulLiteral", + "src": "5941:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5926:3:51", + "nodeType": "YulIdentifier", + "src": "5926:3:51" + }, + "nativeSrc": "5926:18:51", + "nodeType": "YulFunctionCall", + "src": "5926:18:51" + }, + { + "name": "value1", + "nativeSrc": "5946:6:51", + "nodeType": "YulIdentifier", + "src": "5946:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5919:6:51", + "nodeType": "YulIdentifier", + "src": "5919:6:51" + }, + "nativeSrc": "5919:34:51", + "nodeType": "YulFunctionCall", + "src": "5919:34:51" + }, + "nativeSrc": "5919:34:51", + "nodeType": "YulExpressionStatement", + "src": "5919:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5973:9:51", + "nodeType": "YulIdentifier", + "src": "5973:9:51" + }, + { + "kind": "number", + "nativeSrc": "5984:2:51", + "nodeType": "YulLiteral", + "src": "5984:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5969:3:51", + "nodeType": "YulIdentifier", + "src": "5969:3:51" + }, + "nativeSrc": "5969:18:51", + "nodeType": "YulFunctionCall", + "src": "5969:18:51" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "5993:6:51", + "nodeType": "YulIdentifier", + "src": "5993:6:51" + }, + { + "name": "_1", + "nativeSrc": "6001:2:51", + "nodeType": "YulIdentifier", + "src": "6001:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5989:3:51", + "nodeType": "YulIdentifier", + "src": "5989:3:51" + }, + "nativeSrc": "5989:15:51", + "nodeType": "YulFunctionCall", + "src": "5989:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5962:6:51", + "nodeType": "YulIdentifier", + "src": "5962:6:51" + }, + "nativeSrc": "5962:43:51", + "nodeType": "YulFunctionCall", + "src": "5962:43:51" + }, + "nativeSrc": "5962:43:51", + "nodeType": "YulExpressionStatement", + "src": "5962:43:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "5636:375:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5746:9:51", + "nodeType": "YulTypedName", + "src": "5746:9:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5757:6:51", + "nodeType": "YulTypedName", + "src": "5757:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5765:6:51", + "nodeType": "YulTypedName", + "src": "5765:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5773:6:51", + "nodeType": "YulTypedName", + "src": "5773:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5784:4:51", + "nodeType": "YulTypedName", + "src": "5784:4:51", + "type": "" + } + ], + "src": "5636:375:51" + }, + { + "body": { + "nativeSrc": "6124:101:51", + "nodeType": "YulBlock", + "src": "6124:101:51", + "statements": [ + { + "nativeSrc": "6134:26:51", + "nodeType": "YulAssignment", + "src": "6134:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6146:9:51", + "nodeType": "YulIdentifier", + "src": "6146:9:51" + }, + { + "kind": "number", + "nativeSrc": "6157:2:51", + "nodeType": "YulLiteral", + "src": "6157:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6142:3:51", + "nodeType": "YulIdentifier", + "src": "6142:3:51" + }, + "nativeSrc": "6142:18:51", + "nodeType": "YulFunctionCall", + "src": "6142:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6134:4:51", + "nodeType": "YulIdentifier", + "src": "6134:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6176:9:51", + "nodeType": "YulIdentifier", + "src": "6176:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6191:6:51", + "nodeType": "YulIdentifier", + "src": "6191:6:51" + }, + { + "kind": "number", + "nativeSrc": "6199:18:51", + "nodeType": "YulLiteral", + "src": "6199:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6187:3:51", + "nodeType": "YulIdentifier", + "src": "6187:3:51" + }, + "nativeSrc": "6187:31:51", + "nodeType": "YulFunctionCall", + "src": "6187:31:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6169:6:51", + "nodeType": "YulIdentifier", + "src": "6169:6:51" + }, + "nativeSrc": "6169:50:51", + "nodeType": "YulFunctionCall", + "src": "6169:50:51" + }, + "nativeSrc": "6169:50:51", + "nodeType": "YulExpressionStatement", + "src": "6169:50:51" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "6016:209:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6093:9:51", + "nodeType": "YulTypedName", + "src": "6093:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6104:6:51", + "nodeType": "YulTypedName", + "src": "6104:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6115:4:51", + "nodeType": "YulTypedName", + "src": "6115:4:51", + "type": "" + } + ], + "src": "6016:209:51" + }, + { + "body": { + "nativeSrc": "6417:309:51", + "nodeType": "YulBlock", + "src": "6417:309:51", + "statements": [ + { + "nativeSrc": "6427:27:51", + "nodeType": "YulVariableDeclaration", + "src": "6427:27:51", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6447:6:51", + "nodeType": "YulIdentifier", + "src": "6447:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6441:5:51", + "nodeType": "YulIdentifier", + "src": "6441:5:51" + }, + "nativeSrc": "6441:13:51", + "nodeType": "YulFunctionCall", + "src": "6441:13:51" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "6431:6:51", + "nodeType": "YulTypedName", + "src": "6431:6:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "6502:6:51", + "nodeType": "YulIdentifier", + "src": "6502:6:51" + }, + { + "kind": "number", + "nativeSrc": "6510:4:51", + "nodeType": "YulLiteral", + "src": "6510:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6498:3:51", + "nodeType": "YulIdentifier", + "src": "6498:3:51" + }, + "nativeSrc": "6498:17:51", + "nodeType": "YulFunctionCall", + "src": "6498:17:51" + }, + { + "name": "pos", + "nativeSrc": "6517:3:51", + "nodeType": "YulIdentifier", + "src": "6517:3:51" + }, + { + "name": "length", + "nativeSrc": "6522:6:51", + "nodeType": "YulIdentifier", + "src": "6522:6:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6463:34:51", + "nodeType": "YulIdentifier", + "src": "6463:34:51" + }, + "nativeSrc": "6463:66:51", + "nodeType": "YulFunctionCall", + "src": "6463:66:51" + }, + "nativeSrc": "6463:66:51", + "nodeType": "YulExpressionStatement", + "src": "6463:66:51" + }, + { + "nativeSrc": "6538:29:51", + "nodeType": "YulVariableDeclaration", + "src": "6538:29:51", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "6555:3:51", + "nodeType": "YulIdentifier", + "src": "6555:3:51" + }, + { + "name": "length", + "nativeSrc": "6560:6:51", + "nodeType": "YulIdentifier", + "src": "6560:6:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6551:3:51", + "nodeType": "YulIdentifier", + "src": "6551:3:51" + }, + "nativeSrc": "6551:16:51", + "nodeType": "YulFunctionCall", + "src": "6551:16:51" + }, + "variables": [ + { + "name": "end_1", + "nativeSrc": "6542:5:51", + "nodeType": "YulTypedName", + "src": "6542:5:51", + "type": "" + } + ] + }, + { + "nativeSrc": "6576:29:51", + "nodeType": "YulVariableDeclaration", + "src": "6576:29:51", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "6598:6:51", + "nodeType": "YulIdentifier", + "src": "6598:6:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6592:5:51", + "nodeType": "YulIdentifier", + "src": "6592:5:51" + }, + "nativeSrc": "6592:13:51", + "nodeType": "YulFunctionCall", + "src": "6592:13:51" + }, + "variables": [ + { + "name": "length_1", + "nativeSrc": "6580:8:51", + "nodeType": "YulTypedName", + "src": "6580:8:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "6653:6:51", + "nodeType": "YulIdentifier", + "src": "6653:6:51" + }, + { + "kind": "number", + "nativeSrc": "6661:4:51", + "nodeType": "YulLiteral", + "src": "6661:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6649:3:51", + "nodeType": "YulIdentifier", + "src": "6649:3:51" + }, + "nativeSrc": "6649:17:51", + "nodeType": "YulFunctionCall", + "src": "6649:17:51" + }, + { + "name": "end_1", + "nativeSrc": "6668:5:51", + "nodeType": "YulIdentifier", + "src": "6668:5:51" + }, + { + "name": "length_1", + "nativeSrc": "6675:8:51", + "nodeType": "YulIdentifier", + "src": "6675:8:51" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "6614:34:51", + "nodeType": "YulIdentifier", + "src": "6614:34:51" + }, + "nativeSrc": "6614:70:51", + "nodeType": "YulFunctionCall", + "src": "6614:70:51" + }, + "nativeSrc": "6614:70:51", + "nodeType": "YulExpressionStatement", + "src": "6614:70:51" + }, + { + "nativeSrc": "6693:27:51", + "nodeType": "YulAssignment", + "src": "6693:27:51", + "value": { + "arguments": [ + { + "name": "end_1", + "nativeSrc": "6704:5:51", + "nodeType": "YulIdentifier", + "src": "6704:5:51" + }, + { + "name": "length_1", + "nativeSrc": "6711:8:51", + "nodeType": "YulIdentifier", + "src": "6711:8:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6700:3:51", + "nodeType": "YulIdentifier", + "src": "6700:3:51" + }, + "nativeSrc": "6700:20:51", + "nodeType": "YulFunctionCall", + "src": "6700:20:51" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "6693:3:51", + "nodeType": "YulIdentifier", + "src": "6693:3:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "6230:496:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "6385:3:51", + "nodeType": "YulTypedName", + "src": "6385:3:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6390:6:51", + "nodeType": "YulTypedName", + "src": "6390:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6398:6:51", + "nodeType": "YulTypedName", + "src": "6398:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "6409:3:51", + "nodeType": "YulTypedName", + "src": "6409:3:51", + "type": "" + } + ], + "src": "6230:496:51" + }, + { + "body": { + "nativeSrc": "6934:286:51", + "nodeType": "YulBlock", + "src": "6934:286:51", + "statements": [ + { + "nativeSrc": "6944:29:51", + "nodeType": "YulVariableDeclaration", + "src": "6944:29:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6962:3:51", + "nodeType": "YulLiteral", + "src": "6962:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "6967:1:51", + "nodeType": "YulLiteral", + "src": "6967:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6958:3:51", + "nodeType": "YulIdentifier", + "src": "6958:3:51" + }, + "nativeSrc": "6958:11:51", + "nodeType": "YulFunctionCall", + "src": "6958:11:51" + }, + { + "kind": "number", + "nativeSrc": "6971:1:51", + "nodeType": "YulLiteral", + "src": "6971:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6954:3:51", + "nodeType": "YulIdentifier", + "src": "6954:3:51" + }, + "nativeSrc": "6954:19:51", + "nodeType": "YulFunctionCall", + "src": "6954:19:51" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "6948:2:51", + "nodeType": "YulTypedName", + "src": "6948:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6989:9:51", + "nodeType": "YulIdentifier", + "src": "6989:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7004:6:51", + "nodeType": "YulIdentifier", + "src": "7004:6:51" + }, + { + "name": "_1", + "nativeSrc": "7012:2:51", + "nodeType": "YulIdentifier", + "src": "7012:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7000:3:51", + "nodeType": "YulIdentifier", + "src": "7000:3:51" + }, + "nativeSrc": "7000:15:51", + "nodeType": "YulFunctionCall", + "src": "7000:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6982:6:51", + "nodeType": "YulIdentifier", + "src": "6982:6:51" + }, + "nativeSrc": "6982:34:51", + "nodeType": "YulFunctionCall", + "src": "6982:34:51" + }, + "nativeSrc": "6982:34:51", + "nodeType": "YulExpressionStatement", + "src": "6982:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7036:9:51", + "nodeType": "YulIdentifier", + "src": "7036:9:51" + }, + { + "kind": "number", + "nativeSrc": "7047:2:51", + "nodeType": "YulLiteral", + "src": "7047:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7032:3:51", + "nodeType": "YulIdentifier", + "src": "7032:3:51" + }, + "nativeSrc": "7032:18:51", + "nodeType": "YulFunctionCall", + "src": "7032:18:51" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "7056:6:51", + "nodeType": "YulIdentifier", + "src": "7056:6:51" + }, + { + "name": "_1", + "nativeSrc": "7064:2:51", + "nodeType": "YulIdentifier", + "src": "7064:2:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7052:3:51", + "nodeType": "YulIdentifier", + "src": "7052:3:51" + }, + "nativeSrc": "7052:15:51", + "nodeType": "YulFunctionCall", + "src": "7052:15:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7025:6:51", + "nodeType": "YulIdentifier", + "src": "7025:6:51" + }, + "nativeSrc": "7025:43:51", + "nodeType": "YulFunctionCall", + "src": "7025:43:51" + }, + "nativeSrc": "7025:43:51", + "nodeType": "YulExpressionStatement", + "src": "7025:43:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7088:9:51", + "nodeType": "YulIdentifier", + "src": "7088:9:51" + }, + { + "kind": "number", + "nativeSrc": "7099:2:51", + "nodeType": "YulLiteral", + "src": "7099:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7084:3:51", + "nodeType": "YulIdentifier", + "src": "7084:3:51" + }, + "nativeSrc": "7084:18:51", + "nodeType": "YulFunctionCall", + "src": "7084:18:51" + }, + { + "name": "value2", + "nativeSrc": "7104:6:51", + "nodeType": "YulIdentifier", + "src": "7104:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7077:6:51", + "nodeType": "YulIdentifier", + "src": "7077:6:51" + }, + "nativeSrc": "7077:34:51", + "nodeType": "YulFunctionCall", + "src": "7077:34:51" + }, + "nativeSrc": "7077:34:51", + "nodeType": "YulExpressionStatement", + "src": "7077:34:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7131:9:51", + "nodeType": "YulIdentifier", + "src": "7131:9:51" + }, + { + "kind": "number", + "nativeSrc": "7142:2:51", + "nodeType": "YulLiteral", + "src": "7142:2:51", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7127:3:51", + "nodeType": "YulIdentifier", + "src": "7127:3:51" + }, + "nativeSrc": "7127:18:51", + "nodeType": "YulFunctionCall", + "src": "7127:18:51" + }, + { + "kind": "number", + "nativeSrc": "7147:3:51", + "nodeType": "YulLiteral", + "src": "7147:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7120:6:51", + "nodeType": "YulIdentifier", + "src": "7120:6:51" + }, + "nativeSrc": "7120:31:51", + "nodeType": "YulFunctionCall", + "src": "7120:31:51" + }, + "nativeSrc": "7120:31:51", + "nodeType": "YulExpressionStatement", + "src": "7120:31:51" + }, + { + "nativeSrc": "7160:54:51", + "nodeType": "YulAssignment", + "src": "7160:54:51", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "7186:6:51", + "nodeType": "YulIdentifier", + "src": "7186:6:51" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7198:9:51", + "nodeType": "YulIdentifier", + "src": "7198:9:51" + }, + { + "kind": "number", + "nativeSrc": "7209:3:51", + "nodeType": "YulLiteral", + "src": "7209:3:51", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7194:3:51", + "nodeType": "YulIdentifier", + "src": "7194:3:51" + }, + "nativeSrc": "7194:19:51", + "nodeType": "YulFunctionCall", + "src": "7194:19:51" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "7168:17:51", + "nodeType": "YulIdentifier", + "src": "7168:17:51" + }, + "nativeSrc": "7168:46:51", + "nodeType": "YulFunctionCall", + "src": "7168:46:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7160:4:51", + "nodeType": "YulIdentifier", + "src": "7160:4:51" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "6731:489:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6879:9:51", + "nodeType": "YulTypedName", + "src": "6879:9:51", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "6890:6:51", + "nodeType": "YulTypedName", + "src": "6890:6:51", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6898:6:51", + "nodeType": "YulTypedName", + "src": "6898:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6906:6:51", + "nodeType": "YulTypedName", + "src": "6906:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6914:6:51", + "nodeType": "YulTypedName", + "src": "6914:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6925:4:51", + "nodeType": "YulTypedName", + "src": "6925:4:51", + "type": "" + } + ], + "src": "6731:489:51" + }, + { + "body": { + "nativeSrc": "7305:169:51", + "nodeType": "YulBlock", + "src": "7305:169:51", + "statements": [ + { + "body": { + "nativeSrc": "7351:16:51", + "nodeType": "YulBlock", + "src": "7351:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7360:1:51", + "nodeType": "YulLiteral", + "src": "7360:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7363:1:51", + "nodeType": "YulLiteral", + "src": "7363:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7353:6:51", + "nodeType": "YulIdentifier", + "src": "7353:6:51" + }, + "nativeSrc": "7353:12:51", + "nodeType": "YulFunctionCall", + "src": "7353:12:51" + }, + "nativeSrc": "7353:12:51", + "nodeType": "YulExpressionStatement", + "src": "7353:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7326:7:51", + "nodeType": "YulIdentifier", + "src": "7326:7:51" + }, + { + "name": "headStart", + "nativeSrc": "7335:9:51", + "nodeType": "YulIdentifier", + "src": "7335:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7322:3:51", + "nodeType": "YulIdentifier", + "src": "7322:3:51" + }, + "nativeSrc": "7322:23:51", + "nodeType": "YulFunctionCall", + "src": "7322:23:51" + }, + { + "kind": "number", + "nativeSrc": "7347:2:51", + "nodeType": "YulLiteral", + "src": "7347:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7318:3:51", + "nodeType": "YulIdentifier", + "src": "7318:3:51" + }, + "nativeSrc": "7318:32:51", + "nodeType": "YulFunctionCall", + "src": "7318:32:51" + }, + "nativeSrc": "7315:52:51", + "nodeType": "YulIf", + "src": "7315:52:51" + }, + { + "nativeSrc": "7376:29:51", + "nodeType": "YulVariableDeclaration", + "src": "7376:29:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7395:9:51", + "nodeType": "YulIdentifier", + "src": "7395:9:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7389:5:51", + "nodeType": "YulIdentifier", + "src": "7389:5:51" + }, + "nativeSrc": "7389:16:51", + "nodeType": "YulFunctionCall", + "src": "7389:16:51" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "7380:5:51", + "nodeType": "YulTypedName", + "src": "7380:5:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "7438:5:51", + "nodeType": "YulIdentifier", + "src": "7438:5:51" + } + ], + "functionName": { + "name": "validator_revert_bytes4", + "nativeSrc": "7414:23:51", + "nodeType": "YulIdentifier", + "src": "7414:23:51" + }, + "nativeSrc": "7414:30:51", + "nodeType": "YulFunctionCall", + "src": "7414:30:51" + }, + "nativeSrc": "7414:30:51", + "nodeType": "YulExpressionStatement", + "src": "7414:30:51" + }, + { + "nativeSrc": "7453:15:51", + "nodeType": "YulAssignment", + "src": "7453:15:51", + "value": { + "name": "value", + "nativeSrc": "7463:5:51", + "nodeType": "YulIdentifier", + "src": "7463:5:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "7453:6:51", + "nodeType": "YulIdentifier", + "src": "7453:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "7225:249:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7271:9:51", + "nodeType": "YulTypedName", + "src": "7271:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7282:7:51", + "nodeType": "YulTypedName", + "src": "7282:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7294:6:51", + "nodeType": "YulTypedName", + "src": "7294:6:51", + "type": "" + } + ], + "src": "7225:249:51" + }, + { + "body": { + "nativeSrc": "7511:95:51", + "nodeType": "YulBlock", + "src": "7511:95:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7528:1:51", + "nodeType": "YulLiteral", + "src": "7528:1:51", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7535:3:51", + "nodeType": "YulLiteral", + "src": "7535:3:51", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "7540:10:51", + "nodeType": "YulLiteral", + "src": "7540:10:51", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7531:3:51", + "nodeType": "YulIdentifier", + "src": "7531:3:51" + }, + "nativeSrc": "7531:20:51", + "nodeType": "YulFunctionCall", + "src": "7531:20:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7521:6:51", + "nodeType": "YulIdentifier", + "src": "7521:6:51" + }, + "nativeSrc": "7521:31:51", + "nodeType": "YulFunctionCall", + "src": "7521:31:51" + }, + "nativeSrc": "7521:31:51", + "nodeType": "YulExpressionStatement", + "src": "7521:31:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7568:1:51", + "nodeType": "YulLiteral", + "src": "7568:1:51", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7571:4:51", + "nodeType": "YulLiteral", + "src": "7571:4:51", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7561:6:51", + "nodeType": "YulIdentifier", + "src": "7561:6:51" + }, + "nativeSrc": "7561:15:51", + "nodeType": "YulFunctionCall", + "src": "7561:15:51" + }, + "nativeSrc": "7561:15:51", + "nodeType": "YulExpressionStatement", + "src": "7561:15:51" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7592:1:51", + "nodeType": "YulLiteral", + "src": "7592:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7595:4:51", + "nodeType": "YulLiteral", + "src": "7595:4:51", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7585:6:51", + "nodeType": "YulIdentifier", + "src": "7585:6:51" + }, + "nativeSrc": "7585:15:51", + "nodeType": "YulFunctionCall", + "src": "7585:15:51" + }, + "nativeSrc": "7585:15:51", + "nodeType": "YulExpressionStatement", + "src": "7585:15:51" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "7479:127:51", + "nodeType": "YulFunctionDefinition", + "src": "7479:127:51" + }, + { + "body": { + "nativeSrc": "7740:145:51", + "nodeType": "YulBlock", + "src": "7740:145:51", + "statements": [ + { + "nativeSrc": "7750:26:51", + "nodeType": "YulAssignment", + "src": "7750:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7762:9:51", + "nodeType": "YulIdentifier", + "src": "7762:9:51" + }, + { + "kind": "number", + "nativeSrc": "7773:2:51", + "nodeType": "YulLiteral", + "src": "7773:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7758:3:51", + "nodeType": "YulIdentifier", + "src": "7758:3:51" + }, + "nativeSrc": "7758:18:51", + "nodeType": "YulFunctionCall", + "src": "7758:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7750:4:51", + "nodeType": "YulIdentifier", + "src": "7750:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7792:9:51", + "nodeType": "YulIdentifier", + "src": "7792:9:51" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "7807:6:51", + "nodeType": "YulIdentifier", + "src": "7807:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7823:3:51", + "nodeType": "YulLiteral", + "src": "7823:3:51", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "7828:1:51", + "nodeType": "YulLiteral", + "src": "7828:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7819:3:51", + "nodeType": "YulIdentifier", + "src": "7819:3:51" + }, + "nativeSrc": "7819:11:51", + "nodeType": "YulFunctionCall", + "src": "7819:11:51" + }, + { + "kind": "number", + "nativeSrc": "7832:1:51", + "nodeType": "YulLiteral", + "src": "7832:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7815:3:51", + "nodeType": "YulIdentifier", + "src": "7815:3:51" + }, + "nativeSrc": "7815:19:51", + "nodeType": "YulFunctionCall", + "src": "7815:19:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7803:3:51", + "nodeType": "YulIdentifier", + "src": "7803:3:51" + }, + "nativeSrc": "7803:32:51", + "nodeType": "YulFunctionCall", + "src": "7803:32:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7785:6:51", + "nodeType": "YulIdentifier", + "src": "7785:6:51" + }, + "nativeSrc": "7785:51:51", + "nodeType": "YulFunctionCall", + "src": "7785:51:51" + }, + "nativeSrc": "7785:51:51", + "nodeType": "YulExpressionStatement", + "src": "7785:51:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7856:9:51", + "nodeType": "YulIdentifier", + "src": "7856:9:51" + }, + { + "kind": "number", + "nativeSrc": "7867:2:51", + "nodeType": "YulLiteral", + "src": "7867:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7852:3:51", + "nodeType": "YulIdentifier", + "src": "7852:3:51" + }, + "nativeSrc": "7852:18:51", + "nodeType": "YulFunctionCall", + "src": "7852:18:51" + }, + { + "name": "value1", + "nativeSrc": "7872:6:51", + "nodeType": "YulIdentifier", + "src": "7872:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7845:6:51", + "nodeType": "YulIdentifier", + "src": "7845:6:51" + }, + "nativeSrc": "7845:34:51", + "nodeType": "YulFunctionCall", + "src": "7845:34:51" + }, + "nativeSrc": "7845:34:51", + "nodeType": "YulExpressionStatement", + "src": "7845:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nativeSrc": "7611:274:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7701:9:51", + "nodeType": "YulTypedName", + "src": "7701:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "7712:6:51", + "nodeType": "YulTypedName", + "src": "7712:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "7720:6:51", + "nodeType": "YulTypedName", + "src": "7720:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7731:4:51", + "nodeType": "YulTypedName", + "src": "7731:4:51", + "type": "" + } + ], + "src": "7611:274:51" + }, + { + "body": { + "nativeSrc": "7946:65:51", + "nodeType": "YulBlock", + "src": "7946:65:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7963:1:51", + "nodeType": "YulLiteral", + "src": "7963:1:51", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "7966:3:51", + "nodeType": "YulIdentifier", + "src": "7966:3:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7956:6:51", + "nodeType": "YulIdentifier", + "src": "7956:6:51" + }, + "nativeSrc": "7956:14:51", + "nodeType": "YulFunctionCall", + "src": "7956:14:51" + }, + "nativeSrc": "7956:14:51", + "nodeType": "YulExpressionStatement", + "src": "7956:14:51" + }, + { + "nativeSrc": "7979:26:51", + "nodeType": "YulAssignment", + "src": "7979:26:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7997:1:51", + "nodeType": "YulLiteral", + "src": "7997:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8000:4:51", + "nodeType": "YulLiteral", + "src": "8000:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "7987:9:51", + "nodeType": "YulIdentifier", + "src": "7987:9:51" + }, + "nativeSrc": "7987:18:51", + "nodeType": "YulFunctionCall", + "src": "7987:18:51" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "7979:4:51", + "nodeType": "YulIdentifier", + "src": "7979:4:51" + } + ] + } + ] + }, + "name": "array_dataslot_string_storage", + "nativeSrc": "7890:121:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "7929:3:51", + "nodeType": "YulTypedName", + "src": "7929:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "7937:4:51", + "nodeType": "YulTypedName", + "src": "7937:4:51", + "type": "" + } + ], + "src": "7890:121:51" + }, + { + "body": { + "nativeSrc": "8097:462:51", + "nodeType": "YulBlock", + "src": "8097:462:51", + "statements": [ + { + "body": { + "nativeSrc": "8130:423:51", + "nodeType": "YulBlock", + "src": "8130:423:51", + "statements": [ + { + "nativeSrc": "8144:11:51", + "nodeType": "YulVariableDeclaration", + "src": "8144:11:51", + "value": { + "kind": "number", + "nativeSrc": "8154:1:51", + "nodeType": "YulLiteral", + "src": "8154:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "8148:2:51", + "nodeType": "YulTypedName", + "src": "8148:2:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8175:1:51", + "nodeType": "YulLiteral", + "src": "8175:1:51", + "type": "", + "value": "0" + }, + { + "name": "array", + "nativeSrc": "8178:5:51", + "nodeType": "YulIdentifier", + "src": "8178:5:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8168:6:51", + "nodeType": "YulIdentifier", + "src": "8168:6:51" + }, + "nativeSrc": "8168:16:51", + "nodeType": "YulFunctionCall", + "src": "8168:16:51" + }, + "nativeSrc": "8168:16:51", + "nodeType": "YulExpressionStatement", + "src": "8168:16:51" + }, + { + "nativeSrc": "8197:30:51", + "nodeType": "YulVariableDeclaration", + "src": "8197:30:51", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8219:1:51", + "nodeType": "YulLiteral", + "src": "8219:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8222:4:51", + "nodeType": "YulLiteral", + "src": "8222:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "8209:9:51", + "nodeType": "YulIdentifier", + "src": "8209:9:51" + }, + "nativeSrc": "8209:18:51", + "nodeType": "YulFunctionCall", + "src": "8209:18:51" + }, + "variables": [ + { + "name": "data", + "nativeSrc": "8201:4:51", + "nodeType": "YulTypedName", + "src": "8201:4:51", + "type": "" + } + ] + }, + { + "nativeSrc": "8240:57:51", + "nodeType": "YulVariableDeclaration", + "src": "8240:57:51", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8263:4:51", + "nodeType": "YulIdentifier", + "src": "8263:4:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8273:1:51", + "nodeType": "YulLiteral", + "src": "8273:1:51", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "8280:10:51", + "nodeType": "YulIdentifier", + "src": "8280:10:51" + }, + { + "kind": "number", + "nativeSrc": "8292:2:51", + "nodeType": "YulLiteral", + "src": "8292:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8276:3:51", + "nodeType": "YulIdentifier", + "src": "8276:3:51" + }, + "nativeSrc": "8276:19:51", + "nodeType": "YulFunctionCall", + "src": "8276:19:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "8269:3:51", + "nodeType": "YulIdentifier", + "src": "8269:3:51" + }, + "nativeSrc": "8269:27:51", + "nodeType": "YulFunctionCall", + "src": "8269:27:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8259:3:51", + "nodeType": "YulIdentifier", + "src": "8259:3:51" + }, + "nativeSrc": "8259:38:51", + "nodeType": "YulFunctionCall", + "src": "8259:38:51" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "8244:11:51", + "nodeType": "YulTypedName", + "src": "8244:11:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8334:23:51", + "nodeType": "YulBlock", + "src": "8334:23:51", + "statements": [ + { + "nativeSrc": "8336:19:51", + "nodeType": "YulAssignment", + "src": "8336:19:51", + "value": { + "name": "data", + "nativeSrc": "8351:4:51", + "nodeType": "YulIdentifier", + "src": "8351:4:51" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "8336:11:51", + "nodeType": "YulIdentifier", + "src": "8336:11:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "8316:10:51", + "nodeType": "YulIdentifier", + "src": "8316:10:51" + }, + { + "kind": "number", + "nativeSrc": "8328:4:51", + "nodeType": "YulLiteral", + "src": "8328:4:51", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8313:2:51", + "nodeType": "YulIdentifier", + "src": "8313:2:51" + }, + "nativeSrc": "8313:20:51", + "nodeType": "YulFunctionCall", + "src": "8313:20:51" + }, + "nativeSrc": "8310:47:51", + "nodeType": "YulIf", + "src": "8310:47:51" + }, + { + "nativeSrc": "8370:41:51", + "nodeType": "YulVariableDeclaration", + "src": "8370:41:51", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "8384:4:51", + "nodeType": "YulIdentifier", + "src": "8384:4:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8394:1:51", + "nodeType": "YulLiteral", + "src": "8394:1:51", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "8401:3:51", + "nodeType": "YulIdentifier", + "src": "8401:3:51" + }, + { + "kind": "number", + "nativeSrc": "8406:2:51", + "nodeType": "YulLiteral", + "src": "8406:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8397:3:51", + "nodeType": "YulIdentifier", + "src": "8397:3:51" + }, + "nativeSrc": "8397:12:51", + "nodeType": "YulFunctionCall", + "src": "8397:12:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "8390:3:51", + "nodeType": "YulIdentifier", + "src": "8390:3:51" + }, + "nativeSrc": "8390:20:51", + "nodeType": "YulFunctionCall", + "src": "8390:20:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8380:3:51", + "nodeType": "YulIdentifier", + "src": "8380:3:51" + }, + "nativeSrc": "8380:31:51", + "nodeType": "YulFunctionCall", + "src": "8380:31:51" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "8374:2:51", + "nodeType": "YulTypedName", + "src": "8374:2:51", + "type": "" + } + ] + }, + { + "nativeSrc": "8424:24:51", + "nodeType": "YulVariableDeclaration", + "src": "8424:24:51", + "value": { + "name": "deleteStart", + "nativeSrc": "8437:11:51", + "nodeType": "YulIdentifier", + "src": "8437:11:51" + }, + "variables": [ + { + "name": "start", + "nativeSrc": "8428:5:51", + "nodeType": "YulTypedName", + "src": "8428:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8522:21:51", + "nodeType": "YulBlock", + "src": "8522:21:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "8531:5:51", + "nodeType": "YulIdentifier", + "src": "8531:5:51" + }, + { + "name": "_1", + "nativeSrc": "8538:2:51", + "nodeType": "YulIdentifier", + "src": "8538:2:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8524:6:51", + "nodeType": "YulIdentifier", + "src": "8524:6:51" + }, + "nativeSrc": "8524:17:51", + "nodeType": "YulFunctionCall", + "src": "8524:17:51" + }, + "nativeSrc": "8524:17:51", + "nodeType": "YulExpressionStatement", + "src": "8524:17:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "8472:5:51", + "nodeType": "YulIdentifier", + "src": "8472:5:51" + }, + { + "name": "_2", + "nativeSrc": "8479:2:51", + "nodeType": "YulIdentifier", + "src": "8479:2:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8469:2:51", + "nodeType": "YulIdentifier", + "src": "8469:2:51" + }, + "nativeSrc": "8469:13:51", + "nodeType": "YulFunctionCall", + "src": "8469:13:51" + }, + "nativeSrc": "8461:82:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "8483:26:51", + "nodeType": "YulBlock", + "src": "8483:26:51", + "statements": [ + { + "nativeSrc": "8485:22:51", + "nodeType": "YulAssignment", + "src": "8485:22:51", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "8498:5:51", + "nodeType": "YulIdentifier", + "src": "8498:5:51" + }, + { + "kind": "number", + "nativeSrc": "8505:1:51", + "nodeType": "YulLiteral", + "src": "8505:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8494:3:51", + "nodeType": "YulIdentifier", + "src": "8494:3:51" + }, + "nativeSrc": "8494:13:51", + "nodeType": "YulFunctionCall", + "src": "8494:13:51" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "8485:5:51", + "nodeType": "YulIdentifier", + "src": "8485:5:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "8465:3:51", + "nodeType": "YulBlock", + "src": "8465:3:51", + "statements": [] + }, + "src": "8461:82:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "8113:3:51", + "nodeType": "YulIdentifier", + "src": "8113:3:51" + }, + { + "kind": "number", + "nativeSrc": "8118:2:51", + "nodeType": "YulLiteral", + "src": "8118:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8110:2:51", + "nodeType": "YulIdentifier", + "src": "8110:2:51" + }, + "nativeSrc": "8110:11:51", + "nodeType": "YulFunctionCall", + "src": "8110:11:51" + }, + "nativeSrc": "8107:446:51", + "nodeType": "YulIf", + "src": "8107:446:51" + } + ] + }, + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "8016:543:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "8069:5:51", + "nodeType": "YulTypedName", + "src": "8069:5:51", + "type": "" + }, + { + "name": "len", + "nativeSrc": "8076:3:51", + "nodeType": "YulTypedName", + "src": "8076:3:51", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "8081:10:51", + "nodeType": "YulTypedName", + "src": "8081:10:51", + "type": "" + } + ], + "src": "8016:543:51" + }, + { + "body": { + "nativeSrc": "8649:81:51", + "nodeType": "YulBlock", + "src": "8649:81:51", + "statements": [ + { + "nativeSrc": "8659:65:51", + "nodeType": "YulAssignment", + "src": "8659:65:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nativeSrc": "8674:4:51", + "nodeType": "YulIdentifier", + "src": "8674:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8692:1:51", + "nodeType": "YulLiteral", + "src": "8692:1:51", + "type": "", + "value": "3" + }, + { + "name": "len", + "nativeSrc": "8695:3:51", + "nodeType": "YulIdentifier", + "src": "8695:3:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "8688:3:51", + "nodeType": "YulIdentifier", + "src": "8688:3:51" + }, + "nativeSrc": "8688:11:51", + "nodeType": "YulFunctionCall", + "src": "8688:11:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8705:1:51", + "nodeType": "YulLiteral", + "src": "8705:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8701:3:51", + "nodeType": "YulIdentifier", + "src": "8701:3:51" + }, + "nativeSrc": "8701:6:51", + "nodeType": "YulFunctionCall", + "src": "8701:6:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "8684:3:51", + "nodeType": "YulIdentifier", + "src": "8684:3:51" + }, + "nativeSrc": "8684:24:51", + "nodeType": "YulFunctionCall", + "src": "8684:24:51" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8680:3:51", + "nodeType": "YulIdentifier", + "src": "8680:3:51" + }, + "nativeSrc": "8680:29:51", + "nodeType": "YulFunctionCall", + "src": "8680:29:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8670:3:51", + "nodeType": "YulIdentifier", + "src": "8670:3:51" + }, + "nativeSrc": "8670:40:51", + "nodeType": "YulFunctionCall", + "src": "8670:40:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8716:1:51", + "nodeType": "YulLiteral", + "src": "8716:1:51", + "type": "", + "value": "1" + }, + { + "name": "len", + "nativeSrc": "8719:3:51", + "nodeType": "YulIdentifier", + "src": "8719:3:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "8712:3:51", + "nodeType": "YulIdentifier", + "src": "8712:3:51" + }, + "nativeSrc": "8712:11:51", + "nodeType": "YulFunctionCall", + "src": "8712:11:51" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "8667:2:51", + "nodeType": "YulIdentifier", + "src": "8667:2:51" + }, + "nativeSrc": "8667:57:51", + "nodeType": "YulFunctionCall", + "src": "8667:57:51" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "8659:4:51", + "nodeType": "YulIdentifier", + "src": "8659:4:51" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8564:166:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "8626:4:51", + "nodeType": "YulTypedName", + "src": "8626:4:51", + "type": "" + }, + { + "name": "len", + "nativeSrc": "8632:3:51", + "nodeType": "YulTypedName", + "src": "8632:3:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "8640:4:51", + "nodeType": "YulTypedName", + "src": "8640:4:51", + "type": "" + } + ], + "src": "8564:166:51" + }, + { + "body": { + "nativeSrc": "8831:1249:51", + "nodeType": "YulBlock", + "src": "8831:1249:51", + "statements": [ + { + "nativeSrc": "8841:24:51", + "nodeType": "YulVariableDeclaration", + "src": "8841:24:51", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "8861:3:51", + "nodeType": "YulIdentifier", + "src": "8861:3:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8855:5:51", + "nodeType": "YulIdentifier", + "src": "8855:5:51" + }, + "nativeSrc": "8855:10:51", + "nodeType": "YulFunctionCall", + "src": "8855:10:51" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "8845:6:51", + "nodeType": "YulTypedName", + "src": "8845:6:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8908:22:51", + "nodeType": "YulBlock", + "src": "8908:22:51", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8910:16:51", + "nodeType": "YulIdentifier", + "src": "8910:16:51" + }, + "nativeSrc": "8910:18:51", + "nodeType": "YulFunctionCall", + "src": "8910:18:51" + }, + "nativeSrc": "8910:18:51", + "nodeType": "YulExpressionStatement", + "src": "8910:18:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "8880:6:51", + "nodeType": "YulIdentifier", + "src": "8880:6:51" + }, + { + "kind": "number", + "nativeSrc": "8888:18:51", + "nodeType": "YulLiteral", + "src": "8888:18:51", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8877:2:51", + "nodeType": "YulIdentifier", + "src": "8877:2:51" + }, + "nativeSrc": "8877:30:51", + "nodeType": "YulFunctionCall", + "src": "8877:30:51" + }, + "nativeSrc": "8874:56:51", + "nodeType": "YulIf", + "src": "8874:56:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8983:4:51", + "nodeType": "YulIdentifier", + "src": "8983:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9021:4:51", + "nodeType": "YulIdentifier", + "src": "9021:4:51" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "9015:5:51", + "nodeType": "YulIdentifier", + "src": "9015:5:51" + }, + "nativeSrc": "9015:11:51", + "nodeType": "YulFunctionCall", + "src": "9015:11:51" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "8989:25:51", + "nodeType": "YulIdentifier", + "src": "8989:25:51" + }, + "nativeSrc": "8989:38:51", + "nodeType": "YulFunctionCall", + "src": "8989:38:51" + }, + { + "name": "newLen", + "nativeSrc": "9029:6:51", + "nodeType": "YulIdentifier", + "src": "9029:6:51" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "8939:43:51", + "nodeType": "YulIdentifier", + "src": "8939:43:51" + }, + "nativeSrc": "8939:97:51", + "nodeType": "YulFunctionCall", + "src": "8939:97:51" + }, + "nativeSrc": "8939:97:51", + "nodeType": "YulExpressionStatement", + "src": "8939:97:51" + }, + { + "nativeSrc": "9045:18:51", + "nodeType": "YulVariableDeclaration", + "src": "9045:18:51", + "value": { + "kind": "number", + "nativeSrc": "9062:1:51", + "nodeType": "YulLiteral", + "src": "9062:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "9049:9:51", + "nodeType": "YulTypedName", + "src": "9049:9:51", + "type": "" + } + ] + }, + { + "nativeSrc": "9072:23:51", + "nodeType": "YulVariableDeclaration", + "src": "9072:23:51", + "value": { + "kind": "number", + "nativeSrc": "9091:4:51", + "nodeType": "YulLiteral", + "src": "9091:4:51", + "type": "", + "value": "0x20" + }, + "variables": [ + { + "name": "srcOffset_1", + "nativeSrc": "9076:11:51", + "nodeType": "YulTypedName", + "src": "9076:11:51", + "type": "" + } + ] + }, + { + "nativeSrc": "9104:17:51", + "nodeType": "YulAssignment", + "src": "9104:17:51", + "value": { + "kind": "number", + "nativeSrc": "9117:4:51", + "nodeType": "YulLiteral", + "src": "9117:4:51", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "9104:9:51", + "nodeType": "YulIdentifier", + "src": "9104:9:51" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "9167:656:51", + "nodeType": "YulBlock", + "src": "9167:656:51", + "statements": [ + { + "nativeSrc": "9181:35:51", + "nodeType": "YulVariableDeclaration", + "src": "9181:35:51", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9200:6:51", + "nodeType": "YulIdentifier", + "src": "9200:6:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9212:2:51", + "nodeType": "YulLiteral", + "src": "9212:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "9208:3:51", + "nodeType": "YulIdentifier", + "src": "9208:3:51" + }, + "nativeSrc": "9208:7:51", + "nodeType": "YulFunctionCall", + "src": "9208:7:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9196:3:51", + "nodeType": "YulIdentifier", + "src": "9196:3:51" + }, + "nativeSrc": "9196:20:51", + "nodeType": "YulFunctionCall", + "src": "9196:20:51" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "9185:7:51", + "nodeType": "YulTypedName", + "src": "9185:7:51", + "type": "" + } + ] + }, + { + "nativeSrc": "9229:49:51", + "nodeType": "YulVariableDeclaration", + "src": "9229:49:51", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9273:4:51", + "nodeType": "YulIdentifier", + "src": "9273:4:51" + } + ], + "functionName": { + "name": "array_dataslot_string_storage", + "nativeSrc": "9243:29:51", + "nodeType": "YulIdentifier", + "src": "9243:29:51" + }, + "nativeSrc": "9243:35:51", + "nodeType": "YulFunctionCall", + "src": "9243:35:51" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "9233:6:51", + "nodeType": "YulTypedName", + "src": "9233:6:51", + "type": "" + } + ] + }, + { + "nativeSrc": "9291:10:51", + "nodeType": "YulVariableDeclaration", + "src": "9291:10:51", + "value": { + "kind": "number", + "nativeSrc": "9300:1:51", + "nodeType": "YulLiteral", + "src": "9300:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "9295:1:51", + "nodeType": "YulTypedName", + "src": "9295:1:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9378:172:51", + "nodeType": "YulBlock", + "src": "9378:172:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "9403:6:51", + "nodeType": "YulIdentifier", + "src": "9403:6:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9421:3:51", + "nodeType": "YulIdentifier", + "src": "9421:3:51" + }, + { + "name": "srcOffset", + "nativeSrc": "9426:9:51", + "nodeType": "YulIdentifier", + "src": "9426:9:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9417:3:51", + "nodeType": "YulIdentifier", + "src": "9417:3:51" + }, + "nativeSrc": "9417:19:51", + "nodeType": "YulFunctionCall", + "src": "9417:19:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9411:5:51", + "nodeType": "YulIdentifier", + "src": "9411:5:51" + }, + "nativeSrc": "9411:26:51", + "nodeType": "YulFunctionCall", + "src": "9411:26:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9396:6:51", + "nodeType": "YulIdentifier", + "src": "9396:6:51" + }, + "nativeSrc": "9396:42:51", + "nodeType": "YulFunctionCall", + "src": "9396:42:51" + }, + "nativeSrc": "9396:42:51", + "nodeType": "YulExpressionStatement", + "src": "9396:42:51" + }, + { + "nativeSrc": "9455:24:51", + "nodeType": "YulAssignment", + "src": "9455:24:51", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "9469:6:51", + "nodeType": "YulIdentifier", + "src": "9469:6:51" + }, + { + "kind": "number", + "nativeSrc": "9477:1:51", + "nodeType": "YulLiteral", + "src": "9477:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9465:3:51", + "nodeType": "YulIdentifier", + "src": "9465:3:51" + }, + "nativeSrc": "9465:14:51", + "nodeType": "YulFunctionCall", + "src": "9465:14:51" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "9455:6:51", + "nodeType": "YulIdentifier", + "src": "9455:6:51" + } + ] + }, + { + "nativeSrc": "9496:40:51", + "nodeType": "YulAssignment", + "src": "9496:40:51", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "9513:9:51", + "nodeType": "YulIdentifier", + "src": "9513:9:51" + }, + { + "name": "srcOffset_1", + "nativeSrc": "9524:11:51", + "nodeType": "YulIdentifier", + "src": "9524:11:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9509:3:51", + "nodeType": "YulIdentifier", + "src": "9509:3:51" + }, + "nativeSrc": "9509:27:51", + "nodeType": "YulFunctionCall", + "src": "9509:27:51" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "9496:9:51", + "nodeType": "YulIdentifier", + "src": "9496:9:51" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9325:1:51", + "nodeType": "YulIdentifier", + "src": "9325:1:51" + }, + { + "name": "loopEnd", + "nativeSrc": "9328:7:51", + "nodeType": "YulIdentifier", + "src": "9328:7:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9322:2:51", + "nodeType": "YulIdentifier", + "src": "9322:2:51" + }, + "nativeSrc": "9322:14:51", + "nodeType": "YulFunctionCall", + "src": "9322:14:51" + }, + "nativeSrc": "9314:236:51", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "9337:28:51", + "nodeType": "YulBlock", + "src": "9337:28:51", + "statements": [ + { + "nativeSrc": "9339:24:51", + "nodeType": "YulAssignment", + "src": "9339:24:51", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9348:1:51", + "nodeType": "YulIdentifier", + "src": "9348:1:51" + }, + { + "name": "srcOffset_1", + "nativeSrc": "9351:11:51", + "nodeType": "YulIdentifier", + "src": "9351:11:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9344:3:51", + "nodeType": "YulIdentifier", + "src": "9344:3:51" + }, + "nativeSrc": "9344:19:51", + "nodeType": "YulFunctionCall", + "src": "9344:19:51" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "9339:1:51", + "nodeType": "YulIdentifier", + "src": "9339:1:51" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "9318:3:51", + "nodeType": "YulBlock", + "src": "9318:3:51", + "statements": [] + }, + "src": "9314:236:51" + }, + { + "body": { + "nativeSrc": "9598:166:51", + "nodeType": "YulBlock", + "src": "9598:166:51", + "statements": [ + { + "nativeSrc": "9616:43:51", + "nodeType": "YulVariableDeclaration", + "src": "9616:43:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9643:3:51", + "nodeType": "YulIdentifier", + "src": "9643:3:51" + }, + { + "name": "srcOffset", + "nativeSrc": "9648:9:51", + "nodeType": "YulIdentifier", + "src": "9648:9:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9639:3:51", + "nodeType": "YulIdentifier", + "src": "9639:3:51" + }, + "nativeSrc": "9639:19:51", + "nodeType": "YulFunctionCall", + "src": "9639:19:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9633:5:51", + "nodeType": "YulIdentifier", + "src": "9633:5:51" + }, + "nativeSrc": "9633:26:51", + "nodeType": "YulFunctionCall", + "src": "9633:26:51" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "9620:9:51", + "nodeType": "YulTypedName", + "src": "9620:9:51", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "9683:6:51", + "nodeType": "YulIdentifier", + "src": "9683:6:51" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "9695:9:51", + "nodeType": "YulIdentifier", + "src": "9695:9:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9722:1:51", + "nodeType": "YulLiteral", + "src": "9722:1:51", + "type": "", + "value": "3" + }, + { + "name": "newLen", + "nativeSrc": "9725:6:51", + "nodeType": "YulIdentifier", + "src": "9725:6:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9718:3:51", + "nodeType": "YulIdentifier", + "src": "9718:3:51" + }, + "nativeSrc": "9718:14:51", + "nodeType": "YulFunctionCall", + "src": "9718:14:51" + }, + { + "kind": "number", + "nativeSrc": "9734:3:51", + "nodeType": "YulLiteral", + "src": "9734:3:51", + "type": "", + "value": "248" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9714:3:51", + "nodeType": "YulIdentifier", + "src": "9714:3:51" + }, + "nativeSrc": "9714:24:51", + "nodeType": "YulFunctionCall", + "src": "9714:24:51" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9744:1:51", + "nodeType": "YulLiteral", + "src": "9744:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "9740:3:51", + "nodeType": "YulIdentifier", + "src": "9740:3:51" + }, + "nativeSrc": "9740:6:51", + "nodeType": "YulFunctionCall", + "src": "9740:6:51" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "9710:3:51", + "nodeType": "YulIdentifier", + "src": "9710:3:51" + }, + "nativeSrc": "9710:37:51", + "nodeType": "YulFunctionCall", + "src": "9710:37:51" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "9706:3:51", + "nodeType": "YulIdentifier", + "src": "9706:3:51" + }, + "nativeSrc": "9706:42:51", + "nodeType": "YulFunctionCall", + "src": "9706:42:51" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9691:3:51", + "nodeType": "YulIdentifier", + "src": "9691:3:51" + }, + "nativeSrc": "9691:58:51", + "nodeType": "YulFunctionCall", + "src": "9691:58:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9676:6:51", + "nodeType": "YulIdentifier", + "src": "9676:6:51" + }, + "nativeSrc": "9676:74:51", + "nodeType": "YulFunctionCall", + "src": "9676:74:51" + }, + "nativeSrc": "9676:74:51", + "nodeType": "YulExpressionStatement", + "src": "9676:74:51" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "9569:7:51", + "nodeType": "YulIdentifier", + "src": "9569:7:51" + }, + { + "name": "newLen", + "nativeSrc": "9578:6:51", + "nodeType": "YulIdentifier", + "src": "9578:6:51" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9566:2:51", + "nodeType": "YulIdentifier", + "src": "9566:2:51" + }, + "nativeSrc": "9566:19:51", + "nodeType": "YulFunctionCall", + "src": "9566:19:51" + }, + "nativeSrc": "9563:201:51", + "nodeType": "YulIf", + "src": "9563:201:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9784:4:51", + "nodeType": "YulIdentifier", + "src": "9784:4:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9798:1:51", + "nodeType": "YulLiteral", + "src": "9798:1:51", + "type": "", + "value": "1" + }, + { + "name": "newLen", + "nativeSrc": "9801:6:51", + "nodeType": "YulIdentifier", + "src": "9801:6:51" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9794:3:51", + "nodeType": "YulIdentifier", + "src": "9794:3:51" + }, + "nativeSrc": "9794:14:51", + "nodeType": "YulFunctionCall", + "src": "9794:14:51" + }, + { + "kind": "number", + "nativeSrc": "9810:1:51", + "nodeType": "YulLiteral", + "src": "9810:1:51", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9790:3:51", + "nodeType": "YulIdentifier", + "src": "9790:3:51" + }, + "nativeSrc": "9790:22:51", + "nodeType": "YulFunctionCall", + "src": "9790:22:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9777:6:51", + "nodeType": "YulIdentifier", + "src": "9777:6:51" + }, + "nativeSrc": "9777:36:51", + "nodeType": "YulFunctionCall", + "src": "9777:36:51" + }, + "nativeSrc": "9777:36:51", + "nodeType": "YulExpressionStatement", + "src": "9777:36:51" + } + ] + }, + "nativeSrc": "9160:663:51", + "nodeType": "YulCase", + "src": "9160:663:51", + "value": { + "kind": "number", + "nativeSrc": "9165:1:51", + "nodeType": "YulLiteral", + "src": "9165:1:51", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "9840:234:51", + "nodeType": "YulBlock", + "src": "9840:234:51", + "statements": [ + { + "nativeSrc": "9854:14:51", + "nodeType": "YulVariableDeclaration", + "src": "9854:14:51", + "value": { + "kind": "number", + "nativeSrc": "9867:1:51", + "nodeType": "YulLiteral", + "src": "9867:1:51", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "9858:5:51", + "nodeType": "YulTypedName", + "src": "9858:5:51", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9903:67:51", + "nodeType": "YulBlock", + "src": "9903:67:51", + "statements": [ + { + "nativeSrc": "9921:35:51", + "nodeType": "YulAssignment", + "src": "9921:35:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "9940:3:51", + "nodeType": "YulIdentifier", + "src": "9940:3:51" + }, + { + "name": "srcOffset", + "nativeSrc": "9945:9:51", + "nodeType": "YulIdentifier", + "src": "9945:9:51" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9936:3:51", + "nodeType": "YulIdentifier", + "src": "9936:3:51" + }, + "nativeSrc": "9936:19:51", + "nodeType": "YulFunctionCall", + "src": "9936:19:51" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9930:5:51", + "nodeType": "YulIdentifier", + "src": "9930:5:51" + }, + "nativeSrc": "9930:26:51", + "nodeType": "YulFunctionCall", + "src": "9930:26:51" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9921:5:51", + "nodeType": "YulIdentifier", + "src": "9921:5:51" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "9884:6:51", + "nodeType": "YulIdentifier", + "src": "9884:6:51" + }, + "nativeSrc": "9881:89:51", + "nodeType": "YulIf", + "src": "9881:89:51" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "9990:4:51", + "nodeType": "YulIdentifier", + "src": "9990:4:51" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10049:5:51", + "nodeType": "YulIdentifier", + "src": "10049:5:51" + }, + { + "name": "newLen", + "nativeSrc": "10056:6:51", + "nodeType": "YulIdentifier", + "src": "10056:6:51" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "9996:52:51", + "nodeType": "YulIdentifier", + "src": "9996:52:51" + }, + "nativeSrc": "9996:67:51", + "nodeType": "YulFunctionCall", + "src": "9996:67:51" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9983:6:51", + "nodeType": "YulIdentifier", + "src": "9983:6:51" + }, + "nativeSrc": "9983:81:51", + "nodeType": "YulFunctionCall", + "src": "9983:81:51" + }, + "nativeSrc": "9983:81:51", + "nodeType": "YulExpressionStatement", + "src": "9983:81:51" + } + ] + }, + "nativeSrc": "9832:242:51", + "nodeType": "YulCase", + "src": "9832:242:51", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "9140:6:51", + "nodeType": "YulIdentifier", + "src": "9140:6:51" + }, + { + "kind": "number", + "nativeSrc": "9148:2:51", + "nodeType": "YulLiteral", + "src": "9148:2:51", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9137:2:51", + "nodeType": "YulIdentifier", + "src": "9137:2:51" + }, + "nativeSrc": "9137:14:51", + "nodeType": "YulFunctionCall", + "src": "9137:14:51" + }, + "nativeSrc": "9130:944:51", + "nodeType": "YulSwitch", + "src": "9130:944:51" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "8735:1345:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "8816:4:51", + "nodeType": "YulTypedName", + "src": "8816:4:51", + "type": "" + }, + { + "name": "src", + "nativeSrc": "8822:3:51", + "nodeType": "YulTypedName", + "src": "8822:3:51", + "type": "" + } + ], + "src": "8735:1345:51" + }, + { + "body": { + "nativeSrc": "10214:119:51", + "nodeType": "YulBlock", + "src": "10214:119:51", + "statements": [ + { + "nativeSrc": "10224:26:51", + "nodeType": "YulAssignment", + "src": "10224:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10236:9:51", + "nodeType": "YulIdentifier", + "src": "10236:9:51" + }, + { + "kind": "number", + "nativeSrc": "10247:2:51", + "nodeType": "YulLiteral", + "src": "10247:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10232:3:51", + "nodeType": "YulIdentifier", + "src": "10232:3:51" + }, + "nativeSrc": "10232:18:51", + "nodeType": "YulFunctionCall", + "src": "10232:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10224:4:51", + "nodeType": "YulIdentifier", + "src": "10224:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10266:9:51", + "nodeType": "YulIdentifier", + "src": "10266:9:51" + }, + { + "name": "value0", + "nativeSrc": "10277:6:51", + "nodeType": "YulIdentifier", + "src": "10277:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10259:6:51", + "nodeType": "YulIdentifier", + "src": "10259:6:51" + }, + "nativeSrc": "10259:25:51", + "nodeType": "YulFunctionCall", + "src": "10259:25:51" + }, + "nativeSrc": "10259:25:51", + "nodeType": "YulExpressionStatement", + "src": "10259:25:51" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10304:9:51", + "nodeType": "YulIdentifier", + "src": "10304:9:51" + }, + { + "kind": "number", + "nativeSrc": "10315:2:51", + "nodeType": "YulLiteral", + "src": "10315:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10300:3:51", + "nodeType": "YulIdentifier", + "src": "10300:3:51" + }, + "nativeSrc": "10300:18:51", + "nodeType": "YulFunctionCall", + "src": "10300:18:51" + }, + { + "name": "value1", + "nativeSrc": "10320:6:51", + "nodeType": "YulIdentifier", + "src": "10320:6:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10293:6:51", + "nodeType": "YulIdentifier", + "src": "10293:6:51" + }, + "nativeSrc": "10293:34:51", + "nodeType": "YulFunctionCall", + "src": "10293:34:51" + }, + "nativeSrc": "10293:34:51", + "nodeType": "YulExpressionStatement", + "src": "10293:34:51" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "10085:248:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10175:9:51", + "nodeType": "YulTypedName", + "src": "10175:9:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10186:6:51", + "nodeType": "YulTypedName", + "src": "10186:6:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10194:6:51", + "nodeType": "YulTypedName", + "src": "10194:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10205:4:51", + "nodeType": "YulTypedName", + "src": "10205:4:51", + "type": "" + } + ], + "src": "10085:248:51" + } + ] + }, + "contents": "{\n { }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function 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_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(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_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\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 value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\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_contract$_IAddOnlyAppWhitelist_$11098__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_contract$_AddOnlyAppWhitelist_$12038__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value1 := value\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value3 := memPtr\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 value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\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 abi_encode_tuple_t_address_t_uint256_t_address__to_t_address_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_string(value3, add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\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 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 let _1 := 0\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 _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\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, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\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_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}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0x9A0D319E GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x9A0D319E EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x8129FC1C EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x9680579D EQ PUSH2 0x20A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x2972B0F0 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x1C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x178 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x10AB JUMP JUMPDEST PUSH2 0x27C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x140 PUSH2 0x2CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x1118 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x15B CALLDATASIZE PUSH1 0x4 PUSH2 0x112B JUMP JUMPDEST PUSH2 0x372 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST PUSH2 0x18B PUSH2 0x186 CALLDATASIZE PUSH1 0x4 PUSH2 0x1160 JUMP JUMPDEST PUSH2 0x387 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18B PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x396 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x1160 JUMP JUMPDEST PUSH2 0x426 JUMP JUMPDEST PUSH2 0x18B PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x442 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0x112B JUMP JUMPDEST PUSH2 0x462 JUMP JUMPDEST PUSH2 0x1EC PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x11C6 JUMP JUMPDEST PUSH2 0x46D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x12F JUMP JUMPDEST PUSH2 0x18B PUSH2 0x4C9 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x63E JUMP JUMPDEST PUSH2 0x160 PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x11C6 JUMP JUMPDEST PUSH2 0x67D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x160 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x18B PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x11E1 JUMP JUMPDEST PUSH2 0x6AA JUMP JUMPDEST PUSH2 0x18B PUSH2 0x251 CALLDATASIZE PUSH1 0x4 PUSH2 0x1233 JUMP JUMPDEST PUSH2 0x6B5 JUMP JUMPDEST PUSH2 0x140 PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x112B JUMP JUMPDEST PUSH2 0x6CD JUMP JUMPDEST PUSH2 0x123 PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x130F JUMP JUMPDEST PUSH2 0x741 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x2AD JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x2C8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x2EE SWAP1 PUSH2 0x1342 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 0x31A SWAP1 PUSH2 0x1342 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x367 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x33C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x367 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 0x34A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37D DUP3 PUSH2 0x78E JUMP JUMPDEST POP PUSH2 0x2C8 DUP3 PUSH2 0x7C6 JUMP JUMPDEST PUSH2 0x392 DUP3 DUP3 CALLER PUSH2 0x800 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3C5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3D2 DUP4 DUP4 CALLER PUSH2 0x80D JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x420 JUMPI PUSH1 0x40 MLOAD PUSH4 0x64283D7B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3BC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43B PUSH2 0x434 DUP4 PUSH2 0x462 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x917 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x45D DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x6B5 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C8 DUP3 PUSH2 0x78E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4A8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x22718AD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D3 PUSH2 0x93F JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x4FB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x518 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x526 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x544 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x56E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x5A8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x39 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1AC9 PUSH1 0x39 SWAP2 CODECOPY PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1B22 PUSH1 0x2C SWAP2 CODECOPY PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B4 SWAP1 PUSH2 0x1085 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x5D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x637 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 JUMP JUMPDEST PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079301 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2EE SWAP1 PUSH2 0x1342 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH2 0x695 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x97A JUMP JUMPDEST SWAP1 POP PUSH2 0x2C8 DUP4 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x987 JUMP JUMPDEST PUSH2 0x392 CALLER DUP4 DUP4 PUSH2 0x9A1 JUMP JUMPDEST PUSH2 0x6C0 DUP5 DUP5 DUP5 PUSH2 0x396 JUMP JUMPDEST PUSH2 0x420 CALLER DUP6 DUP6 DUP6 DUP6 PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x6D8 DUP3 PUSH2 0x78E JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x6F0 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x710 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x43B JUMP JUMPDEST DUP1 PUSH2 0x71A DUP5 PUSH2 0xB7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x72B SWAP3 SWAP2 SWAP1 PUSH2 0x137C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079305 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x79A DUP4 PUSH2 0xC0F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079304 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x45D DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x828 DUP6 PUSH2 0xC0F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x844 JUMPI PUSH2 0x844 DUP2 DUP6 DUP8 PUSH2 0xD5F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x884 JUMPI PUSH2 0x861 PUSH1 0x0 DUP7 PUSH1 0x0 DUP1 PUSH2 0xC49 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x0 NOT ADD SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND ISZERO PUSH2 0x8B5 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP9 SWAP4 SWAP2 DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x924 DUP5 DUP5 DUP5 PUSH2 0xDC3 JUMP JUMPDEST DUP1 PUSH2 0x937 JUMPI POP DUP2 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x2C8 JUMP JUMPDEST PUSH2 0x970 PUSH2 0xE28 JUMP JUMPDEST PUSH2 0x392 DUP3 DUP3 PUSH2 0xE4F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C8 DUP3 PUSH1 0x0 PUSH2 0xE80 JUMP JUMPDEST PUSH2 0x392 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xF16 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x9E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB611743 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 DUP5 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP9 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP8 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EXTCODESIZE ISZERO PUSH2 0x637 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xA94 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x13AB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xACF JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xACC SWAP2 DUP2 ADD SWAP1 PUSH2 0x13E8 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xB38 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xAFD 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 0xB02 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0xB30 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ PUSH2 0xB74 JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xB89 DUP4 PUSH2 0xF2E JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBA9 JUMPI PUSH2 0xBA9 PUSH2 0x121D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBD3 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xBDD JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH32 0x80BB2B638CC20BC4D0A60D66940F3AB4A00C1D7B313497CA82FB0B4AB0079302 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 DUP1 PUSH2 0xC6C JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0xD2E JUMPI PUSH1 0x0 PUSH2 0xC7C DUP6 PUSH2 0x78E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0xCA8 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xCBB JUMPI POP PUSH2 0xCB9 DUP2 DUP6 PUSH2 0x741 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xCE4 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9FBF51F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST DUP3 ISZERO PUSH2 0xD2C JUMPI DUP5 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x4 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xD6A DUP4 DUP4 DUP4 PUSH2 0x917 JUMP JUMPDEST PUSH2 0x45D JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xD98 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7E273289 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x177E802F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x937 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xDFD JUMPI POP PUSH2 0xDFD DUP5 DUP5 PUSH2 0x741 JUMP JUMPDEST DUP1 PUSH2 0x937 JUMPI POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE16 DUP4 PUSH2 0x7C6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xE30 PUSH2 0x1006 JUMP JUMPDEST PUSH2 0xE4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xE57 PUSH2 0xE28 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x1B02 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 PUSH2 0xE71 DUP5 DUP3 PUSH2 0x144D JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD PUSH2 0x420 DUP4 DUP3 PUSH2 0x144D JUMP JUMPDEST PUSH1 0x0 DUP2 SELFBALANCE LT ISZERO PUSH2 0xEAC JUMPI PUSH1 0x40 MLOAD PUSH4 0xCF479181 PUSH1 0xE0 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH23 0x3D602D80600A3D3981F3363D3D373D3D3D363D73000000 DUP4 PUSH1 0x60 SHL PUSH1 0xE8 SHR OR PUSH1 0x0 MSTORE PUSH15 0x5AF43D82803E903D91602B57FD5BF3 DUP4 PUSH1 0x78 SHL OR PUSH1 0x20 MSTORE PUSH1 0x37 PUSH1 0x9 DUP4 CREATE SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2C8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB06EBF3D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF20 DUP4 DUP4 PUSH2 0x1020 JUMP JUMPDEST PUSH2 0x45D CALLER PUSH1 0x0 DUP6 DUP6 DUP6 PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xF6D JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xF99 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xFB7 JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xFCF JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xFE3 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xFF5 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x2C8 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1010 PUSH2 0x93F JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x104A JUMPI PUSH1 0x40 MLOAD PUSH4 0x32505749 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1058 DUP4 DUP4 PUSH1 0x0 PUSH2 0x80D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0x45D JUMPI PUSH1 0x40 MLOAD PUSH4 0x39E35637 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x5BB DUP1 PUSH2 0x150E DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x10A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x43B DUP2 PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10E3 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10CB JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1104 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x10C8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x43B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x10EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x113D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x115B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x117C DUP4 PUSH2 0x1144 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x119F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11A8 DUP5 PUSH2 0x1144 JUMP JUMPDEST SWAP3 POP PUSH2 0x11B6 PUSH1 0x20 DUP6 ADD PUSH2 0x1144 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43B DUP3 PUSH2 0x1144 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x11F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11FD DUP4 PUSH2 0x1144 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1252 DUP6 PUSH2 0x1144 JUMP JUMPDEST SWAP4 POP PUSH2 0x1260 PUSH1 0x20 DUP7 ADD PUSH2 0x1144 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x12AA JUMPI PUSH2 0x12AA PUSH2 0x121D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x12D2 JUMPI PUSH2 0x12D2 PUSH2 0x121D JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x12EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1322 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x132B DUP4 PUSH2 0x1144 JUMP JUMPDEST SWAP2 POP PUSH2 0x1339 PUSH1 0x20 DUP5 ADD PUSH2 0x1144 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1356 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1376 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 0x0 DUP4 MLOAD PUSH2 0x138E DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x10C8 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x13A2 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x10C8 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x13DE SWAP1 DUP4 ADD DUP5 PUSH2 0x10EC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x43B DUP2 PUSH2 0x1092 JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH2 0x142E JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xB74 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x143A JUMP JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1467 PUSH2 0x121D JUMP JUMPDEST PUSH2 0x147B DUP2 PUSH2 0x1475 DUP5 SLOAD PUSH2 0x1342 JUMP JUMPDEST DUP5 PUSH2 0x1405 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x14B0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x1498 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x14DF JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH2 0x14C0 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH2 0x14FD JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLER PUSH1 0x80 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x80 MLOAD PUSH2 0x570 PUSH2 0x4B PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x6C ADD MSTORE DUP2 DUP2 PUSH2 0x129 ADD MSTORE DUP2 DUP2 PUSH2 0x1BC ADD MSTORE DUP2 DUP2 PUSH2 0x306 ADD MSTORE PUSH2 0x398 ADD MSTORE PUSH2 0x570 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7C236C63 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x93AC9B16 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0xC3C5A547 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xD202158D EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xFE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8E PUSH2 0x111 JUMP JUMPDEST PUSH2 0xC6 PUSH2 0xC1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x1A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDB PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2A1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xA2 JUMP JUMPDEST PUSH2 0xDB PUSH2 0xF9 CALLDATASIZE PUSH1 0x4 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x2BD JUMP JUMPDEST PUSH2 0xC6 PUSH2 0x10C CALLDATASIZE PUSH1 0x4 PUSH2 0x4BC JUMP JUMPDEST PUSH2 0x2EB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x178 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 0x19C SWAP2 SWAP1 PUSH2 0x4FB JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20B 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 0x22F SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x24C JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x262 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 PUSH1 0x1 PUSH2 0x437 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0xF4EF25A4FEF731446D3E674BCF3BD90BBA639303A0B8F40A21401BF5CF8A19BD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x4 PUSH2 0x2BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 DUP6 SWAP1 SHR DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xFF DUP5 AND SHL AND ISZERO ISZERO JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2972B0F PUSH1 0xE4 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2972B0F0 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x355 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 0x379 SWAP2 SWAP1 PUSH2 0x518 JUMP JUMPDEST PUSH2 0x396 JUMPI PUSH1 0x40 MLOAD PUSH4 0x686458E7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD PUSH2 0x3CD PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP1 DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x430 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x450 SWAP1 DUP4 DUP4 PUSH2 0x455 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x47F JUMPI PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x8 DUP3 SWAP1 SHR PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF DUP6 AND SHL NOT AND SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2E4 DUP2 PUSH2 0x4A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x2E4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 0xDF DUP9 DUP11 PUSH26 0xE374ADFDCEC15C9C29018563A2C35F6567D14B96CBE6423CE5A SGT PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER PUSH10 0x45786563204461746150 PUSH19 0x6F746563746F7253686172696E67204170706C PUSH10 0x636174696F6E20576869 PUSH21 0x656C69737420526567697374727980BB2B638CC20B 0xC4 0xD0 0xA6 0xD PUSH7 0x940F3AB4A00C1D PUSH28 0x313497CA82FB0B4AB007930069457865634461746150726F74656374 PUSH16 0x7253686172696E674164644F6E6C7941 PUSH17 0x7057686974656C697374A2646970667358 0x22 SLT KECCAK256 PUSH31 0xBAAE22A072B8D41C86E96D4851A6BBDF8707029EC7F565B8A78DC4FA228051 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "sourceMap": "1776:1902:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2673:311:2;;;;;;:::i;:::-;;:::i;:::-;;;565:14:51;;558:22;540:41;;528:2;513:18;2673:311:2;;;;;;;;3545:146;;;:::i;:::-;;;;;;;:::i;4791:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:51;;;1679:51;;1667:2;1652:18;4791:154:2;1533:203:51;4617:113:2;;;;;;:::i;:::-;;:::i;:::-;;5494:578;;;;;;:::i;:::-;;:::i;3520:156:49:-;;;;;;:::i;:::-;;:::i;6138:132:2:-;;;;;;:::i;:::-;;:::i;3365:118::-;;;;;;:::i;:::-;;:::i;3043:265::-;;;;;;:::i;:::-;;:::i;:::-;;;2848:25:51;;;2836:2;2821:18;3043:265:2;2702:177:51;2406:274:49;;;:::i;3755:150:2:-;;;:::i;2929:263:49:-;;;;;;:::i;:::-;;:::i;1995:49::-;;;;;-1:-1:-1;;;;;1995:49:49;;;5012:144:2;;;;;;:::i;:::-;;:::i;6336:233::-;;;;;;:::i;:::-;;:::i;3971:255::-;;;;;;:::i;:::-;;:::i;5222:210::-;;;;;;:::i;:::-;;:::i;2673:311::-;2786:4;-1:-1:-1;;;;;;2821:40:2;;-1:-1:-1;;;2821:40:2;;:104;;-1:-1:-1;;;;;;;2877:48:2;;-1:-1:-1;;;2877:48:2;2821:104;:156;;;-1:-1:-1;;;;;;;;;;1134:40:6;;;2941:36:2;2802:175;2673:311;-1:-1:-1;;2673:311:2:o;3545:146::-;-1:-1:-1;;;;;;;;;;;3670:14:2;;3590:13;;2076:21;;;3670:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:146;:::o;4791:154::-;4858:7;4877:22;4891:7;4877:13;:22::i;:::-;;4917:21;4930:7;4917:12;:21::i;4617:113::-;4688:35;4697:2;4701:7;966:10:4;4688:8:2;:35::i;:::-;4617:113;;:::o;5494:578::-;-1:-1:-1;;;;;5588:16:2;;5584:87;;5627:33;;-1:-1:-1;;;5627:33:2;;5657:1;5627:33;;;1679:51:51;1652:18;;5627:33:2;;;;;;;;5584:87;5889:21;5913:34;5921:2;5925:7;966:10:4;5913:7:2;:34::i;:::-;5889:58;;5978:4;-1:-1:-1;;;;;5961:21:2;:13;-1:-1:-1;;;;;5961:21:2;;5957:109;;6005:50;;-1:-1:-1;;;6005:50:2;;-1:-1:-1;;;;;5894:15:51;;;6005:50:2;;;5876:34:51;5926:18;;;5919:34;;;5989:15;;5969:18;;;5962:43;5811:18;;6005:50:2;5636:375:51;5957:109:2;5574:498;5494:578;;;:::o;3520:156:49:-;3597:4;3620:49;3634:16;3642:7;3634;:16::i;:::-;3652:7;3661;3620:13;:49::i;:::-;3613:56;3520:156;-1:-1:-1;;;3520:156:49:o;6138:132:2:-;6224:39;6241:4;6247:2;6251:7;6224:39;;;;;;;;;;;;:16;:39::i;:::-;6138:132;;;:::o;3365:118::-;3428:7;3454:22;3468:7;3454:13;:22::i;3043:265::-;3106:7;-1:-1:-1;;;;;;;;;;;;;;;;3184:19:2;;3180:87;;3226:30;;-1:-1:-1;;;3226:30:2;;3253:1;3226:30;;;1679:51:51;1652:18;;3226:30:2;1533:203:51;3180:87:2;-1:-1:-1;;;;;3283:18:2;;;;;;;:11;;;;:18;;-1:-1:-1;3283:18:2;;;;;3043:265::o;2406:274:49:-;4158:30:1;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:1;-1:-1:-1;;;4302:15:1;;;4301:16;;4348:14;;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;:16;;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:1;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:1;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:1;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:1;-1:-1:-1;;;5011:22:1;;;4977:67;2457:156:49::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:156::i;:::-;2648:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;2623:22:49::1;:50:::0;;-1:-1:-1;;;;;;2623:50:49::1;-1:-1:-1::0;;;;;2623:50:49;;;::::1;::::0;;;::::1;::::0;;5064:101:1;;;;5098:23;;-1:-1:-1;;;;5098:23:1;;;5140:14;;-1:-1:-1;6169:50:51;;5140:14:1;;6157:2:51;6142:18;5140:14:1;;;;;;;5064:101;4092:1079;;;;;2406:274:49:o;3755:150:2:-;3889:9;3882:16;;3802:13;;-1:-1:-1;;;;;;;;;;;2076:21:2;3882:16;;;:::i;2929:263:49:-;2997:20;3066:22;;2997:20;;3045:45;;-1:-1:-1;;;;;3066:22:49;3045:12;:45::i;:::-;3029:61;;3100:41;3110:5;3133;-1:-1:-1;;;;;3117:23:49;3100:9;:41::i;5012:144:2:-;5097:52;966:10:4;5130:8:2;5140;5097:18;:52::i;6336:233::-;6449:31;6462:4;6468:2;6472:7;6449:12;:31::i;:::-;6490:72;966:10:4;6538:4:2;6544:2;6548:7;6557:4;6490:33;:72::i;3971:255::-;4035:13;4060:22;4074:7;4060:13;:22::i;:::-;;4093:21;4117:10;4544:9;;;;;;;;;-1:-1:-1;4544:9:2;;;4468:92;4117:10;4093:34;;4168:1;4150:7;4144:21;:25;:75;;;;;;;;;;;;;;;;;4186:7;4195:18;:7;:16;:18::i;:::-;4172:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4137:82;3971:255;-1:-1:-1;;;3971:255:2:o;5222:210::-;-1:-1:-1;;;;;5388:27:2;;;5310:4;5388:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5222:210::o;17910:241::-;17973:7;17992:13;18008:17;18017:7;18008:8;:17::i;:::-;17992:33;-1:-1:-1;;;;;;18039:19:2;;18035:88;;18081:31;;-1:-1:-1;;;18081:31:2;;;;;2848:25:51;;;2821:18;;18081:31:2;2702:177:51;7372:184:2;7442:7;7523:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7523:26:2;;7372:184::o;16076:120::-;16156:33;16165:2;16169:7;16178:4;16184;16156:8;:33::i;10384:856::-;10470:7;-1:-1:-1;;;;;;;;;;;10470:7:2;10559:17;10568:7;10559:8;:17::i;:::-;10544:32;-1:-1:-1;;;;;;10636:18:2;;;10632:86;;10670:37;10687:4;10693;10699:7;10670:16;:37::i;:::-;-1:-1:-1;;;;;10762:18:2;;;10758:258;;10878:48;10895:1;10899:7;10916:1;10920:5;10878:8;:48::i;:::-;-1:-1:-1;;;;;10969:17:2;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10969:22:2;;;10758:258;-1:-1:-1;;;;;11030:16:2;;;11026:109;;-1:-1:-1;;;;;11090:15:2;;;;;;:11;;;:15;;;;;:20;;11109:1;11090:20;;;11026:109;11145:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11145:23:2;-1:-1:-1;;;;;11145:23:2;;;;;;;;;11184:27;;11145:18;;11184:27;;;;;;;11229:4;10384:856;-1:-1:-1;;;;;10384:856:2:o;3198:316:49:-;3340:4;3423:44;3443:5;3450:7;3459;3423:19;:44::i;:::-;:84;;;;3500:7;3487;-1:-1:-1;;;;;3471:25:49;:36;3423:84;3416:91;3198:316;-1:-1:-1;;;;3198:316:49:o;9071:205:1:-;9129:30;;3147:66;9186:27;8819:122;2232:149:2;6929:20:1;:18;:20::i;:::-;2335:39:2::1;2359:5;2366:7;2335:23;:39::i;1070:123:11:-:0;1127:16;1162:24;1168:14;1184:1;1162:5;:24::i;12240:100:2:-;12307:26;12317:2;12321:7;12307:26;;;;;;;;;;;;:9;:26::i;17306:369::-;-1:-1:-1;;;;;;;;;;;;;;;;17468:22:2;;17464:91;;17513:31;;-1:-1:-1;;;17513:31:2;;-1:-1:-1;;;;;1697:32:51;;17513:31:2;;;1679:51:51;1652:18;;17513:31:2;1533:203:51;17464:91:2;-1:-1:-1;;;;;17564:27:2;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17564:48:2;;;;;;;;;;17627:41;;540::51;;;17627::2;;513:18:51;17627:41:2;;;;;;;17399:276;17306:369;;;:::o;993:924:22:-;-1:-1:-1;;;;;1173:14:22;;;:18;1169:742;;1211:67;;-1:-1:-1;;;1211:67:22;;-1:-1:-1;;;;;1211:36:22;;;;;:67;;1248:8;;1258:4;;1264:7;;1273:4;;1211:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1211:67:22;;;;;;;;-1:-1:-1;;1211:67:22;;;;;;;;;;;;:::i;:::-;;;1207:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:6;:13;1585:1;1568:18;1564:323;;1672:39;;-1:-1:-1;;;1672:39:22;;-1:-1:-1;;;;;1697:32:51;;1672:39:22;;;1679:51:51;1652:18;;1672:39:22;1533:203:51;1564:323:22;1839:6;1833:13;1824:6;1820:2;1816:15;1809:38;1207:694;-1:-1:-1;;;;;;1325:51:22;;-1:-1:-1;;;1325:51:22;1321:182;;1445:39;;-1:-1:-1;;;1445:39:22;;-1:-1:-1;;;;;1697:32:51;;1445:39:22;;;1679:51:51;1652:18;;1445:39:22;1533:203:51;1321:182:22;1279:238;993:924;;;;;:::o;1308:632:29:-;1364:13;1413:14;1430:17;1441:5;1430:10;:17::i;:::-;1450:1;1430:21;1413:38;;1465:20;1499:6;1488:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1488:18:29;-1:-1:-1;1465:41:29;-1:-1:-1;1595:28:29;;;1611:2;1595:28;1650:247;-1:-1:-1;;1681:5:29;-1:-1:-1;;;1780:2:29;1769:14;;1764:32;1681:5;1751:46;1841:2;1832:11;;;-1:-1:-1;1861:21:29;1650:247;1861:21;-1:-1:-1;1917:6:29;1308:632;-1:-1:-1;;;1308:632:29:o;7084:172:2:-;7150:7;7231:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7231:18:2;;7084:172::o;16378:719::-;-1:-1:-1;;;;;;;;;;;16593:9:2;;:31;;-1:-1:-1;;;;;;16606:18:2;;;;16593:31;16589:460;;;16640:13;16656:22;16670:7;16656:13;:22::i;:::-;16640:38;-1:-1:-1;;;;;;16806:18:2;;;;;;:35;;;16837:4;-1:-1:-1;;;;;16828:13:2;:5;-1:-1:-1;;;;;16828:13:2;;;16806:35;:69;;;;;16846:29;16863:5;16870:4;16846:16;:29::i;:::-;16845:30;16806:69;16802:142;;;16902:27;;-1:-1:-1;;;16902:27:2;;-1:-1:-1;;;;;1697:32:51;;16902:27:2;;;1679:51:51;1652:18;;16902:27:2;1533:203:51;16802:142:2;16962:9;16958:81;;;17016:7;17012:2;-1:-1:-1;;;;;16996:28:2;17005:5;-1:-1:-1;;;;;16996:28:2;;;;;;;;;;;16958:81;16626:423;16589:460;17059:26;;;;:17;;:26;;-1:-1:-1;;17059:26:2;;;:31;;-1:-1:-1;;;;;;17059:31:2;-1:-1:-1;;;;;17059:31:2;;;;;;;;;;16378:719::o;8571:368::-;8683:38;8697:5;8704:7;8713;8683:13;:38::i;:::-;8678:255;;-1:-1:-1;;;;;8741:19:2;;8737:186;;8787:31;;-1:-1:-1;;;8787:31:2;;;;;2848:25:51;;;2821:18;;8787:31:2;2702:177:51;8737:186:2;8864:44;;-1:-1:-1;;;8864:44:2;;-1:-1:-1;;;;;7803:32:51;;8864:44:2;;;7785:51:51;7852:18;;;7845:34;;;7758:18;;8864:44:2;7611:274:51;7867:272:2;7970:4;-1:-1:-1;;;;;8005:21:2;;;;;;:127;;;8052:7;-1:-1:-1;;;;;8043:16:2;:5;-1:-1:-1;;;;;8043:16:2;;:52;;;;8063:32;8080:5;8087:7;8063:16;:32::i;:::-;8043:88;;;;8124:7;-1:-1:-1;;;;;8099:32:2;:21;8112:7;8099:12;:21::i;:::-;-1:-1:-1;;;;;8099:32:2;;;7867:272;-1:-1:-1;;;;7867:272:2:o;7082:141:1:-;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:1;;;;;;;;;;;7144:73;7082:141::o;2387:219:2:-;6929:20:1;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2076:21:2;2555:15:::1;2565:5:::0;2076:21;2555:15:::1;:::i;:::-;-1:-1:-1::0;2580:9:2::1;::::0;::::1;:19;2592:7:::0;2580:9;:19:::1;:::i;1585:910:11:-:0;1657:16;1713:5;1689:21;:29;1685:123;;;1741:56;;-1:-1:-1;;;1741:56:11;;1768:21;1741:56;;;10259:25:51;10300:18;;;10293:34;;;10232:18;;1741:56:11;10085:248:51;1685:123:11;2094:48;2076:14;2070:4;2066:25;2060:4;2056:36;2053:90;2047:4;2040:104;2301:32;2284:14;2278:4;2274:25;2271:63;2265:4;2258:77;2380:4;2374;2367:5;2360:25;2348:37;-1:-1:-1;;;;;;2408:22:11;;2404:85;;2453:25;;-1:-1:-1;;;2453:25:11;;;;;;;;;;;12561:207:2;12655:18;12661:2;12665:7;12655:5;:18::i;:::-;12683:78;966:10:4;12739:1:2;12743:2;12747:7;12756:4;12683:33;:78::i;29154:916:31:-;29207:7;;-1:-1:-1;;;29282:17:31;;29278:103;;-1:-1:-1;;;29319:17:31;;;-1:-1:-1;29364:2:31;29354:12;29278:103;29407:8;29398:5;:17;29394:103;;29444:8;29435:17;;;-1:-1:-1;29480:2:31;29470:12;29394:103;29523:8;29514:5;:17;29510:103;;29560:8;29551:17;;;-1:-1:-1;29596:2:31;29586:12;29510:103;29639:7;29630:5;:16;29626:100;;29675:7;29666:16;;;-1:-1:-1;29710:1:31;29700:11;29626:100;29752:7;29743:5;:16;29739:100;;29788:7;29779:16;;;-1:-1:-1;29823:1:31;29813:11;29739:100;29865:7;29856:5;:16;29852:100;;29901:7;29892:16;;;-1:-1:-1;29936:1:31;29926:11;29852:100;29978:7;29969:5;:16;29965:66;;30015:1;30005:11;30057:6;29154:916;-1:-1:-1;;29154:916:31:o;8485:120:1:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:1;;;;;;-1:-1:-1;8485:120:1:o;11562:327:2:-;-1:-1:-1;;;;;11629:16:2;;11625:87;;11668:33;;-1:-1:-1;;;11668:33:2;;11698:1;11668:33;;;1679:51:51;1652:18;;11668:33:2;1533:203:51;11625:87:2;11721:21;11745:32;11753:2;11757:7;11774:1;11745:7;:32::i;:::-;11721:56;-1:-1:-1;;;;;;11791:27:2;;;11787:96;;11841:31;;-1:-1:-1;;;11841:31:2;;11869:1;11841:31;;;1679:51:51;1652:18;;11841:31:2;1533:203:51;-1:-1:-1;;;;;;;;:::o;14:131:51:-;-1:-1:-1;;;;;;88:32:51;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:51;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:51;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:51:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:51;;1348:180;-1:-1:-1;1348:180:51:o;1741:173::-;1809:20;;-1:-1:-1;;;;;1858:31:51;;1848:42;;1838:70;;1904:1;1901;1894:12;1838:70;1741:173;;;:::o;1919:254::-;1987:6;1995;2048:2;2036:9;2027:7;2023:23;2019:32;2016:52;;;2064:1;2061;2054:12;2016:52;2087:29;2106:9;2087:29;:::i;:::-;2077:39;2163:2;2148:18;;;;2135:32;;-1:-1:-1;;;1919:254:51:o;2178:328::-;2255:6;2263;2271;2324:2;2312:9;2303:7;2299:23;2295:32;2292:52;;;2340:1;2337;2330:12;2292:52;2363:29;2382:9;2363:29;:::i;:::-;2353:39;;2411:38;2445:2;2434:9;2430:18;2411:38;:::i;:::-;2401:48;;2496:2;2485:9;2481:18;2468:32;2458:42;;2178:328;;;;;:::o;2511:186::-;2570:6;2623:2;2611:9;2602:7;2598:23;2594:32;2591:52;;;2639:1;2636;2629:12;2591:52;2662:29;2681:9;2662:29;:::i;3359:347::-;3424:6;3432;3485:2;3473:9;3464:7;3460:23;3456:32;3453:52;;;3501:1;3498;3491:12;3453:52;3524:29;3543:9;3524:29;:::i;:::-;3514:39;;3603:2;3592:9;3588:18;3575:32;3650:5;3643:13;3636:21;3629:5;3626:32;3616:60;;3672:1;3669;3662:12;3616:60;3695:5;3685:15;;;3359:347;;;;;:::o;3711:127::-;3772:10;3767:3;3763:20;3760:1;3753:31;3803:4;3800:1;3793:15;3827:4;3824:1;3817:15;3843:1138;3938:6;3946;3954;3962;4015:3;4003:9;3994:7;3990:23;3986:33;3983:53;;;4032:1;4029;4022:12;3983:53;4055:29;4074:9;4055:29;:::i;:::-;4045:39;;4103:38;4137:2;4126:9;4122:18;4103:38;:::i;:::-;4093:48;;4188:2;4177:9;4173:18;4160:32;4150:42;;4243:2;4232:9;4228:18;4215:32;4266:18;4307:2;4299:6;4296:14;4293:34;;;4323:1;4320;4313:12;4293:34;4361:6;4350:9;4346:22;4336:32;;4406:7;4399:4;4395:2;4391:13;4387:27;4377:55;;4428:1;4425;4418:12;4377:55;4464:2;4451:16;4486:2;4482;4479:10;4476:36;;;4492:18;;:::i;:::-;4567:2;4561:9;4535:2;4621:13;;-1:-1:-1;;4617:22:51;;;4641:2;4613:31;4609:40;4597:53;;;4665:18;;;4685:22;;;4662:46;4659:72;;;4711:18;;:::i;:::-;4751:10;4747:2;4740:22;4786:2;4778:6;4771:18;4826:7;4821:2;4816;4812;4808:11;4804:20;4801:33;4798:53;;;4847:1;4844;4837:12;4798:53;4903:2;4898;4894;4890:11;4885:2;4877:6;4873:15;4860:46;4948:1;4943:2;4938;4930:6;4926:15;4922:24;4915:35;4969:6;4959:16;;;;;;;3843:1138;;;;;;;:::o;4986:260::-;5054:6;5062;5115:2;5103:9;5094:7;5090:23;5086:32;5083:52;;;5131:1;5128;5121:12;5083:52;5154:29;5173:9;5154:29;:::i;:::-;5144:39;;5202:38;5236:2;5225:9;5221:18;5202:38;:::i;:::-;5192:48;;4986:260;;;;;:::o;5251:380::-;5330:1;5326:12;;;;5373;;;5394:61;;5448:4;5440:6;5436:17;5426:27;;5394:61;5501:2;5493:6;5490:14;5470:18;5467:38;5464:161;;5547:10;5542:3;5538:20;5535:1;5528:31;5582:4;5579:1;5572:15;5610:4;5607:1;5600:15;5464:161;;5251:380;;;:::o;6230:496::-;6409:3;6447:6;6441:13;6463:66;6522:6;6517:3;6510:4;6502:6;6498:17;6463:66;:::i;:::-;6592:13;;6551:16;;;;6614:70;6592:13;6551:16;6661:4;6649:17;;6614:70;:::i;:::-;6700:20;;6230:496;-1:-1:-1;;;;6230:496:51:o;6731:489::-;-1:-1:-1;;;;;7000:15:51;;;6982:34;;7052:15;;7047:2;7032:18;;7025:43;7099:2;7084:18;;7077:34;;;7147:3;7142:2;7127:18;;7120:31;;;6925:4;;7168:46;;7194:19;;7186:6;7168:46;:::i;:::-;7160:54;6731:489;-1:-1:-1;;;;;;6731:489:51:o;7225:249::-;7294:6;7347:2;7335:9;7326:7;7322:23;7318:32;7315:52;;;7363:1;7360;7353:12;7315:52;7395:9;7389:16;7414:30;7438:5;7414:30;:::i;8016:543::-;8118:2;8113:3;8110:11;8107:446;;;8154:1;8178:5;8175:1;8168:16;8222:4;8219:1;8209:18;8292:2;8280:10;8276:19;8273:1;8269:27;8263:4;8259:38;8328:4;8316:10;8313:20;8310:47;;;-1:-1:-1;8351:4:51;8310:47;8406:2;8401:3;8397:12;8394:1;8390:20;8384:4;8380:31;8370:41;;8461:82;8479:2;8472:5;8469:13;8461:82;;;8524:17;;;8505:1;8494:13;8461:82;;8735:1345;8861:3;8855:10;8888:18;8880:6;8877:30;8874:56;;;8910:18;;:::i;:::-;8939:97;9029:6;8989:38;9021:4;9015:11;8989:38;:::i;:::-;8983:4;8939:97;:::i;:::-;9091:4;;9148:2;9137:14;;9165:1;9160:663;;;;9867:1;9884:6;9881:89;;;-1:-1:-1;9936:19:51;;;9930:26;9881:89;-1:-1:-1;;8692:1:51;8688:11;;;8684:24;8680:29;8670:40;8716:1;8712:11;;;8667:57;9983:81;;9130:944;;9160:663;7963:1;7956:14;;;8000:4;7987:18;;-1:-1:-1;;9196:20:51;;;9314:236;9328:7;9325:1;9322:14;9314:236;;;9417:19;;;9411:26;9396:42;;9509:27;;;;9477:1;9465:14;;;;9344:19;;9314:236;;;9318:3;9578:6;9569:7;9566:19;9563:201;;;9639:19;;;9633:26;-1:-1:-1;;9722:1:51;9718:14;;;9734:3;9714:24;9710:37;9706:42;9691:58;9676:74;;9563:201;-1:-1:-1;;;;;9810:1:51;9794:14;;;9790:22;9777:36;;-1:-1:-1;8735:1345:51:o" + }, + "methodIdentifiers": { + "_implementationAddress()": "9a0d319e", + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "createAddOnlyAppWhitelist(address)": "9680579d", + "getApproved(uint256)": "081812fc", + "initialize()": "8129fc1c", + "isApprovedForAll(address,address)": "e985e9c5", + "isAuthorized(address,uint256)": "2972b0f0", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"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\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_implementationAddress\",\"outputs\":[{\"internalType\":\"contract AddOnlyAppWhitelist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"createAddOnlyAppWhitelist\",\"outputs\":[{\"internalType\":\"contract IAddOnlyAppWhitelist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createAddOnlyAppWhitelist(address)\":{\"params\":{\"owner\":\"- The address that will own the newly created AddOnlyAppWhitelist contract.\"},\"returns\":{\"_0\":\"IAddOnlyAppWhitelist - The newly created and registered AddOnlyAppWhitelist contract.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isAuthorized(address,uint256)\":{\"params\":{\"spender\":\"- The spender that you want to check if he has approval.\",\"tokenId\":\"- TokenId that we want to check for approval.\"}},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createAddOnlyAppWhitelist(address)\":{\"notice\":\"Creates a new AddOnlyAppWhitelist contract and registers it under the specified owner. This function facilitates the dynamic creation and onboarding of new applications into the platform's whitelist system, expanding the ecosystem.\"},\"isAuthorized(address,uint256)\":{\"notice\":\"Checks if spender can operate on tokenId, assuming the provided owner is the actual owner. Reverts if spender does not have approval from the provided owner for the given token or for all its assets the spender for the specific tokenId.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/registry/AddOnlyAppWhitelistRegistry.sol\":\"AddOnlyAppWhitelistRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0xfd473ea8f70e13eaa6475c7e348885b8a32925252e3bc237e07c0e3fde0f10f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea9d17ae8f18568ab1aedf555ebc79906ba3eaaccfa78efbaed05bd3a9e1b6f2\",\"dweb:/ipfs/QmUQDGwCVE72tExiyA9EuwBeaiu9a8DQin3DZxuX76umg4\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xc8ed8d2056934b7675b695dec032f2920c2f5c6cf33a17ca85650940675323ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c8ccc75d1cd792d192aa09e54dd49ea35fe85baa9fcd17486f29227d9f29b89\",\"dweb:/ipfs/QmbboSbFUEiM9tdEgBwuTRb7bykFoJXZ7dsSr1PSREJXMr\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/proxy/Clones.sol\":{\"keccak256\":\"0x7162fa3c6971aa6f0a70160fed018edbb8b1db3af9b034ef3f7c224c3bdb7431\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f212d25e8f357209838ad7ce8ebc89de79906d9fe580566962e889ecb090e6b4\",\"dweb:/ipfs/QmdbLuLwX24VB1Gdrabke584WyaUkuJSWuDzzuRgqAMFge\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xddab643169f47a2c5291afafcbfdca045d9e6835553307d090bc048b6dabd0ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ffbacfee42977167b3c75bd4787f8b72a7ab1176abd544f3dff662c6528e24\",\"dweb:/ipfs/QmUprM1cWCyaQ3LDjHA2DhwiPs3wekQ6MWXHFZdMMxpcyX\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0xbb7e8401583d26268ea9103013bcdcd90866a7718bd91105ebd21c9bf11f4f06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866a11ad89c93ee918078f7a46ae31e17d89216ce64603f0d34be7ed0a5c520e\",\"dweb:/ipfs/QmW3ckLEJg2v2NzuVLNJFmRuerGSipw6Dzg6ntbmqbAGoC\"]},\"@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/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@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\"]},\"@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"contracts/interfaces/IAddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x37ed3c22a6fba17b0f960761cc8ead2b8d90018b1e27de181e1aeffda669e256\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81ce88748ec26b94ebbe819962e0fc45c6d017e288009e17a916e9e072f4e8d0\",\"dweb:/ipfs/QmZWJshAWPk16YA2uJF966Rc4uxicCp625JXdrTMVuDRZU\"]},\"contracts/interfaces/IAddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0x3effb6bb9745cc98dfcb6b398930e937ac4263bba5da1460b4246a3179675720\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a6eec732266a50449e9da2711cbe05a90c56ba882a8f9f49c466dc04aa130b73\",\"dweb:/ipfs/Qmd7H2Xf2dJpL7kwpruCbqVDc5FmHcL2bt1TjJqAPmegow\"]},\"contracts/registry/AddOnlyAppWhitelist.sol\":{\"keccak256\":\"0x8ee0e756d6de429c33f762938253bdc68f1fbcd3ea5b0d8fdc15405bb4d3d038\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2dbb6f000a728a0f62ef62c003116b749cd023163d33a7f9c4d562770dce4360\",\"dweb:/ipfs/QmSqtcCjgkYcDqS1Kophpb8GP8o1KfP3UbKubZgyfmDnYE\"]},\"contracts/registry/AddOnlyAppWhitelistRegistry.sol\":{\"keccak256\":\"0xaf0d909e9628551500bf88360473de8786accf9dcfcf935df3e1b02647b7b56b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://392008453c6bb059c12f1c6878825d9b92a0cbca9b39d0afb6213bffecb54cd1\",\"dweb:/ipfs/QmaWi5HStss4ehrMo5WFbwTdhTJ2hWsY2GBpfLTwtSo6gC\"]},\"contracts/registry/ERC734.sol\":{\"keccak256\":\"0xd5519a46ebed0a9e9527fb916c0d0dd2f87e8b8e242059b7c254f1141b1a40a3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://92ea72fbeb2d1049466b530ebe96f91c54dc6e53420f687735f19585732abb20\",\"dweb:/ipfs/QmTcyfLdBDk6gH8FkLmeVtWH94i9JWw8QZqL5chi5yCami\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 12061, + "contract": "contracts/registry/AddOnlyAppWhitelistRegistry.sol:AddOnlyAppWhitelistRegistry", + "label": "_implementationAddress", + "offset": 0, + "slot": "0", + "type": "t_contract(AddOnlyAppWhitelist)12038" + } + ], + "types": { + "t_contract(AddOnlyAppWhitelist)12038": { + "encoding": "inplace", + "label": "contract AddOnlyAppWhitelist", + "numberOfBytes": "20" + } + } + } + } + }, + "contracts/registry/ERC734.sol": { + "ERC734": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "key", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "purpose", + "type": "uint256" + } + ], + "name": "keyHasPurpose", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b5060d08061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063d202158d14602d575b600080fd5b606560383660046079565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615159392505050565b604051901515815260200160405180910390f35b60008060408385031215608b57600080fd5b5050803592602090910135915056fea264697066735822122014cb6be3ecf0f1cfb64a6d624d1d294508ef43f886a5efb02707acf726b0703764736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xD0 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD202158D EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x79 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 DUP6 SWAP1 SHR DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xFF DUP5 AND SHL AND ISZERO ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ 0xCB PUSH12 0xE3ECF0F1CFB64A6D624D1D29 GASLIMIT ADDMOD 0xEF NUMBER 0xF8 DUP7 0xA5 0xEF 0xB0 0x27 SMOD 0xAC 0xF7 0x26 0xB0 PUSH17 0x3764736F6C634300081800330000000000 ", + "sourceMap": "1343:436:50:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@get_9136": { + "entryPoint": null, + "id": 9136, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@keyHasPurpose_12200": { + "entryPoint": null, + "id": 12200, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_uint256": { + "entryPoint": 121, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:456:51", + "nodeType": "YulBlock", + "src": "0:456:51", + "statements": [ + { + "nativeSrc": "6:3:51", + "nodeType": "YulBlock", + "src": "6:3:51", + "statements": [] + }, + { + "body": { + "nativeSrc": "101:161:51", + "nodeType": "YulBlock", + "src": "101:161:51", + "statements": [ + { + "body": { + "nativeSrc": "147:16:51", + "nodeType": "YulBlock", + "src": "147:16:51", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "156:1:51", + "nodeType": "YulLiteral", + "src": "156:1:51", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "159:1:51", + "nodeType": "YulLiteral", + "src": "159:1:51", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "149:6:51", + "nodeType": "YulIdentifier", + "src": "149:6:51" + }, + "nativeSrc": "149:12:51", + "nodeType": "YulFunctionCall", + "src": "149:12:51" + }, + "nativeSrc": "149:12:51", + "nodeType": "YulExpressionStatement", + "src": "149:12:51" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "122:7:51", + "nodeType": "YulIdentifier", + "src": "122:7:51" + }, + { + "name": "headStart", + "nativeSrc": "131:9:51", + "nodeType": "YulIdentifier", + "src": "131:9:51" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "118:3:51", + "nodeType": "YulIdentifier", + "src": "118:3:51" + }, + "nativeSrc": "118:23:51", + "nodeType": "YulFunctionCall", + "src": "118:23:51" + }, + { + "kind": "number", + "nativeSrc": "143:2:51", + "nodeType": "YulLiteral", + "src": "143:2:51", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "114:3:51", + "nodeType": "YulIdentifier", + "src": "114:3:51" + }, + "nativeSrc": "114:32:51", + "nodeType": "YulFunctionCall", + "src": "114:32:51" + }, + "nativeSrc": "111:52:51", + "nodeType": "YulIf", + "src": "111:52:51" + }, + { + "nativeSrc": "172:33:51", + "nodeType": "YulAssignment", + "src": "172:33:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "195:9:51", + "nodeType": "YulIdentifier", + "src": "195:9:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "182:12:51", + "nodeType": "YulIdentifier", + "src": "182:12:51" + }, + "nativeSrc": "182:23:51", + "nodeType": "YulFunctionCall", + "src": "182:23:51" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "172:6:51", + "nodeType": "YulIdentifier", + "src": "172:6:51" + } + ] + }, + { + "nativeSrc": "214:42:51", + "nodeType": "YulAssignment", + "src": "214:42:51", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "241:9:51", + "nodeType": "YulIdentifier", + "src": "241:9:51" + }, + { + "kind": "number", + "nativeSrc": "252:2:51", + "nodeType": "YulLiteral", + "src": "252:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "237:3:51", + "nodeType": "YulIdentifier", + "src": "237:3:51" + }, + "nativeSrc": "237:18:51", + "nodeType": "YulFunctionCall", + "src": "237:18:51" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "224:12:51", + "nodeType": "YulIdentifier", + "src": "224:12:51" + }, + "nativeSrc": "224:32:51", + "nodeType": "YulFunctionCall", + "src": "224:32:51" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "214:6:51", + "nodeType": "YulIdentifier", + "src": "214:6:51" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint256", + "nativeSrc": "14:248:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "59:9:51", + "nodeType": "YulTypedName", + "src": "59:9:51", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "70:7:51", + "nodeType": "YulTypedName", + "src": "70:7:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "82:6:51", + "nodeType": "YulTypedName", + "src": "82:6:51", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "90:6:51", + "nodeType": "YulTypedName", + "src": "90:6:51", + "type": "" + } + ], + "src": "14:248:51" + }, + { + "body": { + "nativeSrc": "362:92:51", + "nodeType": "YulBlock", + "src": "362:92:51", + "statements": [ + { + "nativeSrc": "372:26:51", + "nodeType": "YulAssignment", + "src": "372:26:51", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "384:9:51", + "nodeType": "YulIdentifier", + "src": "384:9:51" + }, + { + "kind": "number", + "nativeSrc": "395:2:51", + "nodeType": "YulLiteral", + "src": "395:2:51", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "380:3:51", + "nodeType": "YulIdentifier", + "src": "380:3:51" + }, + "nativeSrc": "380:18:51", + "nodeType": "YulFunctionCall", + "src": "380:18:51" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "372:4:51", + "nodeType": "YulIdentifier", + "src": "372:4:51" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "414:9:51", + "nodeType": "YulIdentifier", + "src": "414:9:51" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "439:6:51", + "nodeType": "YulIdentifier", + "src": "439:6:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "432:6:51", + "nodeType": "YulIdentifier", + "src": "432:6:51" + }, + "nativeSrc": "432:14:51", + "nodeType": "YulFunctionCall", + "src": "432:14:51" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "425:6:51", + "nodeType": "YulIdentifier", + "src": "425:6:51" + }, + "nativeSrc": "425:22:51", + "nodeType": "YulFunctionCall", + "src": "425:22:51" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "407:6:51", + "nodeType": "YulIdentifier", + "src": "407:6:51" + }, + "nativeSrc": "407:41:51", + "nodeType": "YulFunctionCall", + "src": "407:41:51" + }, + "nativeSrc": "407:41:51", + "nodeType": "YulExpressionStatement", + "src": "407:41:51" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "267:187:51", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "331:9:51", + "nodeType": "YulTypedName", + "src": "331:9:51", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "342:6:51", + "nodeType": "YulTypedName", + "src": "342:6:51", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "353:4:51", + "nodeType": "YulTypedName", + "src": "353:4:51", + "type": "" + } + ], + "src": "267:187:51" + } + ] + }, + "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 value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\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}", + "id": 51, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506004361060285760003560e01c8063d202158d14602d575b600080fd5b606560383660046079565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615159392505050565b604051901515815260200160405180910390f35b60008060408385031215608b57600080fd5b5050803592602090910135915056fea264697066735822122014cb6be3ecf0f1cfb64a6d624d1d294508ef43f886a5efb02707acf726b0703764736f6c63430008180033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD202158D EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x65 PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x79 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x8 DUP6 SWAP1 SHR DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0xFF DUP5 AND SHL AND ISZERO ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EQ 0xCB PUSH12 0xE3ECF0F1CFB64A6D624D1D29 GASLIMIT ADDMOD 0xEF NUMBER 0xF8 DUP7 0xA5 0xEF 0xB0 0x27 SMOD 0xAC 0xF7 0x26 0xB0 PUSH17 0x3764736F6C634300081800330000000000 ", + "sourceMap": "1343:436:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1513:128;;;;;;:::i;:::-;1587:4;1610:11;;;;;;;;;;;1144:1:34;1135:10;;;1206:20;;;;;;;;1170:1;1184:4;1176:12;;1170:19;1206:27;:32;;1603:31:50;1513:128;-1:-1:-1;;;1513:128:50;;;;432:14:51;;425:22;407:41;;395:2;380:18;1513:128:50;;;;;;;14:248:51;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;;182:23:51;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:51:o" + }, + "methodIdentifiers": { + "keyHasPurpose(bytes32,uint256)": "d202158d" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/registry/ERC734.sol\":\"ERC734\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/BitMaps.sol\":{\"keccak256\":\"0x3616f1b0d0a9ee1ca8f0953ecaceb9230e36f691c7974d30f964212acff52d2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4bebdd07b31ac28e3e596ac6f0333da90a4e332405aa7d65f3a3a7e0b4cf15e\",\"dweb:/ipfs/QmckoDU5bBnye2UtPcrfJNahLD2FbxrnPP9nrREMWPpnug\"]},\"contracts/registry/ERC734.sol\":{\"keccak256\":\"0xd5519a46ebed0a9e9527fb916c0d0dd2f87e8b8e242059b7c254f1141b1a40a3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://92ea72fbeb2d1049466b530ebe96f91c54dc6e53420f687735f19585732abb20\",\"dweb:/ipfs/QmTcyfLdBDk6gH8FkLmeVtWH94i9JWw8QZqL5chi5yCami\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 12183, + "contract": "contracts/registry/ERC734.sol:ERC734", + "label": "_store", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(BitMap)9100_storage)" + } + ], + "types": { + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_bytes32,t_struct(BitMap)9100_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct BitMaps.BitMap)", + "numberOfBytes": "32", + "value": "t_struct(BitMap)9100_storage" + }, + "t_mapping(t_uint256,t_uint256)": { + "encoding": "mapping", + "key": "t_uint256", + "label": "mapping(uint256 => uint256)", + "numberOfBytes": "32", + "value": "t_uint256" + }, + "t_struct(BitMap)9100_storage": { + "encoding": "inplace", + "label": "struct BitMaps.BitMap", + "members": [ + { + "astId": 9099, + "contract": "contracts/registry/ERC734.sol:ERC734", + "label": "_data", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_uint256,t_uint256)" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/deployed_addresses.json b/packages/sharing-smart-contract/ignition/deployments/chain-421614/deployed_addresses.json new file mode 100644 index 000000000..6343909b5 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/deployed_addresses.json @@ -0,0 +1,8 @@ +{ + "DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl": "0x31FA12A2B8067e7aca306A507CC706ac80b2d20e", + "DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy": "0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D", + "DataProtectorSharingModule#AddOnlyAppWhitelistRegistry": "0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D", + "DataProtectorSharingModule#DataProtectorSharingImpl": "0x2FBDcc656607389B9D87966F10aFC6Fd94130cAb", + "DataProtectorSharingModule#DataProtectorSharingProxy": "0x2485Ed90d4566516298B7D01462df8d1A41E13AE", + "DataProtectorSharingModule#DataProtectorSharing": "0x2485Ed90d4566516298B7D01462df8d1A41E13AE" +} diff --git a/packages/sharing-smart-contract/ignition/deployments/chain-421614/journal.jsonl b/packages/sharing-smart-contract/ignition/deployments/chain-421614/journal.jsonl new file mode 100644 index 000000000..afb3b9cb0 --- /dev/null +++ b/packages/sharing-smart-contract/ignition/deployments/chain-421614/journal.jsonl @@ -0,0 +1,28 @@ + +{"chainId":421614,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","constructorArgs":[],"contractName":"AddOnlyAppWhitelistRegistry","dependencies":[],"from":"0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000001"},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","networkInteraction":{"data":"0x26307668000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001c62608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611b83806100df6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a25780639a0d319e116100715780639a0d319e1461021d578063a22cb46514610230578063b88d4fde14610243578063c87b56dd14610256578063e985e9c51461026957600080fd5b806370a08231146101d95780638129fc1c146101fa57806395d89b41146102025780639680579d1461020a57600080fd5b806323b872dd116100de57806323b872dd1461018d5780632972b0f0146101a057806342842e0e146101b35780636352211e146101c657600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e3660046110ab565b61027c565b60405190151581526020015b60405180910390f35b6101406102ce565b60405161012f9190611118565b61016061015b36600461112b565b610372565b6040516001600160a01b03909116815260200161012f565b61018b610186366004611160565b610387565b005b61018b61019b36600461118a565b610396565b6101236101ae366004611160565b610426565b61018b6101c136600461118a565b610442565b6101606101d436600461112b565b610462565b6101ec6101e73660046111c6565b61046d565b60405190815260200161012f565b61018b6104c9565b61014061063e565b6101606102183660046111c6565b61067d565b600054610160906001600160a01b031681565b61018b61023e3660046111e1565b6106aa565b61018b610251366004611233565b6106b5565b61014061026436600461112b565b6106cd565b61012361027736600461130f565b610741565b60006001600160e01b031982166380ac58cd60e01b14806102ad57506001600160e01b03198216635b5e139f60e01b145b806102c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080516020611b0283398151915280546060919081906102ee90611342565b80601f016020809104026020016040519081016040528092919081815260200182805461031a90611342565b80156103675780601f1061033c57610100808354040283529160200191610367565b820191906000526020600020905b81548152906001019060200180831161034a57829003601f168201915b505050505091505090565b600061037d8261078e565b506102c8826107c6565b610392828233610800565b5050565b6001600160a01b0382166103c557604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006103d283833361080d565b9050836001600160a01b0316816001600160a01b031614610420576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016103bc565b50505050565b600061043b61043483610462565b8484610917565b9392505050565b61045d838383604051806020016040528060008152506106b5565b505050565b60006102c88261078e565b6000600080516020611b028339815191526001600160a01b0383166104a8576040516322718ad960e21b8152600060048201526024016103bc565b6001600160a01b039092166000908152600390920160205250604090205490565b60006104d361093f565b805490915060ff600160401b820416159067ffffffffffffffff166000811580156104fb5750825b905060008267ffffffffffffffff1660011480156105185750303b155b905081158015610526575080155b156105445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561056e57845460ff60401b1916600160401b1785555b6105a8604051806060016040528060398152602001611ac9603991396040518060600160405280602c8152602001611b22602c9139610968565b6040516105b490611085565b604051809103906000f0801580156105d0573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055831561063757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020611b02833981519152916102ee90611342565b600080548190610695906001600160a01b031661097a565b90506102c883826001600160a01b0316610987565b6103923383836109a1565b6106c0848484610396565b6104203385858585610a52565b60606106d88261078e565b5060006106f060408051602081019091526000815290565b90506000815111610710576040518060200160405280600081525061043b565b8061071a84610b7c565b60405160200161072b92919061137c565b6040516020818303038152906040529392505050565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b60008061079a83610c0f565b90506001600160a01b0381166102c857604051637e27328960e01b8152600481018490526024016103bc565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b61045d8383836001610c49565b6000600080516020611b028339815191528161082885610c0f565b90506001600160a01b0384161561084457610844818587610d5f565b6001600160a01b0381161561088457610861600086600080610c49565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156108b5576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6000610924848484610dc3565b80610937575081836001600160a01b0316145b949350505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006102c8565b610970610e28565b6103928282610e4f565b60006102c8826000610e80565b610392828260405180602001604052806000815250610f16565b600080516020611b028339815191526001600160a01b0383166109e257604051630b61174360e31b81526001600160a01b03841660048201526024016103bc565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b1561063757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610a949088908890879087906004016113ab565b6020604051808303816000875af1925050508015610acf575060408051601f3d908101601f19168201909252610acc918101906113e8565b60015b610b38573d808015610afd576040519150601f19603f3d011682016040523d82523d6000602084013e610b02565b606091505b508051600003610b3057604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610b7457604051633250574960e11b81526001600160a01b03851660048201526024016103bc565b505050505050565b60606000610b8983610f2e565b600101905060008167ffffffffffffffff811115610ba957610ba961121d565b6040519080825280601f01601f191660200182016040528015610bd3576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610bdd57509392505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020611b028339815191528180610c6c57506001600160a01b03831615155b15610d2e576000610c7c8561078e565b90506001600160a01b03841615801590610ca85750836001600160a01b0316816001600160a01b031614155b8015610cbb5750610cb98185610741565b155b15610ce45760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016103bc565b8215610d2c5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610d6a838383610917565b61045d576001600160a01b038316610d9857604051637e27328960e01b8152600481018290526024016103bc565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016103bc565b60006001600160a01b038316158015906109375750826001600160a01b0316846001600160a01b03161480610dfd5750610dfd8484610741565b806109375750826001600160a01b0316610e16836107c6565b6001600160a01b031614949350505050565b610e30611006565b610e4d57604051631afcd79f60e31b815260040160405180910390fd5b565b610e57610e28565b600080516020611b0283398151915280610e71848261144d565b5060018101610420838261144d565b600081471015610eac5760405163cf47918160e01b8152476004820152602481018390526044016103bc565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b176020526037600983f090506001600160a01b0381166102c85760405163b06ebf3d60e01b815260040160405180910390fd5b610f208383611020565b61045d336000858585610a52565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610f6d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610f99576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610fb757662386f26fc10000830492506010015b6305f5e1008310610fcf576305f5e100830492506008015b6127108310610fe357612710830492506004015b60648310610ff5576064830492506002015b600a83106102c85760010192915050565b600061101061093f565b54600160401b900460ff16919050565b6001600160a01b03821661104a57604051633250574960e11b8152600060048201526024016103bc565b60006110588383600061080d565b90506001600160a01b0381161561045d576040516339e3563760e11b8152600060048201526024016103bc565b6105bb8061150e83390190565b6001600160e01b0319811681146110a857600080fd5b50565b6000602082840312156110bd57600080fd5b813561043b81611092565b60005b838110156110e35781810151838201526020016110cb565b50506000910152565b600081518084526111048160208601602086016110c8565b601f01601f19169290920160200192915050565b60208152600061043b60208301846110ec565b60006020828403121561113d57600080fd5b5035919050565b80356001600160a01b038116811461115b57600080fd5b919050565b6000806040838503121561117357600080fd5b61117c83611144565b946020939093013593505050565b60008060006060848603121561119f57600080fd5b6111a884611144565b92506111b660208501611144565b9150604084013590509250925092565b6000602082840312156111d857600080fd5b61043b82611144565b600080604083850312156111f457600080fd5b6111fd83611144565b91506020830135801515811461121257600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561124957600080fd5b61125285611144565b935061126060208601611144565b925060408501359150606085013567ffffffffffffffff8082111561128457600080fd5b818701915087601f83011261129857600080fd5b8135818111156112aa576112aa61121d565b604051601f8201601f19908116603f011681019083821181831017156112d2576112d261121d565b816040528281528a60208487010111156112eb57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561132257600080fd5b61132b83611144565b915061133960208401611144565b90509250929050565b600181811c9082168061135657607f821691505b60208210810361137657634e487b7160e01b600052602260045260246000fd5b50919050565b6000835161138e8184602088016110c8565b8351908301906113a28183602088016110c8565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906113de908301846110ec565b9695505050505050565b6000602082840312156113fa57600080fd5b815161043b81611092565b601f82111561045d576000816000526020600020601f850160051c8101602086101561142e5750805b601f850160051c820191505b81811015610b745782815560010161143a565b815167ffffffffffffffff8111156114675761146761121d565b61147b816114758454611342565b84611405565b602080601f8311600181146114b057600084156114985750858301515b600019600386901b1c1916600185901b178555610b74565b600085815260208120601f198616915b828110156114df578886015182559484019460019091019084016114c0565b50858210156114fd5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60a06040523360805234801561001457600080fd5b5060805161057061004b60003960008181606c01528181610129015281816101bc01528181610306015261039801526105706000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80637c236c63146100675780638da5cb5b146100ab57806393ac9b16146100b3578063c3c5a547146100c8578063d202158d146100eb578063f2fde38b146100fe575b600080fd5b61008e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61008e610111565b6100c66100c13660046104bc565b6101a1565b005b6100db6100d63660046104bc565b6102a1565b60405190151581526020016100a2565b6100db6100f93660046104d9565b6102bd565b6100c661010c3660046104bc565b6102eb565b6040516331a9108f60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019c91906104fb565b905090565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa15801561020b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610518565b61024c5760405163686458e760e11b815260040160405180910390fd5b6102626001600160a01b03821660046001610437565b6040516001600160a01b03821681527ff4ef25a4fef731446d3e674bcf3bd90bba639303a0b8f40a21401bf5cf8a19bd9060200160405180910390a150565b60006102b76001600160a01b03831660046102bd565b92915050565b600082815260208181526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b6040516302972b0f60e41b81523360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632972b0f090604401602060405180830381865afa158015610355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103799190610518565b6103965760405163686458e760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd6103cd610111565b60405160e083901b6001600160e01b03191681526001600160a01b0391821660048201529084166024820152306044820152606401600060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b5050505050565b6000838152602081905260409020610450908383610455565b505050565b801561047f57600882901c60009081526020849052604090208054600160ff85161b179055505050565b600882901c60009081526020849052604090208054600160ff85161b19169055505050565b6001600160a01b03811681146104b957600080fd5b50565b6000602082840312156104ce57600080fd5b81356102e4816104a4565b600080604083850312156104ec57600080fd5b50508035926020909101359150565b60006020828403121561050d57600080fd5b81516102e4816104a4565b60006020828403121561052a57600080fd5b815180151581146102e457600080fdfea2646970667358221220a9df888a790e374adfdcec15c9c29018563a2c35f6567d14b96cbe6423ce5a1364736f6c634300081800336945786563204461746150726f746563746f7253686172696e67204170706c69636174696f6e2057686974656c69737420526567697374727980bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930069457865634461746150726f746563746f7253686172696e674164644f6e6c7941707057686974656c697374a26469706673582212207ebaae22a072b8d41c86e96d4851a6bbdf8707029ec7f565b8a78dc4fa22805164736f6c63430008180033000000000000000000000000000000000000000000000000000000000000","id":1,"to":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","networkInteractionId":1,"nonce":106,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","networkInteractionId":1,"nonce":106,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"956580000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x6cd876e82759916edd5d41881d01ac2bc581ffd0f20e907a2de64a245ef6ea60"},"type":"TRANSACTION_SEND"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","hash":"0x6cd876e82759916edd5d41881d01ac2bc581ffd0f20e907a2de64a245ef6ea60","networkInteractionId":1,"receipt":{"blockHash":"0x3822e055254a61f1f7435e3676cfaf09e4327777579c45451d3d67551ac836d6","blockNumber":154612602,"logs":[{"address":"0x31FA12A2B8067e7aca306A507CC706ac80b2d20e","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":4,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]},{"address":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","data":"0x","logIndex":5,"topics":["0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7","0x00000000000000000000000031fa12a2b8067e7aca306a507cc706ac80b2d20e","0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl","result":{"address":"0x31FA12A2B8067e7aca306A507CC706ac80b2d20e","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","constructorArgs":["0x31FA12A2B8067e7aca306A507CC706ac80b2d20e","0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","0x"],"contractName":"TransparentUpgradeableProxy","dependencies":["DataProtectorSharingModule#AddOnlyAppWhitelistRegistryImpl"],"from":"0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000001"},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","networkInteraction":{"data":"0x26307668000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000f3160a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000031fa12a2b8067e7aca306a507cc706ac80b2d20e0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","id":1,"to":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","networkInteractionId":1,"nonce":107,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","networkInteractionId":1,"nonce":107,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"954300000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8361b7763a075983df22a1a819e33c02040d08e123ecbcb425dba7f66cfc0b12"},"type":"TRANSACTION_SEND"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","hash":"0x8361b7763a075983df22a1a819e33c02040d08e123ecbcb425dba7f66cfc0b12","networkInteractionId":1,"receipt":{"blockHash":"0x177697d91a4e3a96a914fb9646f1f75575f417bef9cc7fe7958b0bc515ac3828","blockNumber":154612616,"logs":[{"address":"0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D","data":"0x","logIndex":15,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000031fa12a2b8067e7aca306a507cc706ac80b2d20e"]},{"address":"0x1c43c8EFeA6A30EdCD9Db5D2574637071adc3001","data":"0x","logIndex":16,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3"]},{"address":"0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D","data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c43c8efea6a30edcd9db5d2574637071adc3001","logIndex":17,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]},{"address":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","data":"0x","logIndex":18,"topics":["0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7","0x0000000000000000000000009902e2f89dcc4dccb75805096ead2e58fc389b7d","0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy","result":{"address":"0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistry","contractAddress":"0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D","contractName":"AddOnlyAppWhitelistRegistry","dependencies":["DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy"],"futureId":"DataProtectorSharingModule#AddOnlyAppWhitelistRegistry","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000001"},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} +{"artifactId":"DataProtectorSharingModule#DataProtectorSharingImpl","constructorArgs":["0x14B465079537655E1662F012e99EBa3863c8B9E0","0x3441A0C9FE488c51fcABa2bAAA048720f4D4F72D","0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D"],"contractName":"DataProtectorSharing","dependencies":["DataProtectorSharingModule#AddOnlyAppWhitelistRegistryProxy"],"from":"0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","futureId":"DataProtectorSharingModule#DataProtectorSharingImpl","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000001"},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingImpl","networkInteraction":{"data":"0x26307668000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000004a0260e06040523480156200001157600080fd5b50604051620049a2380380620049a283398101604081905262000034916200012e565b6001600160a01b0383166080526200004b62000064565b6001600160a01b0391821660c0521660a0525062000182565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000b55760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001155780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6001600160a01b03811681146200011557600080fd5b6000806000606084860312156200014457600080fd5b8351620001518162000118565b6020850151909350620001648162000118565b6040850151909250620001778162000118565b809150509250925092565b60805160a05160c0516147956200020d60003960008181610b960152818161144f01528181611c5201528181611cf101528181611d920152611f8c0152600081816104ca0152610b0b015260008181610ff9015281816115af01528181611e3001528181611fea015281816122b7015281816124fe01528181612ab20152612cf001526147956000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c80638129fc1c1161015c578063d0b06c66116100ce578063e985e9c511610087578063e985e9c51461070f578063ea46d1aa14610722578063f4c0fab414610767578063fe4c31a414610787578063ff19d9df1461079a578063ff811f60146107ad57600080fd5b8063d0b06c661461063b578063d3c523891461064e578063d547741f14610661578063d835c33714610674578063dc30b8fc14610687578063dfe0bc111461069a57600080fd5b8063a217fddf11610120578063a217fddf14610598578063a22cb465146105a0578063ac9650d8146105b3578063b88d4fde146105d3578063c3533ba2146105e6578063c87b56dd1461062857600080fd5b80638129fc1c146105385780638f4ffcb11461054057806391d148541461055357806395d89b41146105665780639a82c2bd1461056e57600080fd5b80632f2ff15d116101f557806342966c68116101b957806342966c68146104b25780634afecaff146104c557806353574f9e146104ec5780636352211e146104ff57806370a082311461051257806372d570ce1461052557600080fd5b80632f2ff15d146103ad578063328cb1f7146103c057806336568abe1461047957806340e6158d1461048c57806342842e0e1461049f57600080fd5b80630b9f187b116102475780630b9f187b14610314578063150b7a0214610327578063185e4e8d146103535780632069e9531461036657806323b872dd14610387578063248a9ca31461039a57600080fd5b806301d0b6341461028457806301ffc9a71461029957806306fdde03146102c1578063081812fc146102d6578063095ea7b314610301575b600080fd5b61029761029236600461351d565b6107c0565b005b6102ac6102a7366004613550565b610836565b60405190151581526020015b60405180910390f35b6102c9610847565b6040516102b891906135bd565b6102e96102e43660046135d0565b6108eb565b6040516001600160a01b0390911681526020016102b8565b61029761030f3660046135e9565b610900565b6102976103223660046136a0565b61090f565b61033a6103353660046136e8565b61092b565b6040516001600160e01b031990911681526020016102b8565b61029761036136600461351d565b61093c565b61037961037436600461351d565b6109b6565b6040519081526020016102b8565b610297610395366004613767565b6109d9565b6103796103a83660046135d0565b610a69565b6102976103bb3660046137a8565b610a8b565b6104676103ce36600461351d565b600560209081526000918252604091829020805460018201548451808601865260028401546001600160481b038082168352600160481b90910464ffffffffff1682870152865180880190975260049094015460ff808216151588526101009091049094169486019490945290936001600160a01b03821693600160a01b830465ffffffffffff1693600160d01b909304909216919086565b6040516102b8969594939291906137d8565b6102976104873660046137a8565b610aa7565b61029761049a366004613853565b610ada565b6102976104ad366004613767565b610d34565b6102976104c03660046135d0565b610d4f565b6102e97f000000000000000000000000000000000000000000000000000000000000000081565b6102976104fa3660046138aa565b610d5b565b6102e961050d3660046135d0565b610d67565b61037961052036600461351d565b610d72565b61029761053336600461351d565b610dce565b610297610e47565b6102ac61054e3660046138ea565b610fec565b6102ac6105613660046137a8565b61116e565b6102c96111a6565b61058161057c3660046139fd565b6111e5565b60405165ffffffffffff90911681526020016102b8565b610379600081565b6102976105ae366004613a41565b6111f9565b6105c66105c1366004613a6f565b611204565b6040516102b89190613ae3565b6102976105e13660046136e8565b6112eb565b6105816105f43660046137a8565b60008281526006602090815260408083206001600160a01b038516845260030190915290205465ffffffffffff1692915050565b6102c96106363660046135d0565b611303565b61029761064936600461351d565b611377565b61058161065c366004613b47565b611505565b61029761066f3660046137a8565b611512565b610379610682366004613b6b565b61152e565b610297610695366004613bb9565b611675565b6107006106a83660046135d0565b6006602090815260009182526040918290208054600182015484518086019095526002909201546001600160481b0381168552600160481b900464ffffffffff1692840192909252909165ffffffffffff9091169083565b6040516102b893929190613be7565b6102ac61071d366004613c23565b6117a3565b610581610730366004613c23565b6001600160a01b0391821660009081526005602090815260408083209390941682526003909201909152205465ffffffffffff1690565b61037961077536600461351d565b60046020526000908152604090205481565b61029761079536600461351d565b6117f0565b6102976107a8366004613c69565b61186f565b6102976107bb366004613c8d565b6118c9565b6001600160a01b038116600090815260056020526040902080546107e38161198b565b60048201805460ff19169055604080518281526001600160a01b03851660208201527f3fb0561a34a824ad00e49427875f49120aeba57a15999baef5fbae14e664d97291015b60405180910390a1505050565b6000610841826119c1565b92915050565b600080516020614720833981519152805460609190819061086790613cba565b80601f016020809104026020016040519081016040528092919081815260200182805461089390613cba565b80156108e05780601f106108b5576101008083540402835291602001916108e0565b820191906000526020600020905b8154815290600101906020018083116108c357829003601f168201915b505050505091505090565b60006108f6826119e6565b5061084182611a1e565b61090b828233611a58565b5050565b600061091a81611a65565b60006109268382613d36565b505050565b630a85bd0160e11b5b949350505050565b6001600160a01b0381166000908152600560205260409020805461095f8161198b565b6002820180546dffffffffff00000000000000000019169055604080518281526001600160a01b03851660208201527fb76a4377a20c8298064cd897c0095e802f478ccb93d1150d391a2dd268d7e5fb9101610829565b6000806003600081546109c890613e0b565b918290555090506108418382611a6f565b6001600160a01b038216610a0857604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a15838333611a89565b9050836001600160a01b0316816001600160a01b031614610a63576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016109ff565b50505050565b6000908152600080516020614740833981519152602052604090206001015490565b610a9482610a69565b610a9d81611a65565b610a638383611b05565b6001600160a01b0381163314610ad05760405163334bd91960e11b815260040160405180910390fd5b6109268282611bb1565b610ae38361198b565b610aec82611c2d565b6040516331a9108f60e11b81526001600160a01b0382811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b769190613e24565b506040516331a9108f60e11b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e908290636352211e90602401602060405180830381865afa158015610be5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c099190613e24565b6040516001600160e01b031960e084901b1681526001600160a01b0391821660048201523060248201529085166044820152606401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b505050506001600160a01b038281166000908152600560209081526040808320600180820180546001600160a01b031916968816969096179095558781558784526006909252822080549193929091610cc6908490613e41565b90915550610cd690508383611e1a565b50604080516001600160a01b0380861682526020820187905260009282019290925290831660608201527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd906080015b60405180910390a150505050565b610926838383604051806020016040528060008152506112eb565b61090b60008233611a89565b61092683338484611ef0565b6000610841826119e6565b60006000805160206147208339815191526001600160a01b038316610dad576040516322718ad960e21b8152600060048201526024016109ff565b6001600160a01b039092166000908152600390920160205250604090205490565b6001600160a01b03811660009081526005602052604090208054610df18161198b565b610dfa81612141565b60018201805460ff60d01b19169055604080518281526001600160a01b03851660208201527f619bc890d3c88741caaba887a528d314fe6fa1c2ba35730eb1db180c8bdc17579101610829565b6000610e5161217f565b805490915060ff600160401b82041615906001600160401b0316600081158015610e785750825b90506000826001600160401b03166001148015610e945750303b155b905081158015610ea2575080155b15610ec05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610eea57845460ff60401b1916600160401b1785555b610f5e6040518060400160405280601a81526020017f6945786563204461746150726f746563746f7253686172696e670000000000008152506040518060400160405280601981526020017f69457865634461746150726f746563746f7253686172696e67000000000000008152506121a8565b610f666121ba565b610f6e6121ba565b610f79600033611b05565b50610f9f604051806040016040528060048152602001636970667360e01b81525061090f565b8315610fe557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110395760405163ca41b30160e01b81523360048201526024016109ff565b600082900361105b57604051633e0f836160e21b815260040160405180910390fd5b600061106a6004828587613e54565b61107391613e7e565b9050632c3adc7760e01b6001600160e01b03198216016110c65760008061109d8560048189613e54565b8101906110aa9190613b47565b915091506110b9828a836121c4565b5060019350505050611165565b63657d3d4360e01b6001600160e01b031982160161110a576000806110ee8560048189613e54565b8101906110fb91906139fd565b915091506110b9828a836123b6565b635654583160e11b6001600160e01b031982160161115f5760008080611133866004818a613e54565b81019061114091906138aa565b925092509250611152838b8484611ef0565b6001945050505050611165565b60009150505b95945050505050565b6000918252600080516020614740833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060916000805160206147208339815191529161086790613cba565b60006111f28333846123b6565b9392505050565b61090b33838361260e565b604080516000815260208101909152606090826001600160401b0381111561122e5761122e613615565b60405190808252806020026020018201604052801561126157816020015b606081526020019060019003908161124c5790505b50915060005b838110156112e3576112be3086868481811061128557611285613ebf565b90506020028101906112979190613ed5565b856040516020016112aa93929190613f22565b6040516020818303038152906040526126bf565b8382815181106112d0576112d0613ebf565b6020908102919091010152600101611267565b505092915050565b6112f68484846109d9565b610a63338585858561272c565b606061130e826119e6565b50600061132660408051602081019091526000815290565b9050600081511161134657604051806020016040528060008152506111f2565b8061135084612856565b604051602001611361929190613f49565b6040516020818303038152906040529392505050565b6001600160a01b0381166000908152600560205260409020546113998161198b565b6113a281612141565b6113ab826128e8565b6001600160a01b0382166000908152600560209081526040808320838155600180820180546001600160d81b03191690556002820180546001600160701b03191690556004909101805469ffffffffffffffffffff191690558484526006909252822080549192909161141f908490613eac565b9091555050604051632142170760e11b81523060048201523360248201526001600160a01b0383811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b15801561149357600080fd5b505af11580156114a7573d6000803e3d6000fd5b5050604080516001600160a01b038616815260006020820181905291810185905260608101919091527f701e4990df91f34f0c6e42c039715e077aa32f81af006f9f5e8165cbda0fdddd925060800190505b60405180910390a15050565b60006111f28333846121c4565b61151b82610a69565b61152481611a65565b610a638383611bb1565b60008061153b858561293e565b6001600160a01b038087166000908152600560205260408120600101549293509161156891889116612a31565b9050600061157585612a9d565b90506000611595888761158b60208b018b61351d565b8a60800135612b71565b604051630558653560e21b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063156194d4906115ea90859087908c908790600401614283565b6020604051808303816000875af1158015611609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162d91906142d0565b94507f09bb563d4351a41cfcb2e1a9e3caabd85077d013afa5ef5b60cd460c56f7ff128589866040516116629392919061431d565b60405180910390a1505050509392505050565b6001600160a01b038216600090815260056020526040902080546116988161198b565b6116a1846128e8565b6001820154600160d01b900460ff16156116e05760405163123c6c3b60e11b8152600481018290526001600160a01b03851660248201526044016109ff565b6002820154600160481b900464ffffffffff161561172357604051631e6991f160e21b8152600481018290526001600160a01b03851660248201526044016109ff565b6004820180546001600160481b0385166101000269ffffffffffffffffffff199091161760011790556040517fec81370602852d2a562027f306877d179384b7df480e4f2c68d233de886cfd9290610d26908390879087909283526001600160a01b039190911660208301526001600160481b0316604082015260600190565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b6001600160a01b038116600090815260056020526040902080546118138161198b565b61181c83612d6a565b60018201805460ff60d01b1916600160d01b179055604080518281526001600160a01b03851660208201527f806e162c7ef4165a275b5df55317f9f7be1e2bb257c6cc87fbbb0fabb6b2f97b9101610829565b6118788261198b565b6000828152600660205260409020819060020161189582826143b2565b9050507fd33315cb494162d759f3ab7d813be7d0a6e0e70f717fc31c258f84a729004f7882826040516114f99291906143f2565b6001600160a01b038216600090815260056020526040902080546118ec8161198b565b6118f584612d6a565b6119056040840160208501614406565b64ffffffffff16600003611946576119236040840160208501614406565b604051632a94078b60e01b815264ffffffffff90911660048201526024016109ff565b826002830161195582826143b2565b9050507f796fca2de82b5272091ddfd0ab5d10f279e96eb8f47150d0f63f8411399b32ac818585604051610d2693929190614423565b61199e61199782610d67565b3383612db2565b6119be576040516373ed018760e01b8152600481018290526024016109ff565b50565b60006001600160e01b03198216637965db0b60e01b1480610841575061084182612e17565b6000806119f283612e67565b90506001600160a01b03811661084157604051637e27328960e01b8152600481018490526024016109ff565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6109268383836001612ea1565b6119be8133612fb7565b61090b828260405180602001604052806000815250612ff0565b60008281526006602052604081206001600160a01b038516611afa57805415611ac8576040516386acf7fd60e01b8152600481018590526024016109ff565b60018101544265ffffffffffff9091161115611afa57604051634aee26f760e11b8152600481018590526024016109ff565b611165858585613008565b6000600080516020614740833981519152611b20848461116e565b611ba0576000848152602082815260408083206001600160a01b03871684529091529020805460ff19166001179055611b563390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610841565b6000915050610841565b5092915050565b6000600080516020614740833981519152611bcc848461116e565b15611ba0576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610841565b6040516331a9108f60e11b81526001600160a01b0382811660048301819052916000917f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015611c99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbd9190613e24565b9050336001600160a01b0382161480611d67575060405163020604bf60e21b81526004810183905233906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063081812fc90602401602060405180830381865afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190613e24565b6001600160a01b0316145b80611dfd575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015611dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfd9190614446565b6109265760405163ede508e560e01b815260040160405180910390fd5b611e226134aa565b611e2c8383612a31565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b747106604051806060016040528084815260200160006001811115611e8157611e816142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152611eb891906004016144a6565b600060405180830381600087803b158015611ed257600080fd5b505af1158015611ee6573d6000803e3d6000fd5b5050505092915050565b6001600160a01b0384166000908152600560205260409020611f1185613112565b60048101546001600160481b038381166101009092041614611f5f576040516255350960e21b81526001600160a01b03861660048201526001600160481b03831660248201526044016109ff565b604051632142170760e11b81523060048201526001600160a01b03848116602483015286811660448301527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015611fd057600080fd5b505af1158015611fe4573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856120258460000154610d67565b60048581015460405160e086901b6001600160e01b031916815261205b9493926101009092046001600160481b031691016144b9565b6020604051808303816000875af115801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e9190614446565b508054604080519182526001600160a01b038581166020840152871682820152517f39e9de3f8fb17aa9d0e1df99a67605205f5e86d0ac765ee0299fb8ea4f2baa219181900360600190a1505050506001600160a01b031660009081526005602052604081209081556001810180546001600160d81b03191690556002810180546001600160701b0319169055600401805469ffffffffffffffffffff19169055565b6000818152600660205260409020600101544265ffffffffffff909116106119be57604051634aee26f760e11b8152600481018290526024016109ff565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610841565b6121b0613159565b61090b828261317e565b6121c2613159565b565b6000838152600660205260408120825160028201546001600160481b03908116911614158061220d575060208301516002820154600160481b900464ffffffffff908116911614155b1561222f578483604051632441e4e360e11b81526004016109ff9291906144e5565b600281015461224c90600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff8381169182179092556001840154929450612295929091166131af565b60018201805465ffffffffffff191665ffffffffffff929092169190911790557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856122ee88610d67565b60028501546040516001600160e01b031960e086901b16815261231f9392916001600160481b0316906004016144b9565b6020604051808303816000875af115801561233e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123629190614446565b506040805186815265ffffffffffff841660208201526001600160a01b038616917f2366234d2d402efc07153c0d03fc5ec74a9ef5496e1accadc4b1aaf51d7f73b9910160405180910390a2509392505050565b6001600160a01b03831660009081526005602052604081206002810154600160481b900464ffffffffff16820361240b57604051631446018560e11b81526001600160a01b03861660048201526024016109ff565b60208301516002820154600160481b900464ffffffffff90811691161415806124465750825160028201546001600160481b03908116911614155b156124685784836040516346aa951560e01b81526004016109ff929190614532565b600281015461248590600160481b900464ffffffffff1642614513565b6001600160a01b03851660009081526003830160205260409020805465ffffffffffff191665ffffffffffff83811691821790925560018401549294506124d6929091600160a01b909104166131af565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd856125398460000154610d67565b60028501546040516001600160e01b031960e086901b16815261256a9392916001600160481b0316906004016144b9565b6020604051808303816000875af1158015612589573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ad9190614446565b508054604080519182526001600160a01b03878116602084015286168282015265ffffffffffff84166060830152517fe2d5d453d44004623a821ef386e026d37fccbac3f56cef0cb5918cab5c11dc889181900360800190a1509392505050565b6000805160206147208339815191526001600160a01b03831661264f57604051630b61174360e31b81526001600160a01b03841660048201526024016109ff565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6060600080846001600160a01b0316846040516126dc9190614569565b600060405180830381855af49150503d8060008114612717576040519150601f19603f3d011682016040523d82523d6000602084013e61271c565b606091505b50915091506111658583836131bf565b6001600160a01b0383163b15610fe557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061276e908890889087908790600401614585565b6020604051808303816000875af19250505080156127a9575060408051601f3d908101601f191682019092526127a6918101906145b8565b60015b612812573d8080156127d7576040519150601f19603f3d011682016040523d82523d6000602084013e6127dc565b606091505b50805160000361280a57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461284e57604051633250574960e11b81526001600160a01b03851660048201526024016109ff565b505050505050565b606060006128638361321b565b60010190506000816001600160401b0381111561288257612882613615565b6040519080825280601f01601f1916602001820160405280156128ac576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846128b657509392505050565b6001600160a01b03811660009081526005602052604090206001015442600160a01b90910465ffffffffffff16106119be57604051637e448f1b60e11b81526001600160a01b03821660048201526024016109ff565b600060208201351561296557816040516385461e9b60e01b81526004016109ff91906145d5565b6001600160a01b03831660009081526005602090815260408083208054338552600382019093529220544265ffffffffffff909116106129aa57600192505050610841565b80158015906129c457506001820154600160d01b900460ff165b80156129f6575060008181526006602090815260408083203384526003019091529020544265ffffffffffff90911610155b15612a0657600092505050610841565b604051630e39d6b360e01b8152600481018290526001600160a01b03861660248201526044016109ff565b612a396134aa565b5060408051610120810182526001600160a01b03938416815260006020808301829052600019838501526003606084015293909416608082015260a081018490523060c082015260e081018490528151938452918301905261010081019190915290565b612aa56134aa565b612aae826132f3565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2b07e66604051806060016040528084815260200160006001811115612b0357612b036142e9565b815260408051600081526020808201835290920191909152516001600160e01b031960e084901b168152612b3a91906004016144a6565b600060405180830381600087803b158015612b5457600080fd5b505af1158015612b68573d6000803e3d6000fd5b50505050919050565b604080516102008101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e08201839052610100820183905261012082018390526101408201839052610160820183905261018082018390526101a082018190526101c08201929092526101e081019190915260006040518060600160405280604051806102000160405280886001600160a01b0316815260200160008152602001896001600160a01b0316815260200160008152602001876001600160a01b0316815260200160008152602001306001600160a01b0316815260200160018152602001600360001b815260200186815260200160008152602001336001600160a01b0316815260200160006001600160a01b03168152602001612ca361335b565b8152602001612cb0613383565b81526040805160008082526020808301845293840191909152928452838201839052805192835290820181529182015251638dd971d560e01b81529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638dd971d590612d2d9084906004016145e8565b600060405180830381600087803b158015612d4757600080fd5b505af1158015612d5b573d6000803e3d6000fd5b50509151979650505050505050565b6001600160a01b03811660009081526005602052604090206004015460ff16156119be576040516325e3e05d60e21b81526001600160a01b03821660048201526024016109ff565b60006001600160a01b038316158015906109345750826001600160a01b0316846001600160a01b03161480612dec5750612dec84846117a3565b806109345750826001600160a01b0316612e0583611a1e565b6001600160a01b031614949350505050565b60006001600160e01b031982166380ac58cd60e01b1480612e4857506001600160e01b03198216635b5e139f60e01b145b8061084157506301ffc9a760e01b6001600160e01b0319831614610841565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b6000805160206147208339815191528180612ec457506001600160a01b03831615155b15612f86576000612ed4856119e6565b90506001600160a01b03841615801590612f005750836001600160a01b0316816001600160a01b031614155b8015612f135750612f1181856117a3565b155b15612f3c5760405163a9fbf51f60e01b81526001600160a01b03851660048201526024016109ff565b8215612f845784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b612fc1828261116e565b61090b5760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044016109ff565b612ffa838361339e565b61092633600085858561272c565b60006000805160206147208339815191528161302385612e67565b90506001600160a01b0384161561303f5761303f818587613403565b6001600160a01b0381161561307f5761305c600086600080612ea1565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b038616156130b0576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b6001600160a01b03811660009081526005602052604090206004015460ff166119be576040516346bb405d60e01b81526001600160a01b03821660048201526024016109ff565b613161613467565b6121c257604051631afcd79f60e31b815260040160405180910390fd5b613186613159565b600080516020614720833981519152806131a08482613d36565b5060018101610a638382613d36565b60008282188284110282186111f2565b6060826131d4576131cf82613481565b6111f2565b81511580156131eb57506001600160a01b0384163b155b1561321457604051639996b31560e01b81526001600160a01b03851660048201526024016109ff565b50806111f2565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061325a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613286576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106132a457662386f26fc10000830492506010015b6305f5e10083106132bc576305f5e100830492506008015b61271083106132d057612710830492506004015b606483106132e2576064830492506002015b600a83106108415760010192915050565b6132fb6134aa565b5060408051610120810182526001600160a01b039290921682526000602080840182905260001984840152600360608501526080840182905260a084018290523060c085015260e084018290528251918252810190915261010082015290565b6060600060405160200161336f9190614636565b604051602081830303815290604052905090565b600060026000815461339490613e0b565b9182905550919050565b6001600160a01b0382166133c857604051633250574960e11b8152600060048201526024016109ff565b60006133d683836000611a89565b90506001600160a01b03811615610926576040516339e3563760e11b8152600060048201526024016109ff565b61340e838383612db2565b610926576001600160a01b03831661343c57604051637e27328960e01b8152600481018290526024016109ff565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016109ff565b600061347161217f565b54600160401b900460ff16919050565b8051156134915780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b604080516101208101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082019290925261010081019190915290565b6001600160a01b03811681146119be57600080fd5b8035613518816134f8565b919050565b60006020828403121561352f57600080fd5b81356111f2816134f8565b6001600160e01b0319811681146119be57600080fd5b60006020828403121561356257600080fd5b81356111f28161353a565b60005b83811015613588578181015183820152602001613570565b50506000910152565b600081518084526135a981602086016020860161356d565b601f01601f19169290920160200192915050565b6020815260006111f26020830184613591565b6000602082840312156135e257600080fd5b5035919050565b600080604083850312156135fc57600080fd5b8235613607816134f8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b038084111561364557613645613615565b604051601f8501601f19908116603f0116810190828211818310171561366d5761366d613615565b8160405280935085815286868601111561368657600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156136b257600080fd5b81356001600160401b038111156136c857600080fd5b8201601f810184136136d957600080fd5b6109348482356020840161362b565b600080600080608085870312156136fe57600080fd5b8435613709816134f8565b93506020850135613719816134f8565b92506040850135915060608501356001600160401b0381111561373b57600080fd5b8501601f8101871361374c57600080fd5b61375b8782356020840161362b565b91505092959194509250565b60008060006060848603121561377c57600080fd5b8335613787816134f8565b92506020840135613797816134f8565b929592945050506040919091013590565b600080604083850312156137bb57600080fd5b8235915060208301356137cd816134f8565b809150509250929050565b8681526001600160a01b038616602082015265ffffffffffff851660408201528315156060820152610100810161382c608083018580516001600160481b0316825260209081015164ffffffffff16910152565b8251151560c08301526001600160481b0360208401511660e0830152979650505050505050565b60008060006060848603121561386857600080fd5b83359250602084013561387a816134f8565b9150604084013561388a816134f8565b809150509250925092565b6001600160481b03811681146119be57600080fd5b6000806000606084860312156138bf57600080fd5b83356138ca816134f8565b925060208401356138da816134f8565b9150604084013561388a81613895565b60008060008060006080868803121561390257600080fd5b853561390d816134f8565b9450602086013593506040860135613924816134f8565b925060608601356001600160401b038082111561394057600080fd5b818801915088601f83011261395457600080fd5b81358181111561396357600080fd5b89602082850101111561397557600080fd5b9699959850939650602001949392505050565b64ffffffffff811681146119be57600080fd5b6000604082840312156139ad57600080fd5b604051604081018181106001600160401b03821117156139cf576139cf613615565b60405290508082356139e081613895565b815260208301356139f081613988565b6020919091015292915050565b60008060608385031215613a1057600080fd5b8235613a1b816134f8565b9150613a2a846020850161399b565b90509250929050565b80151581146119be57600080fd5b60008060408385031215613a5457600080fd5b8235613a5f816134f8565b915060208301356137cd81613a33565b60008060208385031215613a8257600080fd5b82356001600160401b0380821115613a9957600080fd5b818501915085601f830112613aad57600080fd5b813581811115613abc57600080fd5b8660208260051b8501011115613ad157600080fd5b60209290920196919550909350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613b3a57603f19888603018452613b28858351613591565b94509285019290850190600101613b0c565b5092979650505050505050565b60008060608385031215613b5a57600080fd5b82359150613a2a846020850161399b565b600080600060608486031215613b8057600080fd5b8335613b8b816134f8565b925060208401356001600160401b03811115613ba657600080fd5b8401610160818703121561387a57600080fd5b60008060408385031215613bcc57600080fd5b8235613bd7816134f8565b915060208301356137cd81613895565b83815265ffffffffffff8316602082015260808101610934604083018480516001600160481b0316825260209081015164ffffffffff16910152565b60008060408385031215613c3657600080fd5b8235613c41816134f8565b915060208301356137cd816134f8565b600060408284031215613c6357600080fd5b50919050565b60008060608385031215613c7c57600080fd5b82359150613a2a8460208501613c51565b60008060608385031215613ca057600080fd5b8235613cab816134f8565b9150613a2a8460208501613c51565b600181811c90821680613cce57607f821691505b602082108103613c6357634e487b7160e01b600052602260045260246000fd5b601f821115610926576000816000526020600020601f850160051c81016020861015613d175750805b601f850160051c820191505b8181101561284e57828155600101613d23565b81516001600160401b03811115613d4f57613d4f613615565b613d6381613d5d8454613cba565b84613cee565b602080601f831160018114613d985760008415613d805750858301515b600019600386901b1c1916600185901b17855561284e565b600085815260208120601f198616915b82811015613dc757888601518255948401946001909101908401613da8565b5085821015613de55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201613e1d57613e1d613df5565b5060010190565b600060208284031215613e3657600080fd5b81516111f2816134f8565b8082018082111561084157610841613df5565b60008085851115613e6457600080fd5b83861115613e7157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156112e35760049490940360031b84901b1690921692915050565b8181038181111561084157610841613df5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613eec57600080fd5b8301803591506001600160401b03821115613f0657600080fd5b602001915036819003821315613f1b57600080fd5b9250929050565b828482376000838201600081528351613f3f81836020880161356d565b0195945050505050565b60008351613f5b81846020880161356d565b835190830190613f6f81836020880161356d565b01949350505050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151613fc160808601826001600160a01b03169052565b5060a0830151613fdc60a08601826001600160a01b03169052565b5060c0830151613ff760c08601826001600160a01b03169052565b5060e083015160e085015261010080840151828287015261401a83870182613591565b9695505050505050565b6000808335601e1984360301811261403b57600080fd5b83016020810192503590506001600160401b0381111561405a57600080fd5b803603821315613f1b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606140b1846140a48561350d565b6001600160a01b03169052565b6020830135602085015260408301356040850152606083013560608501526080830135608085015260a083013560a08501526140ef60c0840161350d565b6001600160a01b031660c085015261410960e0840161350d565b6001600160a01b031660e085015261010061412584820161350d565b6001600160a01b031690850152610120838101359085015261014061414c81850185614024565b838388015261415e8488018284614069565b979650505050505050565b80516001600160a01b03168252600061020060208301516020850152604083015161419f60408601826001600160a01b03169052565b506060830151606085015260808301516141c460808601826001600160a01b03169052565b5060a083015160a085015260c08301516141e960c08601826001600160a01b03169052565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015190850152610160808401516001600160a01b038116828701525050610180838101516001600160a01b0381168683015250506101a080840151828287015261425b83870182613591565b925050506101c08084015181860152506101e0808401518583038287015261401a8382613591565b6080815260006142966080830187613f78565b82810360208401526142a88187613f78565b905082810360408401526142bc8186614092565b9050828103606084015261415e8185614169565b6000602082840312156142e257600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600281106119be57634e487b7160e01b600052602160045260246000fd5b8381526001600160a01b03831660208201526060810161433c836142ff565b826040830152949350505050565b813561435581613895565b6001600160481b03811690508154816001600160481b03198216178355602084013561438081613988565b6dffffffffff0000000000000000008160481b16836dffffffffffffffffffffffffffff198416171784555050505050565b61090b828261434a565b80356143c781613895565b6001600160481b0316825260208101356143e081613988565b64ffffffffff81166020840152505050565b828152606081016111f260208301846143bc565b60006020828403121561441857600080fd5b81356111f281613988565b8381526001600160a01b03831660208201526080810161093460408301846143bc565b60006020828403121561445857600080fd5b81516111f281613a33565b60008151606084526144786060850182613f78565b90506020830151614488816142ff565b80602086015250604083015184820360408601526111658282613591565b6020815260006111f26020830184614463565b6001600160a01b0393841681529190921660208201526001600160481b03909116604082015260600190565b828152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b65ffffffffffff818116838216019080821115611baa57611baa613df5565b6001600160a01b0383168152606081016111f2602083018480516001600160481b0316825260209081015164ffffffffff16910152565b6000825161457b81846020870161356d565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061401a90830184613591565b6000602082840312156145ca57600080fd5b81516111f28161353a565b6020815260006111f26020830184614092565b6020815260008251606060208401526146046080840182614169565b90506020840151614614816142ff565b806040850152506040840151601f198483030160608501526111658282613591565b7f7b2269657865635f726573756c745f656e6372797074696f6e223a747275650081527f2c2269657865635f726573756c745f73746f726167655f70726f766964657222601f820152611d1160f11b603f820152600060416000845461469b81613cba565b600182811680156146b357600181146146ce57614702565b60ff1984166041890152604183151584028901019450614702565b8860005260208060002060005b858110156146f65781548b82018a01529084019082016146db565b50505060418389010194505b505050506147148161227d60f01b9052565b60020194935050505056fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212205e4f08e222ec4a667caf0a065c5f78c597e426b7bad918a04f472d624bbec20a64736f6c6343000818003300000000000000000000000014b465079537655e1662f012e99eba3863c8b9e00000000000000000000000003441a0c9fe488c51fcaba2baaa048720f4d4f72d0000000000000000000000009902e2f89dcc4dccb75805096ead2e58fc389b7d000000000000000000000000000000000000000000000000000000000000","id":1,"to":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingImpl","networkInteractionId":1,"nonce":108,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingImpl","networkInteractionId":1,"nonce":108,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"953500000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xed7d82a6d8a0b7235b3e75e796b984bbd3ad3a1cf9756dfbd88b95d4068928fd"},"type":"TRANSACTION_SEND"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingImpl","hash":"0xed7d82a6d8a0b7235b3e75e796b984bbd3ad3a1cf9756dfbd88b95d4068928fd","networkInteractionId":1,"receipt":{"blockHash":"0x1c963c03be5923e25d8872f4a8c5f8c7772a0737b1c3de7c9ff542ff16c09dba","blockNumber":154612629,"logs":[{"address":"0x2FBDcc656607389B9D87966F10aFC6Fd94130cAb","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":5,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]},{"address":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","data":"0x","logIndex":6,"topics":["0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7","0x0000000000000000000000002fbdcc656607389b9d87966f10afc6fd94130cab","0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingImpl","result":{"address":"0x2FBDcc656607389B9D87966F10aFC6Fd94130cAb","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DataProtectorSharingModule#DataProtectorSharingProxy","constructorArgs":["0x2FBDcc656607389B9D87966F10aFC6Fd94130cAb","0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","0x"],"contractName":"TransparentUpgradeableProxy","dependencies":["DataProtectorSharingModule#DataProtectorSharingImpl"],"from":"0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","futureId":"DataProtectorSharingModule#DataProtectorSharingProxy","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000001"},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingProxy","networkInteraction":{"data":"0x26307668000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000f3160a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea26469706673582212209337d136f2b4b2154746672e0df2cca2e33bea3e3fa6951ce31fc75a0d2ec5c364736f6c63430008180033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220fa82b8f95f3eb9534a5d44b3fe7a934376995efa5e3d86fa4073fefdb114e5c164736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000002fbdcc656607389b9d87966f10afc6fd94130cab0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","id":1,"to":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingProxy","networkInteractionId":1,"nonce":109,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingProxy","networkInteractionId":1,"nonce":109,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"954680000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x6d4a6d04ce8f21c7dfa74afd304aad7f133133da1fa52c4438087c0f5fa8a218"},"type":"TRANSACTION_SEND"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingProxy","hash":"0x6d4a6d04ce8f21c7dfa74afd304aad7f133133da1fa52c4438087c0f5fa8a218","networkInteractionId":1,"receipt":{"blockHash":"0xb3d0592216c10cec347863c16908264cbbdf052481df34cc3593087b586d5bb8","blockNumber":154612641,"logs":[{"address":"0x2485Ed90d4566516298B7D01462df8d1A41E13AE","data":"0x","logIndex":10,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002fbdcc656607389b9d87966f10afc6fd94130cab"]},{"address":"0xf33a0e927Fba4f56595f19E55b60E742cC52D291","data":"0x","logIndex":11,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000009990cfb1feb7f47297f54bef4d4ebedf6c5463a3"]},{"address":"0x2485Ed90d4566516298B7D01462df8d1A41E13AE","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f33a0e927fba4f56595f19e55b60e742cc52d291","logIndex":12,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]},{"address":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","data":"0x","logIndex":13,"topics":["0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7","0x0000000000000000000000002485ed90d4566516298b7d01462df8d1a41e13ae","0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DataProtectorSharingModule#DataProtectorSharingProxy","result":{"address":"0x2485Ed90d4566516298B7D01462df8d1A41E13AE","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DataProtectorSharingModule#DataProtectorSharing","contractAddress":"0x2485Ed90d4566516298B7D01462df8d1A41E13AE","contractName":"DataProtectorSharing","dependencies":["DataProtectorSharingModule#DataProtectorSharingProxy"],"futureId":"DataProtectorSharingModule#DataProtectorSharing","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000001"},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} \ No newline at end of file diff --git a/packages/sharing-smart-contract/ignition/modules/DataProtectorSharingModule.cjs b/packages/sharing-smart-contract/ignition/modules/DataProtectorSharingModule.cjs new file mode 100644 index 000000000..8ccff47fc --- /dev/null +++ b/packages/sharing-smart-contract/ignition/modules/DataProtectorSharingModule.cjs @@ -0,0 +1,60 @@ +/* eslint-disable import/extensions */ +const { buildModule } = require('@nomicfoundation/hardhat-ignition/modules'); + +const { + DATASET_REGISTRY_ADDRESS: defaultDatasetRegistryAddress, + POCO_ADDRESS: defaultPocoAddress, +} = require('../../config/config.cjs'); +const env = require('../../config/env.cjs'); + +// Hardhat Ignition does not support ESM yet. + +// @ts-ignore +module.exports = buildModule('DataProtectorSharingModule', (m) => { + const proxyAdminOwner = m.getAccount(0); + const pocoAddress = env.POCO_ADDRESS || defaultPocoAddress; + const datasetRegistryAddress = env.DATASET_REGISTRY_ADDRESS || defaultDatasetRegistryAddress; + + // Whitelist + const addOnlyAppWhitelistRegistryImpl = m.contract('AddOnlyAppWhitelistRegistry', [], { + id: 'AddOnlyAppWhitelistRegistryImpl', + }); + const addOnlyAppWhitelistRegistryProxy = m.contract( + 'TransparentUpgradeableProxy', + [ + addOnlyAppWhitelistRegistryImpl, + proxyAdminOwner, + '0x', // No initialization data. + ], + { + id: 'AddOnlyAppWhitelistRegistryProxy', + }, + ); + const addOnlyAppWhitelistRegistry = m.contractAt( + 'AddOnlyAppWhitelistRegistry', + addOnlyAppWhitelistRegistryProxy, + ); + + // DPS + const dataProtectorSharingImpl = m.contract( + 'DataProtectorSharing', + [pocoAddress, datasetRegistryAddress, addOnlyAppWhitelistRegistryProxy], + { + id: 'DataProtectorSharingImpl', + }, + ); + const dataProtectorSharingProxy = m.contract( + 'TransparentUpgradeableProxy', + [ + dataProtectorSharingImpl, + proxyAdminOwner, + '0x', // No initialization data. + ], + { + id: 'DataProtectorSharingProxy', + }, + ); + const dataProtectorSharing = m.contractAt('DataProtectorSharing', dataProtectorSharingProxy); + + return { addOnlyAppWhitelistRegistry, dataProtectorSharing }; +}); diff --git a/packages/sharing-smart-contract/package-lock.json b/packages/sharing-smart-contract/package-lock.json index 50d3ebfb3..0480243e7 100644 --- a/packages/sharing-smart-contract/package-lock.json +++ b/packages/sharing-smart-contract/package-lock.json @@ -10,692 +10,1034 @@ "license": "Apache-2.0", "dependencies": { "@iexec/dataprotector-environments": "file:../../environments", - "@openzeppelin/contracts-upgradeable": "^5.0.2", - "@openzeppelin/hardhat-upgrades": "^3.1.0", + "@openzeppelin/contracts-upgradeable": "^5.3.0", + "@openzeppelin/hardhat-upgrades": "^3.9.0", "ethers": "^6.11.1", - "iexec": "^8.7.0" + "iexec": "^8.15.0", + "rimraf": "^6.0.1" }, "devDependencies": { - "@nomicfoundation/hardhat-foundry": "^1.1.2", + "@nomicfoundation/hardhat-foundry": "^1.1.3", "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "@nomiclabs/hardhat-solhint": "^3.0.1", - "chai": "^4.4.1", - "dotenv": "^16.4.5", - "eslint": "^8.57.0", - "eslint-config-airbnb-typescript": "^18.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "hardhat": "2.20.1", + "@nomiclabs/hardhat-solhint": "^4.0.1", + "dotenv": "^16.5.0", + "eslint": "^9.24.0", + "eslint-config-prettier": "^10.1.2", + "eslint-plugin-import": "^2.31.0", + "hardhat": "^2.23.0", "hardhat-contract-sizer": "^2.10.0", - "prettier": "^3.2.5", - "prettier-plugin-organize-imports": "^3.2.4", - "prettier-plugin-solidity": "^1.3.1", + "hardhat-dependency-compiler": "^1.2.1", + "prettier": "^3.3.3", + "prettier-plugin-organize-imports": "^4.0.0", + "prettier-plugin-solidity": "^1.4.1", "sol2uml": "2.5.6", - "zx": "^7.2.3" + "zod": "^3.24.3", + "zx": "^8.5.3" } }, "../../environments": { "name": "@iexec/dataprotector-environments" }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@adraffy/ens-normalize": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" }, "node_modules/@aduh95/viz.js": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@aduh95/viz.js/-/viz.js-3.7.0.tgz", "integrity": "sha512-20Pk2Z98fbPLkECcrZSJszKos/OgtvJJR3NcbVfgCJ6EQjDNzW2P1BKqImOz3tJ952dvO2DWEhcLhQ1Wz1e9ng==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/@aws-crypto/sha256-js": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz", - "integrity": "sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==", + "node_modules/@aws-crypto/crc32": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", + "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", + "license": "Apache-2.0", "dependencies": { - "@aws-crypto/util": "^1.2.2", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@aws-crypto/util": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.2.tgz", - "integrity": "sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==", + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" } }, - "node_modules/@aws-sdk/types": { - "version": "3.535.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.535.0.tgz", - "integrity": "sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==", + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^2.12.0", "tslib": "^2.6.2" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@aws-sdk/types/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.259.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", - "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-utf8-browser/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@chainsafe/is-ip": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.2.tgz", - "integrity": "sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==" + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } }, - "node_modules/@chainsafe/netmask": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", - "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", "dependencies": { - "@chainsafe/is-ip": "^2.0.1" + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "optional": true, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">=0.1.90" + "node": ">=14.0.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "peer": true, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12" + "node": ">=14.0.0" } }, - "node_modules/@ensdomains/buffer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.1.1.tgz", - "integrity": "sha512-92SfSiNS8XorgU7OUBHo/i1ZU7JV7iz/6bKuLPNVsMxV79/eI7fJR6jfJJc40zAHjs3ha+Xo965Idomlq3rqnw==" - }, - "node_modules/@ensdomains/ens-contracts": { - "version": "0.0.22", - "resolved": "https://registry.npmjs.org/@ensdomains/ens-contracts/-/ens-contracts-0.0.22.tgz", - "integrity": "sha512-kNu7pp68/5KfJ5wkswnUS4NfI9Ek4zGi0nnNSmGf1WXs6BHU9NYRVR6NnoVzb1B+cZ658e1v2srTtvmBYYIYzg==", + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", "dependencies": { - "@ensdomains/buffer": "^0.1.1", - "@ensdomains/solsha1": "0.0.3", - "@openzeppelin/contracts": "^4.1.0", - "dns-packet": "^5.3.0" + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@ensdomains/ens-contracts/node_modules/@openzeppelin/contracts": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz", - "integrity": "sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==" - }, - "node_modules/@ensdomains/solsha1": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@ensdomains/solsha1/-/solsha1-0.0.3.tgz", - "integrity": "sha512-uhuG5LzRt/UJC0Ux83cE2rCKwSleRePoYdQVcqPN1wyf3/ekMzT/KZUF9+v7/AG5w9jlMLCQkUM50vfjr0Yu9Q==", + "node_modules/@aws-sdk/client-lambda": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-lambda/-/client-lambda-3.787.0.tgz", + "integrity": "sha512-aPSg7YL7IpEaijsunAYtws/3dZl+VjyQ1wbv6RxdIfzww/35x31GSc6vD6paq8KC6lcns8wlli/0qCOl8Z9wZg==", + "license": "Apache-2.0", "dependencies": { - "hash-test-vectors": "^1.3.2" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.775.0", + "@aws-sdk/credential-provider-node": "3.787.0", + "@aws-sdk/middleware-host-header": "3.775.0", + "@aws-sdk/middleware-logger": "3.775.0", + "@aws-sdk/middleware-recursion-detection": "3.775.0", + "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/region-config-resolver": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@aws-sdk/util-endpoints": "3.787.0", + "@aws-sdk/util-user-agent-browser": "3.775.0", + "@aws-sdk/util-user-agent-node": "3.787.0", + "@smithy/config-resolver": "^4.1.0", + "@smithy/core": "^3.2.0", + "@smithy/eventstream-serde-browser": "^4.0.2", + "@smithy/eventstream-serde-config-resolver": "^4.1.0", + "@smithy/eventstream-serde-node": "^4.0.2", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/hash-node": "^4.0.2", + "@smithy/invalid-dependency": "^4.0.2", + "@smithy/middleware-content-length": "^4.0.2", + "@smithy/middleware-endpoint": "^4.1.0", + "@smithy/middleware-retry": "^4.1.0", + "@smithy/middleware-serde": "^4.0.3", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.8", + "@smithy/util-defaults-mode-node": "^4.0.8", + "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.2", + "@smithy/util-stream": "^4.2.0", + "@smithy/util-utf8": "^4.0.0", + "@smithy/util-waiter": "^4.0.3", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, + "node_modules/@aws-sdk/client-sso": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.787.0.tgz", + "integrity": "sha512-L8R+Mh258G0DC73ktpSVrG4TT9i2vmDLecARTDR/4q5sRivdDQSL5bUp3LKcK80Bx+FRw3UETIlX6mYMLL9PJQ==", + "license": "Apache-2.0", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.775.0", + "@aws-sdk/middleware-host-header": "3.775.0", + "@aws-sdk/middleware-logger": "3.775.0", + "@aws-sdk/middleware-recursion-detection": "3.775.0", + "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/region-config-resolver": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@aws-sdk/util-endpoints": "3.787.0", + "@aws-sdk/util-user-agent-browser": "3.775.0", + "@aws-sdk/util-user-agent-node": "3.787.0", + "@smithy/config-resolver": "^4.1.0", + "@smithy/core": "^3.2.0", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/hash-node": "^4.0.2", + "@smithy/invalid-dependency": "^4.0.2", + "@smithy/middleware-content-length": "^4.0.2", + "@smithy/middleware-endpoint": "^4.1.0", + "@smithy/middleware-retry": "^4.1.0", + "@smithy/middleware-serde": "^4.0.3", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.8", + "@smithy/util-defaults-mode-node": "^4.0.8", + "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.2", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=18.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, + "node_modules/@aws-sdk/core": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.775.0.tgz", + "integrity": "sha512-8vpW4WihVfz0DX+7WnnLGm3GuQER++b0IwQG35JlQMlgqnc44M//KbJPsIHA0aJUJVwJAEShgfr5dUbY8WUzaA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.775.0", + "@smithy/core": "^3.2.0", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/property-provider": "^4.0.2", + "@smithy/protocol-http": "^5.1.0", + "@smithy/signature-v4": "^5.0.2", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "@smithy/util-middleware": "^4.0.2", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.775.0.tgz", + "integrity": "sha512-6ESVxwCbGm7WZ17kY1fjmxQud43vzJFoLd4bmlR+idQSWdqlzGDYdcfzpjDKTcivdtNrVYmFvcH1JBUwCRAZhw==", + "license": "Apache-2.0", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@aws-sdk/core": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@smithy/property-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.775.0.tgz", + "integrity": "sha512-PjDQeDH/J1S0yWV32wCj2k5liRo0ssXMseCBEkCsD3SqsU8o5cU82b0hMX4sAib/RkglCSZqGO0xMiN0/7ndww==", + "license": "Apache-2.0", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@aws-sdk/core": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/property-provider": "^4.0.2", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "@smithy/util-stream": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.787.0.tgz", + "integrity": "sha512-hc2taRoDlXn2uuNuHWDJljVWYrp3r9JF1a/8XmOAZhVUNY+ImeeStylHXhXXKEA4JOjW+5PdJj0f1UDkVCHJiQ==", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@aws-sdk/core": "3.775.0", + "@aws-sdk/credential-provider-env": "3.775.0", + "@aws-sdk/credential-provider-http": "3.775.0", + "@aws-sdk/credential-provider-process": "3.775.0", + "@aws-sdk/credential-provider-sso": "3.787.0", + "@aws-sdk/credential-provider-web-identity": "3.787.0", + "@aws-sdk/nested-clients": "3.787.0", + "@aws-sdk/types": "3.775.0", + "@smithy/credential-provider-imds": "^4.0.2", + "@smithy/property-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": "*" + "node": ">=18.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.787.0.tgz", + "integrity": "sha512-JioVi44B1vDMaK2CdzqimwvJD3uzvzbQhaEWXsGMBcMcNHajXAXf08EF50JG3ZhLrhhUsT1ObXpbTaPINOhh+g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.775.0", + "@aws-sdk/credential-provider-http": "3.775.0", + "@aws-sdk/credential-provider-ini": "3.787.0", + "@aws-sdk/credential-provider-process": "3.775.0", + "@aws-sdk/credential-provider-sso": "3.787.0", + "@aws-sdk/credential-provider-web-identity": "3.787.0", + "@aws-sdk/types": "3.775.0", + "@smithy/credential-provider-imds": "^4.0.2", + "@smithy/property-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", - "dev": true, - "peer": true, - "bin": { - "rlp": "bin/rlp" + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.775.0.tgz", + "integrity": "sha512-A6k68H9rQp+2+7P7SGO90Csw6nrUEm0Qfjpn9Etc4EboZhhCLs9b66umUsTsSBHus4FDIe5JQxfCUyt1wgNogg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@smithy/property-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=14" + "node": ">=18.0.0" } }, - "node_modules/@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", - "dev": true, - "peer": true, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.787.0.tgz", + "integrity": "sha512-fHc08bsvwm4+dEMEQKnQ7c1irEQmmxbgS+Fq41y09pPvPh31nAhoMcjBSTWAaPHvvsRbTYvmP4Mf12ZGr8/nfg==", + "license": "Apache-2.0", "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" + "@aws-sdk/client-sso": "3.787.0", + "@aws-sdk/core": "3.775.0", + "@aws-sdk/token-providers": "3.787.0", + "@aws-sdk/types": "3.775.0", + "@smithy/property-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=14" + "node": ">=18.0.0" } }, - "node_modules/@ethereumjs/util/node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "dev": true, - "peer": true, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.787.0.tgz", + "integrity": "sha512-SobmCwNbk6TfEsF283mZPQEI5vV2j6eY5tOCj8Er4Lzraxu9fBPADV+Bib2A8F6jlB1lMPJzOuDCbEasSt/RIw==", + "license": "Apache-2.0", "dependencies": { - "@noble/hashes": "1.3.3" + "@aws-sdk/core": "3.775.0", + "@aws-sdk/nested-clients": "3.787.0", + "@aws-sdk/types": "3.775.0", + "@smithy/property-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "dev": true, - "peer": true, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.775.0.tgz", + "integrity": "sha512-tkSegM0Z6WMXpLB8oPys/d+umYIocvO298mGvcMCncpRl77L9XkvSLJIFzaHes+o7djAgIduYw8wKIMStFss2w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.775.0", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 16" + "node": ">=18.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.775.0.tgz", + "integrity": "sha512-FaxO1xom4MAoUJsldmR92nT1G6uZxTdNYOFYtdHfd6N2wcNaTuxgjIvqzg5y7QIH9kn58XX/dzf1iTjgqUStZw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.775.0", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", - "dev": true, - "peer": true, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.775.0.tgz", + "integrity": "sha512-GLCzC8D0A0YDG5u3F5U03Vb9j5tcOEFhr8oc6PDk0k0vm5VwtZOE6LvK7hcCSoAB4HXyOUM0sQuXrbaAh9OwXA==", + "license": "Apache-2.0", "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" + "@aws-sdk/types": "3.775.0", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.787.0.tgz", + "integrity": "sha512-Lnfj8SmPLYtrDFthNIaNj66zZsBCam+E4XiUDr55DIHTGstH6qZ/q6vg0GfbukxwSmUcGMwSR4Qbn8rb8yd77g==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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" + "@aws-sdk/core": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@aws-sdk/util-endpoints": "3.787.0", + "@smithy/core": "^3.2.0", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/nested-clients": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.787.0.tgz", + "integrity": "sha512-xk03q1xpKNHgbuo+trEf1dFrI239kuMmjKKsqLEsHlAZbuFq4yRGMlHBrVMnKYOPBhVFDS/VineM991XI52fKg==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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" + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.775.0", + "@aws-sdk/middleware-host-header": "3.775.0", + "@aws-sdk/middleware-logger": "3.775.0", + "@aws-sdk/middleware-recursion-detection": "3.775.0", + "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/region-config-resolver": "3.775.0", + "@aws-sdk/types": "3.775.0", + "@aws-sdk/util-endpoints": "3.787.0", + "@aws-sdk/util-user-agent-browser": "3.775.0", + "@aws-sdk/util-user-agent-node": "3.787.0", + "@smithy/config-resolver": "^4.1.0", + "@smithy/core": "^3.2.0", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/hash-node": "^4.0.2", + "@smithy/invalid-dependency": "^4.0.2", + "@smithy/middleware-content-length": "^4.0.2", + "@smithy/middleware-endpoint": "^4.1.0", + "@smithy/middleware-retry": "^4.1.0", + "@smithy/middleware-serde": "^4.0.3", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.8", + "@smithy/util-defaults-mode-node": "^4.0.8", + "@smithy/util-endpoints": "^3.0.2", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.2", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.775.0.tgz", + "integrity": "sha512-40iH3LJjrQS3LKUJAl7Wj0bln7RFPEvUYKFxtP8a+oKFDO0F65F52xZxIJbPn6sHkxWDAnZlGgdjZXM3p2g5wQ==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@aws-sdk/types": "3.775.0", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/token-providers": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.787.0.tgz", + "integrity": "sha512-d7/NIqxq308Zg0RPMNrmn0QvzniL4Hx8Qdwzr6YZWLYAbUSvZYS2ppLR3BFWSkV6SsTJUx8BuDaj3P8vttkrog==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "@aws-sdk/nested-clients": "3.787.0", + "@aws-sdk/types": "3.775.0", + "@smithy/property-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/types": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.775.0.tgz", + "integrity": "sha512-ZoGKwa4C9fC9Av6bdfqcW6Ix5ot05F/S4VxWR2nHuMv7hzfmAjTOcUiWT7UR4hM/U0whf84VhDtXN/DWAk52KA==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.787.0.tgz", + "integrity": "sha512-fd3zkiOkwnbdbN0Xp9TsP5SWrmv0SpT70YEdbb8wAj2DWQwiCmFszaSs+YCvhoCdmlR3Wl9Spu0pGpSAGKeYvQ==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@aws-sdk/types": "3.775.0", + "@smithy/types": "^4.2.0", + "@smithy/util-endpoints": "^3.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.723.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.723.0.tgz", + "integrity": "sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.775.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.775.0.tgz", + "integrity": "sha512-txw2wkiJmZKVdDbscK7VBK+u+TJnRtlUjRTLei+elZg2ADhpQxfVAQl436FUeIv6AhB/oRHW6/K/EAGXUSWi0A==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@aws-sdk/types": "3.775.0", + "@smithy/types": "^4.2.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" } }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.787.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.787.0.tgz", + "integrity": "sha512-mG7Lz8ydfG4SF9e8WSXiPQ/Lsn3n8A5B5jtPROidafi06I3ckV2WxyMLdwG14m919NoS6IOfWHyRGSqWIwbVKA==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/bignumber": "^5.7.0" + "@aws-sdk/middleware-user-agent": "3.787.0", + "@aws-sdk/types": "3.775.0", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "license": "Apache-2.0", "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" + "tslib": "^2.3.1" } }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", "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.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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" + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@bytecodealliance/preview2-shim": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@bytecodealliance/preview2-shim/-/preview2-shim-0.17.0.tgz", + "integrity": "sha512-JorcEwe4ud0x5BS/Ar2aQWOQoFzjq/7jcnxYXCvSMh0oRm0dQXzOA+hqLDBnOMks1LLBA7dmiLLsEBl09Yd6iQ==", + "license": "(Apache-2.0 WITH LLVM-exception)" + }, + "node_modules/@chainsafe/is-ip": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.1.0.tgz", + "integrity": "sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w==", + "license": "MIT" + }, + "node_modules/@chainsafe/netmask": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", + "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", + "license": "MIT", "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.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" + "@chainsafe/is-ip": "^2.0.1" } }, - "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] + "node_modules/@ensdomains/buffer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.1.1.tgz", + "integrity": "sha512-92SfSiNS8XorgU7OUBHo/i1ZU7JV7iz/6bKuLPNVsMxV79/eI7fJR6jfJJc40zAHjs3ha+Xo965Idomlq3rqnw==", + "license": "BSD-2-Clause" }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "node_modules/@ensdomains/ens-contracts": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@ensdomains/ens-contracts/-/ens-contracts-1.4.0.tgz", + "integrity": "sha512-h10r9igVCycW8vvkEcNageOtXLJss5k3cb5jQUeLFSppp4VE3aXhwI+UapsqxKwDxSit2XxzAD9Zbwbhj2q4Fw==", + "license": "MIT", + "dependencies": { + "@ensdomains/buffer": "^0.1.1", + "@ensdomains/solsha1": "0.0.3", + "@openzeppelin/contracts": "^4.1.0", + "dns-packet": "^5.3.0" + } + }, + "node_modules/@ensdomains/ens-contracts/node_modules/@openzeppelin/contracts": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz", + "integrity": "sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==", + "license": "MIT" + }, + "node_modules/@ensdomains/solsha1": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@ensdomains/solsha1/-/solsha1-0.0.3.tgz", + "integrity": "sha512-uhuG5LzRt/UJC0Ux83cE2rCKwSleRePoYdQVcqPN1wyf3/ekMzT/KZUF9+v7/AG5w9jlMLCQkUM50vfjr0Yu9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "hash-test-vectors": "^1.3.2" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", + "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", + "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", + "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", + "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", "funding": [ { "type": "individual", @@ -706,14 +1048,23 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@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" } }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "node_modules/@ethersproject/abstract-provider": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", + "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", "funding": [ { "type": "individual", @@ -724,15 +1075,21 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" + "@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" } }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "node_modules/@ethersproject/abstract-signer": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", + "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", "funding": [ { "type": "individual", @@ -743,14 +1100,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@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" } }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "node_modules/@ethersproject/address": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", + "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", "funding": [ { "type": "individual", @@ -761,53 +1123,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@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/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" - } - }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "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 - } + "@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" } }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "node_modules/@ethersproject/base64": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", + "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", "funding": [ { "type": "individual", @@ -818,15 +1146,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0" } }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "node_modules/@ethersproject/basex": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz", + "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", + "dev": true, "funding": [ { "type": "individual", @@ -837,15 +1166,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/properties": "^5.8.0" } }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "node_modules/@ethersproject/bignumber": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", + "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", "funding": [ { "type": "individual", @@ -856,16 +1186,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "bn.js": "^5.2.1" } }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "node_modules/@ethersproject/bytes": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", + "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", "funding": [ { "type": "individual", @@ -876,19 +1207,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "node_modules/@ethersproject/constants": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", + "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", "funding": [ { "type": "individual", @@ -899,19 +1226,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@ethersproject/bignumber": "^5.8.0" } }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "node_modules/@ethersproject/contracts": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz", + "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", + "dev": true, "funding": [ { "type": "individual", @@ -922,16 +1246,24 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@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" } }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "node_modules/@ethersproject/hash": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", + "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", "funding": [ { "type": "individual", @@ -942,22 +1274,24 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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/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" } }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "node_modules/@ethersproject/hdnode": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz", + "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", + "dev": true, "funding": [ { "type": "individual", @@ -968,16 +1302,27 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "license": "MIT", + "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" } }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "node_modules/@ethersproject/json-wallets": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz", + "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", + "dev": true, "funding": [ { "type": "individual", @@ -988,1569 +1333,2675 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^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/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" + "license": "MIT", + "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" + } + }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", + "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", + "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT" + }, + "node_modules/@ethersproject/networks": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", + "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz", + "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/sha2": "^5.8.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", + "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz", + "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "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 + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz", + "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", + "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz", + "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", + "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "bn.js": "^5.2.1", + "elliptic": "6.6.1", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz", + "integrity": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", + "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", + "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz", + "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", + "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", + "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz", + "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", + "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" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@iexec/dataprotector-environments": { + "resolved": "../../environments", + "link": true + }, + "node_modules/@iexec/interface": { + "version": "3.0.35-8", + "resolved": "https://registry.npmjs.org/@iexec/interface/-/interface-3.0.35-8.tgz", + "integrity": "sha512-JkO9bpfpTBCOtJz/TEPzFTLlgamv7fll8RUpwC+8P6UWlGGwCe/IvgAeUZzIJ/syXaAhC0KZ7/03BEiee3f8fg==", + "license": "ISC" + }, + "node_modules/@iexec/poco": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@iexec/poco/-/poco-5.5.0.tgz", + "integrity": "sha512-F2Jlhhc4CuTM2nghFQVjK+HGkasvX0OApyPGCB5VDm8XizfHPliw4rL9ABnrVcSl4XXc2FQaoWQfo9T6KpRNLQ==", + "license": "Apache-2.0", + "dependencies": { + "@iexec/interface": "3.0.35-8", + "@iexec/solidity": "^0.1.1", + "@openzeppelin/contracts": "3.3.0", + "@openzeppelin/contracts-v5": "npm:@openzeppelin/contracts@^5.0.2", + "@uniswap/v2-periphery": "1.1.0-beta.0", + "rlc-faucet-contract": "1.0.10" + } + }, + "node_modules/@iexec/poco/node_modules/@openzeppelin/contracts": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.3.0.tgz", + "integrity": "sha512-AemZEsQYtUp1WRkcmZm1div5ORfTpLquLaziCIrSagjxyKdmObxuaY1yjQ5SHFMctR8rLwp706NXTbiIRJg7pw==", + "license": "MIT" + }, + "node_modules/@iexec/solidity": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@iexec/solidity/-/solidity-0.1.1.tgz", + "integrity": "sha512-XLCihhVxsA77Ug9tVnz0uiUAzVdpZGlkSzfoUTLUfYDxUr+iwXJ6zvsBKomnAvvLsRJ0lb4qiBmSMpGtZ9am4w==", + "license": "Apache-2.0", + "dependencies": { + "@openzeppelin/contracts": "3.2.0", + "solstruct": "0.1.0" + } + }, + "node_modules/@iexec/solidity/node_modules/@openzeppelin/contracts": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.2.0.tgz", + "integrity": "sha512-bUOmkSoPkjnUyMiKo6RYnb0VHBk5D9KKDAgNLzF41aqAM3TeE0yGdFF5dVRcV60pZdJLlyFT/jjXIZCWyyEzAQ==", + "license": "MIT" + }, + "node_modules/@iexec/voucher-contracts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@iexec/voucher-contracts/-/voucher-contracts-1.0.1.tgz", + "integrity": "sha512-nHku8/Rv8uxZYLdpe9hbk0zIr0tJRgEXjFMemb9CFXZ9ej8tXIff8NtmhkaXfxMnvfX4p/hygytd31ITelXHvA==", + "license": "Apache-2.0", + "dependencies": { + "@iexec/poco": "^5.5.0", + "@openzeppelin/contracts-upgradeable": "^5.0.2" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.5.tgz", + "integrity": "sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.9.tgz", + "integrity": "sha512-NgQCnHqFTjF7Ys2fsqK2WtnA8X1kHyInyG+nMIuHowVTIgIuS10T4AznI/PvbqSpJqjCUqNBlKGh1v3bwLFL4w==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.10.tgz", + "integrity": "sha512-roDaKeY1PYY0aCqhRmXihrHjoSW2A00pV3Ke5fTpMCkzcGF64R8e0lw3dK+eLEHwS4vB5RnW1wuQmvzoRul8Mw==", + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.10.tgz", + "integrity": "sha512-5GVWJ+qeI6BzR6TIInLP9SXhWCEcvgFQYmcRG6d6RIlhFjM5TyG18paTGBgRYyEouvCmzeco47x9zX9tQEofkw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.12.tgz", + "integrity": "sha512-jV8QoZE1fC0vPe6TnsOfig+qwu7Iza1pkXoUJ3SroRagrt2hxiL+RbM432YAihNR7m7XnU0HWl/WQ35RIGmXHw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz", + "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.9.tgz", + "integrity": "sha512-mshNG24Ij5KqsQtOZMgj5TwEjIf+F2HOESk6bjMwGWgcH5UBe8UoljwzNFHqdMbGYbgAf6v2wU/X9CAdKJzgOA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.12.tgz", + "integrity": "sha512-7HRFHxbPCA4e4jMxTQglHJwP+v/kpFsCf2szzfBHy98Wlc3L08HL76UDiA87TOdX5fwj2HMOLWqRWv9Pnn+Z5Q==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.12.tgz", + "integrity": "sha512-FlOB0zvuELPEbnBYiPaOdJIaDzb2PmJ7ghi/SVwIHDDSQ2K4opGBkF+5kXOg6ucrtSUQdLhVVY5tycH0j0l+0g==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.4.1.tgz", + "integrity": "sha512-UlmM5FVOZF0gpoe1PT/jN4vk8JmpIWBlMvTL8M+hlvPmzN89K6z03+IFmyeu/oFCenwdwHDr2gky7nIGSEVvlA==", + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.1.5", + "@inquirer/confirm": "^5.1.9", + "@inquirer/editor": "^4.2.10", + "@inquirer/expand": "^4.0.12", + "@inquirer/input": "^4.1.9", + "@inquirer/number": "^3.0.12", + "@inquirer/password": "^4.0.12", + "@inquirer/rawlist": "^4.0.12", + "@inquirer/search": "^3.0.12", + "@inquirer/select": "^4.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.12.tgz", + "integrity": "sha512-wNPJZy8Oc7RyGISPxp9/MpTOqX8lr0r+lCCWm7hQra+MDtYRgINv1hxw7R+vKP71Bu/3LszabxOodfV/uTfsaA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.12.tgz", + "integrity": "sha512-H/kDJA3kNlnNIjB8YsaXoQI0Qccgf0Na14K1h8ExWhNmUg2E941dyFPrZeugihEa9AZNW5NdsD/NcvUME83OPQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.1.1.tgz", + "integrity": "sha512-IUXzzTKVdiVNMA+2yUvPxWsSgOG4kfX93jOM4Zb5FgujeInotv5SPIJVeXQ+fO4xu7tW8VowFhdG5JRmmCyQ1Q==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz", + "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "devOptional": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "devOptional": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@multiformats/dns": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.6.tgz", + "integrity": "sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@types/dns-packet": "^5.6.5", + "buffer": "^6.0.3", + "dns-packet": "^5.6.1", + "hashlru": "^2.3.0", + "p-queue": "^8.0.1", + "progress-events": "^1.0.0", + "uint8arrays": "^5.0.2" } }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "node_modules/@multiformats/dns/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@multiformats/multiaddr": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.4.0.tgz", + "integrity": "sha512-FL7yBTLijJ5JkO044BGb2msf+uJLrwpD6jD6TkXlbjA9N12+18HT40jvd4o5vL4LOJMc86dPX6tGtk/uI9kYKg==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@multiformats/dns": "^1.0.3", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=10.10.0" + "node": ">= 8" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 8" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": "*" + "node": ">= 8" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" + "node_modules/@nomicfoundation/edr": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.10.0.tgz", + "integrity": "sha512-ed9qHSNssgh+0hYUx4ilDoMxxgf/sNT8SjnzgmA5A/LSXHaq2ax68bkdQ8otLYTlxHCO9BS5Nhb8bfajV4FZeA==", + "license": "MIT", + "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" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "engines": { + "node": ">= 18" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "node_modules/@iexec/dataprotector-environments": { - "resolved": "../../environments", - "link": true + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.10.0.tgz", + "integrity": "sha512-n0N+CVM4LKN9QeGZ5irr94Q4vwSs4u7W6jfuhNLmx1cpUxwE9RpeW+ym93JXDv62iVsbekeI5VsUEBHy0hymtA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } }, - "node_modules/@iexec/erlc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@iexec/erlc/-/erlc-1.0.0.tgz", - "integrity": "sha512-DkgdBbTnHuqryWNX+Epi3xcTOwQOuX+gMwVEiLZqHc0rgjIxtzvvmYJ9U8PXaJJNjIr07MHt7BMclEz9qQTIXg==", - "dependencies": { - "@openzeppelin/contracts": "^3.3.0" + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.10.0.tgz", + "integrity": "sha512-nmImWM/3qWopYzOmicMzK/MF3rFKpm2Biuc8GpQYTLjdXhmItpP9JwEPyjbAWv/1HI09C2pRzgNzKfTxoIgJ6w==", + "license": "MIT", + "engines": { + "node": ">= 18" } }, - "node_modules/@iexec/erlc/node_modules/@openzeppelin/contracts": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz", - "integrity": "sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA==" + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.10.0.tgz", + "integrity": "sha512-B/N1IyrCU7J6H4QckkQ1cSWAq1jSrJcXpO8GzRaQD1bgOOvg8wrUOrCD+Mfw7MLa6+X9vdZoXtPZOaaOQ9LmhA==", + "license": "MIT", + "engines": { + "node": ">= 18" + } }, - "node_modules/@iexec/interface": { - "version": "3.0.35-8", - "resolved": "https://registry.npmjs.org/@iexec/interface/-/interface-3.0.35-8.tgz", - "integrity": "sha512-JkO9bpfpTBCOtJz/TEPzFTLlgamv7fll8RUpwC+8P6UWlGGwCe/IvgAeUZzIJ/syXaAhC0KZ7/03BEiee3f8fg==" + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.10.0.tgz", + "integrity": "sha512-NA9DFLB0LzcKy9mTCUzgnRDbmmSfW0CdO22ySwOy+MKt4Cr9eJi+XR5ZH933Rxpi6BWNkSPeS2ECETE25sJT3w==", + "license": "MIT", + "engines": { + "node": ">= 18" + } }, - "node_modules/@iexec/poco": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@iexec/poco/-/poco-5.3.0.tgz", - "integrity": "sha512-CO2b6Gv0w9dSgUeIHMzkViCG6UYn8MclZzdNI3hiOqgWFvr+YTTwLW/JSPEWu6Xr1wHUTXG9wFcmNgh2oO2sMA==", - "dependencies": { - "@iexec/erlc": "1.0.0", - "@iexec/interface": "3.0.35-8", - "@iexec/solidity": "0.1.0-legacy", - "@openzeppelin/contracts": "3.3.0", - "@uniswap/v2-periphery": "1.1.0-beta.0", - "rlc-faucet-contract": "1.0.9" + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.10.0.tgz", + "integrity": "sha512-bDrbRTA9qZ9wSw5mqa8VpLFbf6ue2Z4qmRd08404eKm8RyBEFxjdHflFzCx46gz/Td0e+GLXy6KTVDj5D29r8w==", + "license": "MIT", + "engines": { + "node": ">= 18" } }, - "node_modules/@iexec/poco/node_modules/@openzeppelin/contracts": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.3.0.tgz", - "integrity": "sha512-AemZEsQYtUp1WRkcmZm1div5ORfTpLquLaziCIrSagjxyKdmObxuaY1yjQ5SHFMctR8rLwp706NXTbiIRJg7pw==" + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.10.0.tgz", + "integrity": "sha512-wx7yOlC/hx4N1xuIeh5cAebpzCTx8ZH8/z0IyYMf2t4v52KHERz4IyzBz5OLfd+0IqTRg8ZU5EnFBacIoPeP/g==", + "license": "MIT", + "engines": { + "node": ">= 18" + } }, - "node_modules/@iexec/poco/node_modules/rlc-faucet-contract": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/rlc-faucet-contract/-/rlc-faucet-contract-1.0.9.tgz", - "integrity": "sha512-eLsDeiXLCqHqYSaIqSJzHxsRjh0qZt7QxG4/n7VGqReQJr+v7ycC3omAmjnwgtSTQvCcRdY03pWmjb0co3Qtgg==" + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.10.0.tgz", + "integrity": "sha512-DpBdVMimb+BUEs0E+nLGQ5JFHdGHyxQQNA+nh9V1eKtgarsV21S6br/d1vlQBMLQqkIzwmc6n+/O9Zjk2KfB3g==", + "license": "MIT", + "engines": { + "node": ">= 18" + } }, - "node_modules/@iexec/solidity": { - "version": "0.1.0-legacy", - "resolved": "https://registry.npmjs.org/@iexec/solidity/-/solidity-0.1.0-legacy.tgz", - "integrity": "sha512-q5jsNoyouZ1hFWRFQIfDexDPdcf5fH4Hbfb83aKWYb/WNisyFWZJF1F6gDMLVCXFbzjZRkHhPf2Wkzomwjc6Sw==", + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.8.tgz", + "integrity": "sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@openzeppelin/contracts": "3.0.0-rc.0", - "solstruct": "0.0.13" + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" } }, - "node_modules/@iexec/solidity/node_modules/@openzeppelin/contracts": { - "version": "3.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.0.0-rc.0.tgz", - "integrity": "sha512-Ts7h4/5tNiRN2iiH10Mp+6CgmK/PETDHYIJ/tpUrXgGjWR51T/Dr8kxa41GeHHhmAsuo+CkcuG9L4di6qth/Mw==" - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "devOptional": true, + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.8.tgz", + "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==", + "license": "MIT", "peer": true, - "engines": { - "node": ">=6.0.0" + "dependencies": { + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" + }, + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "devOptional": true, - "peer": true + "node_modules/@nomicfoundation/hardhat-foundry": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-foundry/-/hardhat-foundry-1.1.3.tgz", + "integrity": "sha512-30Ezc3hlZ4pC5Z/9W9euW5uoPKKQQKaecLETHJH8BPpd30zYOooy6HfjmcTY1/taOQjlwirOdNO7tHlje8Qcgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.0" + }, + "peerDependencies": { + "hardhat": "^2.17.2" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.11.tgz", + "integrity": "sha512-OXebmK9FCMwwbb4mIeHBbVFFicAGgyGKJT2zrONrpixrROxrVs6KEi1gzsiN25qtQhCQePt8BTjjYrgy86Dfxg==", + "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@nomicfoundation/ignition-core": "^0.15.11", + "@nomicfoundation/ignition-ui": "^0.15.11", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "json5": "^2.2.3", + "prompts": "^2.4.2" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" - }, - "node_modules/@libp2p/interface": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.1.6.tgz", - "integrity": "sha512-CLz6TAZf+Mw1PCIU8pjMIct1uh3A1fIene2/t+E57Tw4uJLCBJE9CLed/Opxliy5RH0e32Aa6bi4QSXtkJTK7A==", - "dependencies": { - "@multiformats/multiaddr": "^12.2.1", - "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", - "uint8arraylist": "^2.4.8" + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.11.tgz", + "integrity": "sha512-srXzvf7qCDHLrnvQWtpVA9gWpcbp4BcnsOqJt6ISet9OlUnxk4GgRMbdFq4YpM48bHQTX397jS9yk1AtJCjt/g==", + "dev": true, + "license": "MIT", + "peer": true, + "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" } }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", + "node_modules/@nomicfoundation/hardhat-network-helpers": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.12.tgz", + "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.7" + "ethereumjs-util": "^7.1.4" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "hardhat": "^2.9.5" + } + }, + "node_modules/@nomicfoundation/hardhat-toolbox": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.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": ">=18.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" } }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.13.tgz", + "integrity": "sha512-i57GX1sC0kYGyRVnbQrjjyBTpWTKgrvKC+jH8CMKV6gHp959Upb8lKaZ58WRHIU0espkulTxLnacYeUDirwJ2g==", + "devOptional": true, + "license": "MIT", + "peer": true, "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" + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.1.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "peerDependencies": { + "hardhat": "^2.0.4" } }, - "node_modules/@multiformats/dns": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.6.tgz", - "integrity": "sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==", + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.11.tgz", + "integrity": "sha512-PeYKRlrQ0koT72yRnlyyG66cXMFiv5X/cIB8hBFPl3ekeg5tPXcHAgs/VZhOsgwEox4ejphTtItLESb1IDBw0w==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@types/dns-packet": "^5.6.5", - "buffer": "^6.0.3", - "dns-packet": "^5.6.1", - "hashlru": "^2.3.0", - "p-queue": "^8.0.1", - "progress-events": "^1.0.0", - "uint8arrays": "^5.0.2" + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" } }, - "node_modules/@multiformats/dns/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" } }, - "node_modules/@multiformats/multiaddr": { - "version": "12.2.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.2.1.tgz", - "integrity": "sha512-UwjoArBbv64FlaetV4DDwh+PUMfzXUBltxQwdh+uTYnGFzVa8ZfJsn1vt1RJlJ6+Xtrm3RMekF/B+K338i2L5Q==", + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@chainsafe/netmask": "^2.0.0", - "@libp2p/interface": "^1.0.0", - "@multiformats/dns": "^1.0.3", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" } }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.11.tgz", + "integrity": "sha512-VPOVl5xqCKhYCyPOQlposx+stjCwqXQ+BCs5lnw/f2YUfgII+G5Ye0JfHiJOfCJGmqyS03WertBslcj9zQg50A==", + "dev": true, + "peer": true + }, + "node_modules/@nomicfoundation/slang": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/slang/-/slang-0.18.3.tgz", + "integrity": "sha512-YqAWgckqbHM0/CZxi9Nlf4hjk9wUNLC9ngWCWBiqMxPIZmzsVKYuChdlrfeBPQyvQQBoOhbx+7C1005kLVQDZQ==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@bytecodealliance/preview2-shim": "0.17.0" } }, - "node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz", + "integrity": "sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==", + "license": "MIT", "engines": { - "node": ">= 16" + "node": ">= 12" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "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" } }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz", + "integrity": "sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 8" + "node": ">= 12" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz", + "integrity": "sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 8" + "node": ">= 12" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz", + "integrity": "sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==", + "license": "MIT", + "optional": true, "engines": { - "node": ">= 8" + "node": ">= 12" } }, - "node_modules/@nomicfoundation/ethereumjs-block": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.4.tgz", - "integrity": "sha512-AcyacJ9eX/uPEvqsPiB+WO1ymE+kyH48qGGiGV+YTojdtas8itUTW5dehDSOXEEItWGbbzEJ4PRqnQZlWaPvDw==", - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-trie": "6.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "ethereum-cryptography": "0.1.3" - }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz", + "integrity": "sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=18" + "node": ">= 12" } }, - "node_modules/@nomicfoundation/ethereumjs-blockchain": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.4.tgz", - "integrity": "sha512-jYsd/kwzbmpnxx86tXsYV8wZ5xGvFL+7/P0c6OlzpClHsbFzeF41KrYA9scON8Rg6bZu3ZTv6JOAgj3t7USUfg==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.4", - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-ethash": "3.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-trie": "6.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "lru-cache": "^10.0.0" - }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz", + "integrity": "sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=18" + "node": ">= 12" } }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz", - "integrity": "sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==", - "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.4" + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz", + "integrity": "sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 12" } }, - "node_modules/@nomicfoundation/ethereumjs-ethash": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.4.tgz", - "integrity": "sha512-xvIrwIMl9sSaiYKRem68+O7vYdj7Q2XWv5P7JXiIkn83918QzWHvqbswTRsH7+r6X1UEvdsURRnZbvZszEjAaQ==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "bigint-crypto-utils": "^3.2.2", - "ethereum-cryptography": "0.1.3" - }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz", + "integrity": "sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=18" + "node": ">= 12" } }, - "node_modules/@nomicfoundation/ethereumjs-evm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.4.tgz", - "integrity": "sha512-lTyZZi1KpeMHzaO6cSVisR2tjiTTedjo7PcmhI/+GNFo9BmyY6QYzGeSti0sFttmjbEMioHgXxl5yrLNRg6+1w==", + "node_modules/@nomiclabs/hardhat-solhint": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-solhint/-/hardhat-solhint-4.0.1.tgz", + "integrity": "sha512-ekfbbGfUwMZGr9aPAurPa7GVMX/6XqKemppVEez+mC36H7G5UyBsnrUKZMhMDVHG9S7+ke9sLuaibnWvpdSrQA==", + "dev": true, + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-statemanager": "2.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "@types/debug": "^4.1.9", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "rustbn-wasm": "^0.2.0" + "solhint": "^5.0.2" }, - "engines": { - "node": ">=18" + "peerDependencies": { + "hardhat": "^2.0.0" } }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz", - "integrity": "sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==", - "bin": { - "rlp": "bin/rlp.cjs" - }, - "engines": { - "node": ">=18" - } + "node_modules/@openzeppelin/contracts": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.3.0.tgz", + "integrity": "sha512-zj/KGoW7zxWUE8qOI++rUM18v+VeLTTzKs/DJFkSzHpQFPD/jKKF0TrMxBfGLl3kpdELCNccvB3zmofSzm4nlA==", + "license": "MIT", + "peer": true }, - "node_modules/@nomicfoundation/ethereumjs-statemanager": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.4.tgz", - "integrity": "sha512-HPDjeFrxw6llEi+BzqXkZ+KkvFnTOPczuHBtk21hRlDiuKuZz32dPzlhpRsDBGV1b5JTmRDUVqCS1lp3Gghw4Q==", - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-trie": "6.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "js-sdsl": "^4.1.4", - "lru-cache": "^10.0.0" - }, + "node_modules/@openzeppelin/contracts-upgradeable": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.3.0.tgz", + "integrity": "sha512-yVzSSyTMWO6rapGI5tuqkcLpcGGXA0UA1vScyV5EhE5yw8By3Ewex9rDUw8lfVw0iTkvR/egjfcW5vpk03lqZg==", + "license": "MIT", "peerDependencies": { - "@nomicfoundation/ethereumjs-verkle": "0.0.2" - }, - "peerDependenciesMeta": { - "@nomicfoundation/ethereumjs-verkle": { - "optional": true - } + "@openzeppelin/contracts": "5.3.0" } }, - "node_modules/@nomicfoundation/ethereumjs-trie": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.4.tgz", - "integrity": "sha512-3nSwQiFMvr2VFe/aZUyinuohYvtytUqZCUCvIWcPJ/BwJH6oQdZRB42aNFBJ/8nAh2s3OcroWpBLskzW01mFKA==", + "node_modules/@openzeppelin/contracts-v5": { + "name": "@openzeppelin/contracts", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.3.0.tgz", + "integrity": "sha512-zj/KGoW7zxWUE8qOI++rUM18v+VeLTTzKs/DJFkSzHpQFPD/jKKF0TrMxBfGLl3kpdELCNccvB3zmofSzm4nlA==", + "license": "MIT" + }, + "node_modules/@openzeppelin/defender-sdk-base-client": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-2.5.0.tgz", + "integrity": "sha512-fLVw/bwipbfLCsoi8qAWkcRO3IDm2Ccsaabm45rJsq2Qzdd6t+rK2CGAxJ/1jULjT5LlkquWaB0FbxeDYotQ+A==", + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "@types/readable-stream": "^2.3.13", - "ethereum-cryptography": "0.1.3", - "lru-cache": "^10.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=18" + "@aws-sdk/client-lambda": "^3.563.0", + "amazon-cognito-identity-js": "^6.3.6", + "async-retry": "^1.3.3" } }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz", - "integrity": "sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==", + "node_modules/@openzeppelin/defender-sdk-deploy-client": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-2.5.0.tgz", + "integrity": "sha512-Y0UDUQXJcY570EqsfPshH2a5FyUZfGHGed8890fMgI+a+CUEs2kgTpciXKRxcvYDY0mi4/Ku9pLzfgzJKIEGLA==", + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "ethereum-cryptography": "0.1.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "c-kzg": "^2.1.2" - }, - "peerDependenciesMeta": { - "c-kzg": { - "optional": true - } + "@openzeppelin/defender-sdk-base-client": "^2.5.0", + "axios": "^1.7.4", + "lodash": "^4.17.21" } }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz", - "integrity": "sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==", + "node_modules/@openzeppelin/defender-sdk-network-client": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-2.5.0.tgz", + "integrity": "sha512-XP4KLYKh4s6Oey9hE9D2CsAtUqNJHBg1o7v9L6IOxGPtasXtsJvCMGcE5dkAuxi4Z+XBQ5gW9S0LY6jvqV6y8w==", + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "ethereum-cryptography": "0.1.3" + "@openzeppelin/defender-sdk-base-client": "^2.5.0", + "axios": "^1.7.4", + "lodash": "^4.17.21" + } + }, + "node_modules/@openzeppelin/hardhat-upgrades": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.9.0.tgz", + "integrity": "sha512-7YYBSxRnO/X+tsQkVgtz3/YbwZuQPjbjQ3m0A/8+vgQzdPfulR93NaFKgZfMonnrriXb5O/ULjIDPI+8nuqtyQ==", + "license": "MIT", + "dependencies": { + "@openzeppelin/defender-sdk-base-client": "^2.1.0", + "@openzeppelin/defender-sdk-deploy-client": "^2.1.0", + "@openzeppelin/defender-sdk-network-client": "^2.1.0", + "@openzeppelin/upgrades-core": "^1.41.0", + "chalk": "^4.1.0", + "debug": "^4.1.1", + "ethereumjs-util": "^7.1.5", + "proper-lockfile": "^4.1.1", + "undici": "^6.11.1" }, - "engines": { - "node": ">=18" + "bin": { + "migrate-oz-cli-project": "dist/scripts/migrate-oz-cli-project.js" }, "peerDependencies": { - "c-kzg": "^2.1.2" + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "ethers": "^6.6.0", + "hardhat": "^2.0.2" }, "peerDependenciesMeta": { - "c-kzg": { + "@nomicfoundation/hardhat-verify": { "optional": true } } }, - "node_modules/@nomicfoundation/ethereumjs-verkle": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-verkle/-/ethereumjs-verkle-0.0.2.tgz", - "integrity": "sha512-bjnfZElpYGK/XuuVRmLS3yDvr+cDs85D9oonZ0YUa5A3lgFgokWMp76zXrxX2jVQ0BfHaw12y860n1+iOi6yFQ==", - "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "lru-cache": "^10.0.0", - "rust-verkle-wasm": "^0.0.1" - }, + "node_modules/@openzeppelin/hardhat-upgrades/node_modules/undici": { + "version": "6.21.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz", + "integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==", + "license": "MIT", "engines": { - "node": ">=18" + "node": ">=18.17" } }, - "node_modules/@nomicfoundation/ethereumjs-vm": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.4.tgz", - "integrity": "sha512-gsA4IhmtWHI4BofKy3kio9W+dqZQs5Ji5mLjLYxHCkat+JQBUt5szjRKra2F9nGDJ2XcI/wWb0YWUFNgln4zRQ==", - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.4", - "@nomicfoundation/ethereumjs-blockchain": "7.0.4", - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-evm": "2.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-statemanager": "2.0.4", - "@nomicfoundation/ethereumjs-trie": "6.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3" + "node_modules/@openzeppelin/upgrades-core": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.44.0.tgz", + "integrity": "sha512-AUnQW7cbh2ntFuQdHi5C0vKB+QfkTQtzXgCmzazXLJDX7slFTF676lw+x97ZKfzwQw5unO1+ALZMx+s+2yQUew==", + "license": "MIT", + "dependencies": { + "@nomicfoundation/slang": "^0.18.3", + "bignumber.js": "^9.1.2", + "cbor": "^10.0.0", + "chalk": "^4.1.0", + "compare-versions": "^6.0.0", + "debug": "^4.1.1", + "ethereumjs-util": "^7.0.3", + "minimatch": "^9.0.5", + "minimist": "^1.2.7", + "proper-lockfile": "^4.1.1", + "solidity-ast": "^0.4.60" }, - "engines": { - "node": ">=18" + "bin": { + "openzeppelin-upgrades-core": "dist/cli/cli.js" } }, - "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.6.tgz", - "integrity": "sha512-Te1Uyo9oJcTCF0Jy9dztaLpshmlpjLf2yPtWXlXuLjMt3RRSmJLm/+rKVTW6gfadAEs12U/it6D0ZRnnRGiICQ==", - "dev": true, - "peer": true, + "node_modules/@openzeppelin/upgrades-core/node_modules/cbor": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-10.0.3.tgz", + "integrity": "sha512-72Jnj81xMsqepqdcSdf2+fflz/UDsThOHy5hj2MW5F5xzHL8Oa0KQ6I6V9CwVUPxg5pf+W9xp6W2KilaRXWWtw==", + "license": "MIT", "dependencies": { - "@types/chai-as-promised": "^7.1.3", - "chai-as-promised": "^7.1.1", - "deep-eql": "^4.0.1", - "ordinal": "^1.0.3" + "nofilter": "^3.0.2" }, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "chai": "^4.2.0", - "ethers": "^6.1.0", - "hardhat": "^2.9.4" + "engines": { + "node": ">=18" } }, - "node_modules/@nomicfoundation/hardhat-ethers": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.5.tgz", - "integrity": "sha512-RNFe8OtbZK6Ila9kIlHp0+S80/0Bu/3p41HUpaRIoHLm6X3WekTd83vob3rE54Duufu1edCiBDxspBzi2rxHHw==", - "peer": true, - "dependencies": { - "debug": "^4.1.1", - "lodash.isequal": "^4.5.0" - }, - "peerDependencies": { - "ethers": "^6.1.0", - "hardhat": "^2.0.0" + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@nomicfoundation/hardhat-foundry": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-foundry/-/hardhat-foundry-1.1.2.tgz", - "integrity": "sha512-f5Vhj3m2qvKGpr6NAINYwNgILDsai8dVCsFb1rAVLkJxOmD2pAtfCmOH5SBVr9yUI5B1z9rbTwPBJVrqnb+PXQ==", + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^2.4.2" + "graceful-fs": "4.2.10" }, - "peerDependencies": { - "hardhat": "^2.17.2" + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@nomicfoundation/hardhat-ignition": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.0.tgz", - "integrity": "sha512-GbAe90O22uM67U/JnffXX+mBMn0HqCKSH+D98Tb5uWqR1N/M00cB3yY8OdqzVai7I6SuIKTc91mPdvtWt8R3MA==", + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true, - "peer": true, + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "dev": true, + "license": "MIT", "dependencies": { - "@nomicfoundation/ignition-core": "^0.15.0", - "@nomicfoundation/ignition-ui": "^0.15.0", - "chalk": "^4.0.0", - "debug": "^4.3.2", - "fs-extra": "^10.0.0", - "prompts": "^2.4.2" + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" }, - "peerDependencies": { - "@nomicfoundation/hardhat-verify": "^2.0.1", - "hardhat": "^2.18.0" + "engines": { + "node": ">=12" } }, - "node_modules/@nomicfoundation/hardhat-ignition-ethers": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.0.tgz", - "integrity": "sha512-KmMNUc/jptfwdPA9ukQf+Ajon+m2vLBjDL2ze7d/vQdrS+fDxmoVwmbbEk4GOjianZcwgQOWD9dEWaj04QiowA==", + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "dev": true, - "peer": true, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^3.0.4", - "@nomicfoundation/hardhat-ignition": "^0.15.0", - "@nomicfoundation/ignition-core": "^0.15.0", - "ethers": "^6.7.0", - "hardhat": "^2.18.0" + "license": "MIT" + }, + "node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@noble/hashes": "1.4.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 16" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, + "node_modules/@scure/bip32/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true + "node_modules/@scure/bip39/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@nomicfoundation/hardhat-ignition/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "license": "BSD-3-Clause", "dependencies": { - "has-flag": "^4.0.0" + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.10.tgz", - "integrity": "sha512-R35/BMBlx7tWN5V6d/8/19QCwEmIdbnA4ZrsuXgvs8i2qFx5i7h6mH5pBS4Pwi4WigLH+upl6faYusrNPuzMrQ==", - "dev": true, - "peer": true, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "license": "BSD-3-Clause", "dependencies": { - "ethereumjs-util": "^7.1.4" + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" }, - "peerDependencies": { - "hardhat": "^2.9.5" + "engines": { + "node": ">=6" } }, - "node_modules/@nomicfoundation/hardhat-toolbox": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", - "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", - "dev": true, - "peerDependencies": { - "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "@nomicfoundation/hardhat-ignition-ethers": "^0.15.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": ">=18.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" - } + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, - "node_modules/@nomicfoundation/hardhat-verify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.6.tgz", - "integrity": "sha512-oKUI5fl8QC8jysE2LUBHE6rObzEmccJcc4b43Ov7LFMlCBZJE27qoqGIsg/++wX7L8Jdga+bkejPxl8NvsecpQ==", - "devOptional": true, - "peer": true, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "license": "BSD-3-Clause", "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@ethersproject/address": "^5.0.2", - "cbor": "^8.1.0", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "lodash.clonedeep": "^4.5.0", - "semver": "^6.3.0", - "table": "^6.8.0", - "undici": "^5.14.0" + "@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.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" }, - "peerDependencies": { - "hardhat": "^2.0.4" + "engines": { + "node": ">=6" } }, - "node_modules/@nomicfoundation/ignition-core": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.0.tgz", - "integrity": "sha512-d/h8jgJHY4xIroHqdaGeTkTqjQeuzmU759AOn1Fg88cuxVhS7JM22ZI0bQWyLNSMsVstHBIo+lSMIsvm9jBF2w==", - "dev": true, - "peer": true, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "license": "MIT", "dependencies": { - "@ethersproject/address": "5.6.1", - "cbor": "^9.0.0", - "debug": "^4.3.2", - "ethers": "^6.7.0", - "fs-extra": "^10.0.0", - "immer": "10.0.2", - "lodash": "4.17.21", - "ndjson": "2.0.0" + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" } }, - "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "peer": true, - "dependencies": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" } }, - "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", - "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", - "dev": true, - "peer": true, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "license": "BSD-3-Clause", "dependencies": { - "nofilter": "^3.1.0" + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" }, "engines": { - "node": ">=16" + "node": ">=6" } }, - "node_modules/@nomicfoundation/ignition-ui": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.0.tgz", - "integrity": "sha512-RBvvQ0e8RcEc/LoSzNTPVKZZ5vEwlmxt7PXG278+6DqCrOqxqmh6W9PtK/4mwwvnTeBqds+8j81jDf6vJbOVBQ==", - "dev": true, - "peer": true + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, - "node_modules/@nomicfoundation/solidity-analyzer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", - "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 12" + "node": ">=14.16" }, - "optionalDependencies": { - "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", - "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", - "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", - "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@smithy/abort-controller": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.2.tgz", + "integrity": "sha512-Sl/78VDtgqKxN2+1qduaVE140XF+Xg+TafkncspwM4jFP/LHr76ZHmIY/y3V1M0mMLNk+Je6IGbzxy23RSToMw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", - "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@smithy/config-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.0.tgz", + "integrity": "sha512-8smPlwhga22pwl23fM5ew4T9vfLUCeFXlcqNOCD5M5h8VmNPNUE9j6bQSuRXpDSV11L/E/SwEBQuW8hr6+nS1A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/util-config-provider": "^4.0.0", + "@smithy/util-middleware": "^4.0.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", - "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@smithy/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.2.0.tgz", + "integrity": "sha512-k17bgQhVZ7YmUvA8at4af1TDpl0NDMBuBKJl8Yg0nrefwmValU+CnA5l/AriVdQNthU/33H3nK71HrLgqOPr1Q==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^4.0.3", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-stream": "^4.2.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", - "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/credential-provider-imds": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.2.tgz", + "integrity": "sha512-32lVig6jCaWBHnY+OEQ6e6Vnt5vDHaLiydGrwYMW9tPqO688hPGTYRamYJ1EptxEC2rAwJrHWmPoKRBl4iTa8w==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^4.0.2", + "@smithy/property-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", - "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/eventstream-codec": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.0.2.tgz", + "integrity": "sha512-p+f2kLSK7ZrXVfskU/f5dzksKTewZk8pJLPvER3aFHPt76C2MxD9vNatSfLzzQSQB4FNO96RK4PSXfhD1TTeMQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@smithy/types": "^4.2.0", + "@smithy/util-hex-encoding": "^4.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", - "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/eventstream-serde-browser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.2.tgz", + "integrity": "sha512-CepZCDs2xgVUtH7ZZ7oDdZFH8e6Y2zOv8iiX6RhndH69nlojCALSKK+OXwZUgOtUZEUaZ5e1hULVCHYbCn7pug==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", - "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.1.0.tgz", + "integrity": "sha512-1PI+WPZ5TWXrfj3CIoKyUycYynYJgZjuQo8U+sphneOtjsgrttYybdqESFReQrdWJ+LKt6NEdbYzmmfDBmjX2A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", - "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@smithy/eventstream-serde-node": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.2.tgz", + "integrity": "sha512-C5bJ/C6x9ENPMx2cFOirspnF9ZsBVnBMtP6BdPl/qYSuUawdGQ34Lq0dMcf42QTjUZgWGbUIZnz6+zLxJlb9aw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-serde-universal": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", - "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@smithy/eventstream-serde-universal": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.2.tgz", + "integrity": "sha512-St8h9JqzvnbB52FtckiHPN4U/cnXcarMniXRXTKn0r4b4XesZOGiAyUdj1aXbqqn1icSqBlzzUsCl6nPB018ng==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/eventstream-codec": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", - "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@smithy/fetch-http-handler": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.0.2.tgz", + "integrity": "sha512-+9Dz8sakS9pe7f2cBocpJXdeVjMopUDLgZs1yWeu7h++WqSbjUYv/JAJwKwXw1HV6gq1jyWjxuyn24E2GhoEcQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^5.1.0", + "@smithy/querystring-builder": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/util-base64": "^4.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">= 10" + "node": ">=18.0.0" } }, - "node_modules/@nomiclabs/hardhat-solhint": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-solhint/-/hardhat-solhint-3.0.1.tgz", - "integrity": "sha512-GqDoStxL1aA9hZul9HRdk+3eEZ/XLBwvIlz3/EJUusUsoadNYEnio9aYOsBeNeZWo+B/Fd3EgMXgbf9wWQLyRA==", - "dev": true, + "node_modules/@smithy/hash-node": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.2.tgz", + "integrity": "sha512-VnTpYPnRUE7yVhWozFdlxcYknv9UN7CeOqSrMH+V877v4oqtVYuoqhIhtSjmGPvYrYnAkaM61sLMKHvxL138yg==", + "license": "Apache-2.0", "dependencies": { - "solhint": "^3.4.0" + "@smithy/types": "^4.2.0", + "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "hardhat": "^2.0.0" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/contracts": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.0.2.tgz", - "integrity": "sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==", - "peer": true + "node_modules/@smithy/invalid-dependency": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.2.tgz", + "integrity": "sha512-GatB4+2DTpgWPday+mnUkoumP54u/MDM/5u44KF9hIu8jF0uafZtQLcdfIKkIcUNuF/fBojpLEHZS/56JqPeXQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } }, - "node_modules/@openzeppelin/contracts-upgradeable": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.0.2.tgz", - "integrity": "sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==", - "peerDependencies": { - "@openzeppelin/contracts": "5.0.2" + "node_modules/@smithy/is-array-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz", + "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/defender-admin-client": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/defender-admin-client/-/defender-admin-client-1.54.1.tgz", - "integrity": "sha512-kRpSUdTsnSqntp4FOXIm95t+6VKHc8CUY2Si71VDuxs0q7HSPZkdpRPSntcolwEzWy9L4a8NS/QMwDF5NJ4X1g==", + "node_modules/@smithy/middleware-content-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.2.tgz", + "integrity": "sha512-hAfEXm1zU+ELvucxqQ7I8SszwQ4znWMbNv6PLMndN83JJN41EPuS93AIyh2N+gJ6x8QFhzSO6b7q2e6oClDI8A==", + "license": "Apache-2.0", "dependencies": { - "@openzeppelin/defender-base-client": "1.54.1", - "axios": "^1.4.0", - "ethers": "^5.7.2", - "lodash": "^4.17.19", - "node-fetch": "^2.6.0" + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/defender-admin-client/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@smithy/middleware-endpoint": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.0.tgz", + "integrity": "sha512-xhLimgNCbCzsUppRTGXWkZywksuTThxaIB0HwbpsVLY5sceac4e1TZ/WKYqufQLaUy+gUSJGNdwD2jo3cXL0iA==", + "license": "Apache-2.0", "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.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@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.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@openzeppelin/defender-base-client": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/defender-base-client/-/defender-base-client-1.54.1.tgz", - "integrity": "sha512-DRGz/7KN3ZQwu28YWMOaojrC7jjPkz/uCwkC8/C8B11qwZhA5qIVvyhYHhhFOCl0J84+E3TNdvkPD2q3p2WaJw==", - "dependencies": { - "amazon-cognito-identity-js": "^6.0.1", - "async-retry": "^1.3.3", - "axios": "^1.4.0", - "lodash": "^4.17.19", - "node-fetch": "^2.6.0" + "@smithy/core": "^3.2.0", + "@smithy/middleware-serde": "^4.0.3", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-middleware": "^4.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/defender-sdk-base-client": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.11.0.tgz", - "integrity": "sha512-HNcbRhbcMZZM5Ri5IfUwJaiJZGIrc0yboRZRlXJfG2aFS/EMfUFnQHC0tyyXtCOAoAZcn+iMlsSj5h8CoUeCfw==", + "node_modules/@smithy/middleware-retry": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.0.tgz", + "integrity": "sha512-2zAagd1s6hAaI/ap6SXi5T3dDwBOczOMCSkkYzktqN1+tzbk1GAsHNAdo/1uzxz3Ky02jvZQwbi/vmDA6z4Oyg==", + "license": "Apache-2.0", "dependencies": { - "amazon-cognito-identity-js": "^6.3.6", - "async-retry": "^1.3.3" + "@smithy/node-config-provider": "^4.0.2", + "@smithy/protocol-http": "^5.1.0", + "@smithy/service-error-classification": "^4.0.2", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.2", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/defender-sdk-deploy-client": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.11.0.tgz", - "integrity": "sha512-ELYVihsrTOlH7Sy5C/+Yf64hV3ICeTY2OcczOWVQ/o6rHBWKSnHSZCE/oB1cfOpyg/gCrCLXozs4NyrS5z3GUw==", + "node_modules/@smithy/middleware-serde": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.3.tgz", + "integrity": "sha512-rfgDVrgLEVMmMn0BI8O+8OVr6vXzjV7HZj57l0QxslhzbvVfikZbVfBVthjLHqib4BW44QhcIgJpvebHlRaC9A==", + "license": "Apache-2.0", "dependencies": { - "@openzeppelin/defender-sdk-base-client": "^1.11.0", - "axios": "^1.6.7", - "lodash": "^4.17.21" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/defender-sdk-network-client": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/defender-sdk-network-client/-/defender-sdk-network-client-1.11.0.tgz", - "integrity": "sha512-CPy1TA6RyFYtACbvXZJhJpsYW2u4yxTSNU8cVIw1lH/9iArXzfWuJ2p8Deidc0sJBbMeJYkv1AvqTBJNifjKMg==", + "node_modules/@smithy/middleware-stack": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.2.tgz", + "integrity": "sha512-eSPVcuJJGVYrFYu2hEq8g8WWdJav3sdrI4o2c6z/rjnYDd3xH9j9E7deZQCzFn4QvGPouLngH3dQ+QVTxv5bOQ==", + "license": "Apache-2.0", "dependencies": { - "@openzeppelin/defender-sdk-base-client": "^1.11.0", - "axios": "^1.6.7", - "lodash": "^4.17.21" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-3.1.0.tgz", - "integrity": "sha512-CQ5Cg2kE8WeW6qajUTacBsmkntiAwJd7f6p+BUtd1fEvEv7si4H2lmAqvjOjkFc9ihIEQxMBy50IsBXSZGktmg==", - "dependencies": { - "@openzeppelin/defender-admin-client": "^1.52.0", - "@openzeppelin/defender-base-client": "^1.52.0", - "@openzeppelin/defender-sdk-base-client": "^1.10.0", - "@openzeppelin/defender-sdk-deploy-client": "^1.10.0", - "@openzeppelin/defender-sdk-network-client": "^1.10.0", - "@openzeppelin/upgrades-core": "^1.32.0", - "chalk": "^4.1.0", - "debug": "^4.1.1", - "ethereumjs-util": "^7.1.5", - "proper-lockfile": "^4.1.1", - "undici": "^6.11.1" - }, - "bin": { - "migrate-oz-cli-project": "dist/scripts/migrate-oz-cli-project.js" - }, - "peerDependencies": { - "@nomicfoundation/hardhat-ethers": "^3.0.0", - "@nomicfoundation/hardhat-verify": "^2.0.0", - "ethers": "^6.6.0", - "hardhat": "^2.0.2" + "node_modules/@smithy/node-config-provider": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.0.2.tgz", + "integrity": "sha512-WgCkILRZfJwJ4Da92a6t3ozN/zcvYyJGUTmfGbgS/FkCcoCjl7G4FJaCDN1ySdvLvemnQeo25FdkyMSTSwulsw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^4.0.2", + "@smithy/shared-ini-file-loader": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, - "peerDependenciesMeta": { - "@nomicfoundation/hardhat-verify": { - "optional": true - } + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@smithy/node-http-handler": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.0.4.tgz", + "integrity": "sha512-/mdqabuAT3o/ihBGjL94PUbTSPSRJ0eeVTdgADzow0wRJ0rN4A27EOrtlK56MYiO1fDvlO3jVTCxQtQmK9dZ1g==", + "license": "Apache-2.0", "dependencies": { - "color-convert": "^2.0.1" + "@smithy/abort-controller": "^4.0.2", + "@smithy/protocol-http": "^5.1.0", + "@smithy/querystring-builder": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@smithy/property-provider": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.2.tgz", + "integrity": "sha512-wNRoQC1uISOuNc2s4hkOYwYllmiyrvVXWMtq+TysNRVQaHm4yoafYQyjN/goYZS+QbYlPIbb/QRjaUZMuzwQ7A==", + "license": "Apache-2.0", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@smithy/protocol-http": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.1.0.tgz", + "integrity": "sha512-KxAOL1nUNw2JTYrtviRRjEnykIDhxc84qMBzxvu1MUfQfHTuBlCG7PA6EdVwqpJjH7glw7FqQoFxUJSyBQgu7g==", + "license": "Apache-2.0", "dependencies": { - "color-name": "~1.1.4" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@smithy/querystring-builder": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.2.tgz", + "integrity": "sha512-NTOs0FwHw1vimmQM4ebh+wFQvOwkEf/kQL6bSM1Lock+Bv4I89B3hGYoUEPkmvYPkDKyp5UdXJYu+PoTQ3T31Q==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.2.0", + "@smithy/util-uri-escape": "^4.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@smithy/querystring-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.2.tgz", + "integrity": "sha512-v6w8wnmZcVXjfVLjxw8qF7OwESD9wnpjp0Dqry/Pod0/5vcEA3qxCr+BhbOHlxS8O+29eLpT3aagxXGwIoEk7Q==", + "license": "Apache-2.0", "dependencies": { - "has-flag": "^4.0.0" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/hardhat-upgrades/node_modules/undici": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.11.1.tgz", - "integrity": "sha512-KyhzaLJnV1qa3BSHdj4AZ2ndqI0QWPxYzaIOio0WzcEJB9gvuysprJSLtpvc2D9mhR9jPDUk7xlJlZbH2KR5iw==", + "node_modules/@smithy/service-error-classification": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.2.tgz", + "integrity": "sha512-LA86xeFpTKn270Hbkixqs5n73S+LVM0/VZco8dqd+JT75Dyx3Lcw/MraL7ybjmz786+160K8rPOmhsq0SocoJQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^4.2.0" + }, "engines": { - "node": ">=18.0" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core": { - "version": "1.33.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.33.1.tgz", - "integrity": "sha512-YRxIRhTY1b+j7+NUUu8Uuem5ugxKexEMVd8dBRWNgWeoN1gS1OCrhgUg0ytL+54vzQ+SGWZDfNnzjVuI1Cj1Zw==", + "node_modules/@smithy/shared-ini-file-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.2.tgz", + "integrity": "sha512-J9/gTWBGVuFZ01oVA6vdb4DAjf1XbDhK6sLsu3OS9qmLrS6KB5ygpeHiM3miIbj1qgSJ96GYszXFWv6ErJ8QEw==", + "license": "Apache-2.0", "dependencies": { - "cbor": "^9.0.0", - "chalk": "^4.1.0", - "compare-versions": "^6.0.0", - "debug": "^4.1.1", - "ethereumjs-util": "^7.0.3", - "minimist": "^1.2.7", - "proper-lockfile": "^4.1.1", - "solidity-ast": "^0.4.51" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, - "bin": { - "openzeppelin-upgrades-core": "dist/cli/cli.js" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@smithy/signature-v4": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.0.2.tgz", + "integrity": "sha512-Mz+mc7okA73Lyz8zQKJNyr7lIcHLiPYp0+oiqiMNc/t7/Kf2BENs5d63pEj7oPqdjaum6g0Fc8wC78dY1TgtXw==", + "license": "Apache-2.0", "dependencies": { - "color-convert": "^2.0.1" + "@smithy/is-array-buffer": "^4.0.0", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "@smithy/util-hex-encoding": "^4.0.0", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-uri-escape": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core/node_modules/cbor": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", - "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "node_modules/@smithy/smithy-client": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.2.0.tgz", + "integrity": "sha512-Qs65/w30pWV7LSFAez9DKy0Koaoh3iHhpcpCCJ4waj/iqwsuSzJna2+vYwq46yBaqO5ZbP9TjUsATUNxrKeBdw==", + "license": "Apache-2.0", "dependencies": { - "nofilter": "^3.1.0" + "@smithy/core": "^3.2.0", + "@smithy/middleware-endpoint": "^4.1.0", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/protocol-http": "^5.1.0", + "@smithy/types": "^4.2.0", + "@smithy/util-stream": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=16" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@smithy/types": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.2.0.tgz", + "integrity": "sha512-7eMk09zQKCO+E/ivsjQv+fDlOupcFUCSC/L2YUPgwhvowVGWbPQHjEFcmjt7QQ4ra5lyowS92SV53Zc6XD4+fg==", + "license": "Apache-2.0", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@smithy/url-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.2.tgz", + "integrity": "sha512-Bm8n3j2ScqnT+kJaClSVCMeiSenK6jVAzZCNewsYWuZtnBehEz4r2qP0riZySZVfzB+03XZHJeqfmJDkeeSLiQ==", + "license": "Apache-2.0", "dependencies": { - "color-name": "~1.1.4" + "@smithy/querystring-parser": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@openzeppelin/upgrades-core/node_modules/has-flag": { + "node_modules/@smithy/util-base64": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz", + "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/@openzeppelin/upgrades-core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@smithy/util-body-length-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz", + "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==", + "license": "Apache-2.0", "dependencies": { - "has-flag": "^4.0.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@scure/base": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.6.tgz", - "integrity": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==", - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=18.0.0" } }, - "node_modules/@scure/bip32": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.3.tgz", - "integrity": "sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==", - "dev": true, - "peer": true, + "node_modules/@smithy/util-body-length-node": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz", + "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==", + "license": "Apache-2.0", "dependencies": { - "@noble/curves": "~1.3.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" + "tslib": "^2.6.2" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "dev": true, - "peer": true, + "node_modules/@smithy/util-buffer-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz", + "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==", + "license": "Apache-2.0", "dependencies": { - "@noble/hashes": "1.3.3" + "@smithy/is-array-buffer": "^4.0.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 16" + "node_modules/@smithy/util-config-provider": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz", + "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@scure/bip39": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.2.tgz", - "integrity": "sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==", - "dev": true, - "peer": true, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.8.tgz", + "integrity": "sha512-ZTypzBra+lI/LfTYZeop9UjoJhhGRTg3pxrNpfSTQLd3AJ37r2z4AXTKpq1rFXiiUIJsYyFgNJdjWRGP/cbBaQ==", + "license": "Apache-2.0", "dependencies": { - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.4" + "@smithy/property-provider": "^4.0.2", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "node_modules/@smithy/util-defaults-mode-node": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.8.tgz", + "integrity": "sha512-Rgk0Jc/UDfRTzVthye/k2dDsz5Xxs9LZaKCNPgJTRyoyBoeiNCnHsYGOyu1PKN+sDyPnJzMOz22JbwxzBp9NNA==", + "license": "Apache-2.0", "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" + "@smithy/config-resolver": "^4.1.0", + "@smithy/credential-provider-imds": "^4.0.2", + "@smithy/node-config-provider": "^4.0.2", + "@smithy/property-provider": "^4.0.2", + "@smithy/smithy-client": "^4.2.0", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", - "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "node_modules/@smithy/util-endpoints": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.2.tgz", + "integrity": "sha512-6QSutU5ZyrpNbnd51zRTL7goojlcnuOB55+F9VBD+j8JpRY50IGamsjlycrmpn8PQkmJucFW8A0LSfXj7jjtLQ==", + "license": "Apache-2.0", "dependencies": { - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" + "@smithy/node-config-provider": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@sentry/minimal": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", - "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" + "node_modules/@smithy/util-hex-encoding": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz", + "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@sentry/node": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", - "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "node_modules/@smithy/util-middleware": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.2.tgz", + "integrity": "sha512-6GDamTGLuBQVAEuQ4yDQ+ti/YINf/MEmIegrEeg7DdB/sld8BX1lqt9RRuIcABOhAGTA50bRbPzErez7SlDtDQ==", + "license": "Apache-2.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.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@sentry/tracing": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", - "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "node_modules/@smithy/util-retry": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.2.tgz", + "integrity": "sha512-Qryc+QG+7BCpvjloFLQrmlSd0RsVRHejRXd78jNO3+oREueCjwG1CCEH1vduw/ZkM1U9TztwIKVIi3+8MJScGg==", + "license": "Apache-2.0", "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" + "@smithy/service-error-classification": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@sentry/types": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", - "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "node_modules/@smithy/util-stream": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.2.0.tgz", + "integrity": "sha512-Vj1TtwWnuWqdgQI6YTUF5hQ/0jmFiOYsc51CSMgj7QfyO+RF4EnT2HNjoviNlOOmgzgvf3f5yno+EiC4vrnaWQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/types": "^4.2.0", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-hex-encoding": "^4.0.0", + "@smithy/util-utf8": "^4.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@sentry/utils": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", - "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "node_modules/@smithy/util-uri-escape": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz", + "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==", + "license": "Apache-2.0", "dependencies": { - "@sentry/types": "5.30.0", - "tslib": "^1.9.3" + "tslib": "^2.6.2" }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/@smithy/types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", - "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "node_modules/@smithy/util-utf8": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz", + "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==", + "license": "Apache-2.0", "dependencies": { + "@smithy/util-buffer-from": "^4.0.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, - "node_modules/@smithy/types/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "node_modules/@smithy/util-waiter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.3.tgz", + "integrity": "sha512-JtaY3FxmD+te+KSI2FJuEcfNC9T/DGGVf551babM7fAaXhjJUt7oSYurH1Devxd2+BOSUACCgt3buinx4UnmEA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.0.2", + "@smithy/types": "^4.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } }, "node_modules/@solidity-parser/parser": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz", "integrity": "sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/@tsconfig/node12": { @@ -2558,6 +4009,7 @@ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/@tsconfig/node14": { @@ -2565,6 +4017,7 @@ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/@tsconfig/node16": { @@ -2572,6 +4025,7 @@ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/@typechain/ethers-v6": { @@ -2579,6 +4033,7 @@ "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "lodash": "^4.17.15", @@ -2595,6 +4050,7 @@ "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "fs-extra": "^9.1.0" @@ -2611,6 +4067,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "at-least-node": "^1.0.0", @@ -2623,515 +4080,202 @@ } }, "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", + "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/chai": { - "version": "4.3.14", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz", - "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==", + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/@types/chai-as-promised": { - "version": "7.1.8", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", - "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/dns-packet": { - "version": "5.6.5", - "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.6.5.tgz", - "integrity": "sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", - "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", - "dev": true, - "dependencies": { - "@types/jsonfile": "*", - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "peer": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/jsonfile": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", - "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "peer": true - }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", - "dev": true, - "peer": true - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" - }, - "node_modules/@types/node": { - "version": "20.12.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.5.tgz", - "integrity": "sha512-BD+BjQ9LS/D8ST9p5uqBxghlN+S42iuNxjsUGjeZobe/ciXzk2qb1B6IXc6AnRLS+yFJRpN2IPEHMzwspfDJNw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true, - "peer": true - }, - "node_modules/@types/ps-tree": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@types/ps-tree/-/ps-tree-1.1.6.tgz", - "integrity": "sha512-PtrlVaOaI44/3pl3cvnlK+GxOM3re2526TJvPvh7W+keHIXdV4TE0ylpPBAcvFQCbGitaTXwL9u+RF7qtVeazQ==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", - "dev": true, - "peer": true - }, - "node_modules/@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", - "dependencies": { - "@types/node": "*", - "safe-buffer": "~5.1.1" - } - }, - "node_modules/@types/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", - "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true, - "peer": true - }, - "node_modules/@types/which": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/which/-/which-3.0.3.tgz", - "integrity": "sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz", - "integrity": "sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/type-utils": "7.5.0", - "@typescript-eslint/utils": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@types/chai": "*" } }, - "node_modules/@typescript-eslint/parser": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.5.0.tgz", - "integrity": "sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ==", + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/typescript-estree": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz", - "integrity": "sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA==", + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@types/ms": "*" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz", - "integrity": "sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw==", - "dev": true, - "peer": true, + "node_modules/@types/dns-packet": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.6.5.tgz", + "integrity": "sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==", + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.5.0", - "@typescript-eslint/utils": "7.5.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@typescript-eslint/types": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.5.0.tgz", - "integrity": "sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg==", + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true, - "peer": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } + "license": "MIT" }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz", - "integrity": "sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ==", + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/visitor-keys": "7.5.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@types/node": "*" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@types/minimatch": "*", + "@types/node": "*" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/@typescript-eslint/utils": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.5.0.tgz", - "integrity": "sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "peer": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", + "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.5.0", - "@typescript-eslint/types": "7.5.0", - "@typescript-eslint/typescript-estree": "7.5.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "undici-types": "~6.21.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "peer": true, + "node_modules/@types/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@types/node": "*" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", "dev": true, - "peer": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", + "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "@types/node": "*" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz", - "integrity": "sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA==", + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, - "peer": true, + "license": "MIT", + "optional": true, "dependencies": { - "@typescript-eslint/types": "7.5.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@types/node": "*" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/@uniswap/lib": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@uniswap/lib/-/lib-1.1.1.tgz", "integrity": "sha512-2yK7sLpKIT91TiS5sewHtOa7YuM8IuBXVl4GZv2jZFys4D2sY7K5vZh6MqD25TPA95Od+0YzCVq6cTF2IKrOmg==", + "license": "GPL-3.0-or-later", "engines": { "node": ">=10" } @@ -3140,6 +4284,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@uniswap/v2-core/-/v2-core-1.0.0.tgz", "integrity": "sha512-BJiXrBGnN8mti7saW49MXwxDBRFiWemGetE58q8zgfnPPzQKq55ADltEILqOt6VFZ22kVeVKbF8gVd8aY3l7pA==", + "license": "GPL-3.0-or-later", "engines": { "node": ">=10" } @@ -3148,6 +4293,7 @@ "version": "1.1.0-beta.0", "resolved": "https://registry.npmjs.org/@uniswap/v2-periphery/-/v2-periphery-1.1.0-beta.0.tgz", "integrity": "sha512-6dkwAMKza8nzqYiXEr2D86dgW3TTavUvCR0w2Tu33bAbM8Ah43LKAzH7oKKPRT5VJQaMi1jtkGs1E8JPor1n5g==", + "license": "GPL-3.0-or-later", "dependencies": { "@uniswap/lib": "1.1.1", "@uniswap/v2-core": "1.0.0" @@ -3161,13 +4307,15 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "devOptional": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3180,16 +4328,21 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "devOptional": true, + "license": "MIT", "peer": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -3198,6 +4351,7 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "license": "MIT", "engines": { "node": ">=0.3.0" } @@ -3205,12 +4359,14 @@ "node_modules/aes-js": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -3222,6 +4378,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3235,6 +4392,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3247,9 +4405,10 @@ } }, "node_modules/amazon-cognito-identity-js": { - "version": "6.3.12", - "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.12.tgz", - "integrity": "sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==", + "version": "6.3.15", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.15.tgz", + "integrity": "sha512-G2mzTlGYHKYh9oZDO0Gk94xVQ4iY9GYWBaYScbDYvz05ps6dqi0IvdNx1Lxi7oA3tjS5X+mUN7/svFJJdOB9YA==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "1.2.2", "buffer": "4.9.2", @@ -3258,11 +4417,40 @@ "js-cookie": "^2.2.1" } }, + "node_modules/amazon-cognito-identity-js/node_modules/@aws-crypto/sha256-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz", + "integrity": "sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^1.2.2", + "@aws-sdk/types": "^3.1.0", + "tslib": "^1.11.1" + } + }, + "node_modules/amazon-cognito-identity-js/node_modules/@aws-crypto/util": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-1.2.2.tgz", + "integrity": "sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.1.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/amazon-cognito-identity-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", "dev": true, + "license": "BSD-3-Clause OR MIT", "optional": true, "peer": true, "engines": { @@ -3273,6 +4461,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } @@ -3281,6 +4470,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -3289,6 +4479,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -3299,41 +4490,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/antlr4": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", - "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.2.tgz", + "integrity": "sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=16" } @@ -3342,12 +4528,14 @@ "version": "0.5.0-alpha.4", "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3361,30 +4549,35 @@ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -3398,6 +4591,7 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3418,6 +4612,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -3428,42 +4623,26 @@ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.9", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3473,15 +4652,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3491,15 +4671,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3509,18 +4690,19 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -3534,6 +4716,7 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/assertion-error": { @@ -3541,6 +4724,8 @@ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -3549,13 +4734,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3565,12 +4752,24 @@ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/async-retry": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", "dependencies": { "retry": "0.13.1" } @@ -3578,13 +4777,15 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, + "license": "ISC", "peer": true, "engines": { "node": ">= 4.0.0" @@ -3594,6 +4795,8 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -3605,9 +4808,10 @@ } }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", + "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -3619,6 +4823,7 @@ "resolved": "https://registry.npmjs.org/axios-debug-log/-/axios-debug-log-1.0.0.tgz", "integrity": "sha512-ZjMaEBEij9w+Vbk2Uc3XflchTT7j9rZdYD/snN+XQ5FRDq1QjZNhh0Izb3KSyarU5vTkiCvJyg1xDiQBHZZB9w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0" @@ -3630,12 +4835,14 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -3657,25 +4864,30 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/bech32": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true, + "license": "MIT" }, - "node_modules/bigint-crypto-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", - "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", + "node_modules/bignumber.js": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", + "license": "MIT", "engines": { - "node": ">=14.0.0" + "node": "*" } }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -3684,19 +4896,22 @@ } }, "node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", "dependencies": { - "buffer": "^6.0.3", + "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "node_modules/bl/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, "funding": [ { "type": "github", @@ -3711,31 +4926,57 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "ieee754": "^1.1.13" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "license": "MIT" }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "dev": true, + "license": "ISC" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "license": "MIT" }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.0", "camelcase": "^6.2.0", @@ -3753,84 +4994,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3839,17 +5030,20 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "license": "ISC" }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -3863,6 +5057,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", "dependencies": { "base-x": "^3.0.2" } @@ -3871,6 +5066,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", "dependencies": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -3881,6 +5077,7 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "license": "MIT", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -3892,6 +5089,7 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -3899,31 +5097,107 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -3937,6 +5211,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3945,6 +5220,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3957,6 +5233,7 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", "dev": true, + "license": "Apache-2.0", "peer": true }, "node_modules/cbor": { @@ -3964,6 +5241,7 @@ "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "devOptional": true, + "license": "MIT", "peer": true, "dependencies": { "nofilter": "^3.1.0" @@ -3973,10 +5251,12 @@ } }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -3984,48 +5264,54 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" } }, "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, + "license": "WTFPL", "peer": true, "dependencies": { "check-error": "^1.0.2" }, "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "chai": ">= 2.1.2 < 6" } }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "license": "MIT" }, "node_modules/charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": "*" @@ -4036,6 +5322,8 @@ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "get-func-name": "^2.0.2" }, @@ -4044,21 +5332,26 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", "dev": true, + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -4069,6 +5362,7 @@ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -4081,64 +5375,62 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cheerio/node_modules/undici": { + "version": "6.21.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz", + "integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" } }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "license": "MIT" }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4147,6 +5439,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -4159,6 +5452,7 @@ "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.64", @@ -4171,20 +5465,25 @@ } }, "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-spinners": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -4193,10 +5492,11 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -4211,6 +5511,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", "engines": { "node": ">= 12" } @@ -4219,37 +5520,36 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "engines": { - "node": ">=0.8" - } - }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", "engines": { "node": ">=0.1.90" } @@ -4258,6 +5558,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -4268,13 +5569,15 @@ "node_modules/command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "license": "MIT" }, "node_modules/command-line-args": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "array-back": "^3.1.0", @@ -4291,6 +5594,7 @@ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "array-back": "^4.0.2", @@ -4302,43 +5606,134 @@ "node": ">=8.0.0" } }, + "node_modules/command-line-usage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/command-line-usage/node_modules/array-back": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" } }, + "node_modules/command-line-usage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/command-line-usage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/command-line-usage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/command-line-usage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/command-line-usage/node_modules/typical": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" } }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/compare-versions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.0.tgz", - "integrity": "sha512-LNZQXhqUvqUTotpZ00qLSaify3b4VFD588aRr8MKFw4CMUr98ytzCW5wDH5qx/DEY5kCDXcbcRuCqL0szEf2tg==" + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -4348,6 +5743,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "peer": true, "dependencies": { "buffer-from": "^1.0.0", @@ -4356,45 +5752,17 @@ "typedarray": "^0.0.6" } }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, "node_modules/convert-svg-core": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/convert-svg-core/-/convert-svg-core-0.6.4.tgz", @@ -4410,6 +5778,7 @@ "url": "https://www.patreon.com/neocotic" } ], + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.11", @@ -4427,121 +5796,22 @@ "node": "^12.20.0 || >=14" } }, - "node_modules/convert-svg-core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/convert-svg-core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/convert-svg-core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/convert-svg-core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/convert-svg-core/node_modules/commander": { "version": "9.5.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } }, - "node_modules/convert-svg-core/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/convert-svg-core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/convert-svg-core/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/convert-svg-core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/convert-svg-core/node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.14" } @@ -4561,6 +5831,7 @@ "url": "https://www.patreon.com/neocotic" } ], + "license": "MIT", "dependencies": { "convert-svg-core": "^0.6.4" }, @@ -4575,6 +5846,7 @@ "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -4582,13 +5854,15 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -4614,6 +5888,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -4626,6 +5901,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -4640,6 +5916,7 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/cross-fetch": { @@ -4647,6 +5924,7 @@ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dev": true, + "license": "MIT", "dependencies": { "node-fetch": "2.6.7" } @@ -4656,6 +5934,7 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dev": true, + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -4672,10 +5951,10 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4690,6 +5969,7 @@ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": "*" @@ -4700,6 +5980,7 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -4716,6 +5997,7 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -4728,6 +6010,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dev": true, + "license": "ISC", "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" @@ -4736,23 +6019,16 @@ "node": ">=0.12" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4762,27 +6038,31 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -4801,11 +6081,12 @@ "peer": true }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -4820,6 +6101,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4831,15 +6113,47 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz", "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==", + "license": "MIT", "engines": { "node": ">=14.16" } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "type-detect": "^4.0.0" }, @@ -4851,6 +6165,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -4859,23 +6174,25 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" } }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4892,6 +6209,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -4908,6 +6227,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -4916,6 +6236,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4924,12 +6245,14 @@ "version": "0.0.981744", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -4938,7 +6261,8 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/difflib": { "version": "0.2.4", @@ -4958,6 +6282,8 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "path-type": "^4.0.0" }, @@ -4969,6 +6295,7 @@ "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -4977,15 +6304,16 @@ } }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dom-serializer": { @@ -4993,6 +6321,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -5012,13 +6341,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -5030,10 +6361,11 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -5044,10 +6376,11 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -5055,21 +6388,31 @@ "url": "https://dotenvx.com" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -5081,20 +6424,50 @@ } }, "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.4.0" } @@ -5103,6 +6476,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" @@ -5116,6 +6490,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -5127,6 +6502,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5136,61 +6512,69 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "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.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "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.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "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.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "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.18" }, "engines": { "node": ">= 0.4" @@ -5200,12 +6584,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -5214,14 +6596,16 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -5230,34 +6614,43 @@ } }, "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -5272,6 +6665,7 @@ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -5287,6 +6681,7 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -5298,6 +6693,7 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" @@ -5311,6 +6707,7 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, + "license": "ISC", "dependencies": { "d": "1", "es5-ext": "^0.10.46", @@ -5319,19 +6716,24 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { @@ -5339,6 +6741,7 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "esprima": "^2.7.1", @@ -5372,6 +6775,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "~1.1.2", @@ -5386,6 +6790,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "deep-is": "~0.1.3", @@ -5414,6 +6819,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "~1.1.2" @@ -5423,98 +6829,72 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", + "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.25.1", + "@eslint/plugin-kit": "^0.2.8", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "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.4.2", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", - "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", - "dev": true, - "dependencies": { - "eslint-config-airbnb-base": "^15.0.0" + "jiti": "*" }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz", + "integrity": "sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -5527,6 +6907,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -5538,15 +6919,17 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -5564,39 +6947,43 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { @@ -5604,6 +6991,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5614,27 +7002,17 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5643,118 +7021,52 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5762,23 +7074,12 @@ "node": "*" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/esniff": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -5790,17 +7091,18 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5811,6 +7113,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "bin": { "esparse": "bin/esparse.js", @@ -5821,10 +7124,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -5837,6 +7141,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -5849,6 +7154,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5858,6 +7164,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -5867,6 +7174,7 @@ "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@solidity-parser/parser": "^0.14.0", @@ -5903,8 +7211,20 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "peer": true }, + "node_modules/eth-gas-reporter/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", @@ -5916,6 +7236,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "peer": true, "dependencies": { "@noble/hashes": "~1.2.0", @@ -5934,6 +7255,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "peer": true, "dependencies": { "@noble/hashes": "~1.2.0", @@ -5945,6 +7267,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -5955,6 +7278,7 @@ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "object-assign": "^4.1.0", @@ -5972,6 +7296,7 @@ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@noble/hashes": "1.2.0", @@ -5981,9 +7306,9 @@ } }, "node_modules/eth-gas-reporter/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz", + "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", "dev": true, "funding": [ { @@ -5995,38 +7320,39 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peer": true, - "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.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@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.1", - "@ethersproject/wordlists": "5.7.0" + "license": "MIT", + "peer": true, + "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", + "@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" } }, "node_modules/eth-gas-reporter/node_modules/is-fullwidth-code-point": { @@ -6034,6 +7360,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -6044,6 +7371,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", @@ -6058,6 +7386,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -6067,77 +7396,58 @@ } }, "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", + "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "js-sha3": "^0.8.0" + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "license": "MIT", "dependencies": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", "blakejs": "^1.1.0", "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.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, "node_modules/ethereumjs-util": { "version": "7.1.5", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "license": "MPL-2.0", "dependencies": { "@types/bn.js": "^5.1.0", "bn.js": "^5.1.2", @@ -6150,9 +7460,9 @@ } }, "node_modules/ethers": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", - "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", + "version": "6.13.5", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.5.tgz", + "integrity": "sha512-+knKNieu5EKRThQJWwqaJ10a6HE9sSehGeqWN65//wE7j47ZpFhKAnHB/JJFibwwg61I/koxaPsXbXpD/skNOQ==", "funding": [ { "type": "individual", @@ -6163,34 +7473,47 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", + "@types/node": "22.7.5", "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" + "tslib": "2.7.0", + "ws": "8.17.1" }, "engines": { "node": ">=14.0.0" } }, "node_modules/ethers/node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } }, "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/ethers/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" }, "node_modules/ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "bn.js": "4.11.6", @@ -6206,55 +7529,31 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, - "node_modules/event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" }, "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -6265,6 +7564,7 @@ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, + "license": "ISC", "dependencies": { "type": "^2.7.2" } @@ -6273,6 +7573,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -6287,6 +7588,7 @@ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -6305,31 +7607,36 @@ "node_modules/fast-base64-decode": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz", - "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==" + "integrity": "sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==", + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -6340,6 +7647,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -6351,79 +7660,87 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } + "license": "MIT" }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, + "node_modules/fast-xml-parser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "funding": [ { "type": "github", - "url": "https://github.com/sponsors/jimmywarting" + "url": "https://github.com/sponsors/NaturalIntelligence" }, { "type": "paypal", - "url": "https://paypal.me/jimmywarting" + "url": "https://paypal.me/naturalintelligence" } ], + "license": "MIT", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "strnum": "^1.0.5" }, - "engines": { - "node": "^12.20 || >= 14.13" + "bin": { + "fxparser": "src/cli/cli.js" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-url": { @@ -6431,14 +7748,16 @@ "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", "integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6450,6 +7769,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -6462,6 +7782,7 @@ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "array-back": "^3.0.1" @@ -6474,6 +7795,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -6489,55 +7811,43 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -6548,60 +7858,81 @@ } }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", "dependencies": { - "is-callable": "^1.1.3" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" }, "engines": { "node": ">= 6" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, + "license": "MIT", "engines": { - "node": ">=12.20.0" + "node": ">= 14.17" } }, "node_modules/fp-ts": { "version": "1.19.3", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==" - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "license": "MIT" }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -6617,18 +7948,21 @@ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -6641,19 +7975,24 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -6666,46 +8005,60 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fx": { - "version": "34.0.0", - "resolved": "https://registry.npmjs.org/fx/-/fx-34.0.0.tgz", - "integrity": "sha512-/fZih3/WLsrtlaj2mahjWxAmyuikmcl3D5kKPqLtFmEilLsy9wp0+/vEmfvYXXhwJc+ajtCFDCf+yttXmPMHSQ==", - "dev": true, - "bin": { - "fx": "index.js" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-func-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "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", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6719,16 +8072,31 @@ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stdin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6741,6 +8109,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -6752,13 +8121,15 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -6772,6 +8143,7 @@ "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "chalk": "^2.4.2", @@ -6781,20 +8153,106 @@ "testrpc-sc": "index.js" } }, + "node_modules/ghost-testrpc/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/ghost-testrpc/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ghost-testrpc/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ghost-testrpc/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ghost-testrpc/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -6805,31 +8263,24 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node": ">=10.13.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=10" } }, "node_modules/global-modules": { @@ -6837,6 +8288,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "global-prefix": "^3.0.0" @@ -6850,6 +8302,7 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ini": "^1.3.5", @@ -6865,6 +8318,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "isexe": "^2.0.0" @@ -6874,26 +8328,27 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -6903,53 +8358,160 @@ } }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { + "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", "slash": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/globby/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/globby/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/globby/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "node_modules/graphql": { + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz", + "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-request": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-7.1.2.tgz", + "integrity": "sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w==", + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0" + }, + "peerDependencies": { + "graphql": "14 - 16" + } }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "minimist": "^1.2.5", @@ -6972,29 +8534,21 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/hardhat": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.20.1.tgz", - "integrity": "sha512-q75xDQiQtCZcTMBwjTovrXEU5ECr49baxr4/OBkIu/ULTPzlB20yk1dRWNmD2IFbAeAeXggaWvQAdpiScaHtPw==", + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.23.0.tgz", + "integrity": "sha512-xnORx1LgX46TxylOFme96JmSAIjXuHUVpOlUnaCt8MKMGsgy0NGsfPo5rJI/ncCBPLFLURGfZUQ2Uc6ZYN4kYg==", + "license": "MIT", "dependencies": { + "@ethereumjs/util": "^9.1.0", "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/ethereumjs-block": "5.0.4", - "@nomicfoundation/ethereumjs-blockchain": "7.0.4", - "@nomicfoundation/ethereumjs-common": "4.0.4", - "@nomicfoundation/ethereumjs-evm": "2.0.4", - "@nomicfoundation/ethereumjs-rlp": "5.0.4", - "@nomicfoundation/ethereumjs-statemanager": "2.0.4", - "@nomicfoundation/ethereumjs-trie": "6.0.4", - "@nomicfoundation/ethereumjs-tx": "5.0.4", - "@nomicfoundation/ethereumjs-util": "9.0.4", - "@nomicfoundation/ethereumjs-verkle": "0.0.2", - "@nomicfoundation/ethereumjs-vm": "7.0.4", + "@nomicfoundation/edr": "^0.10.0", "@nomicfoundation/solidity-analyzer": "^0.1.0", "@sentry/node": "^5.18.1", "@types/bn.js": "^5.1.0", @@ -7003,31 +8557,32 @@ "aggregate-error": "^3.0.0", "ansi-escapes": "^4.3.0", "boxen": "^5.1.2", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", + "chokidar": "^4.0.0", "ci-info": "^2.0.0", "debug": "^4.1.1", "enquirer": "^2.3.0", "env-paths": "^2.2.0", "ethereum-cryptography": "^1.0.3", - "ethereumjs-abi": "^0.6.8", - "find-up": "^2.1.0", + "find-up": "^5.0.0", "fp-ts": "1.19.3", "fs-extra": "^7.0.1", - "glob": "7.2.0", "immutable": "^4.0.0-rc.12", "io-ts": "1.10.4", + "json-stream-stringify": "^3.1.4", "keccak": "^3.0.2", "lodash": "^4.17.11", + "micro-eth-signer": "^0.14.0", "mnemonist": "^0.38.0", "mocha": "^10.0.0", "p-map": "^4.0.0", + "picocolors": "^1.1.0", "raw-body": "^2.4.1", "resolve": "1.17.0", "semver": "^6.3.0", - "solc": "0.7.3", + "solc": "0.8.26", "source-map-support": "^0.5.13", "stacktrace-parser": "^0.1.10", + "tinyglobby": "^0.2.6", "tsort": "0.0.1", "undici": "^5.14.0", "uuid": "^8.3.2", @@ -7054,6 +8609,7 @@ "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.10.0.tgz", "integrity": "sha512-QiinUgBD5MqJZJh1hl1jc9dNnpJg7eE/w4/4GEnrcmZJJTDbVFNe3+/3Ep24XqISSkYxRz36czcPHKHd/a0dwA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "cli-table3": "^0.6.0", @@ -7063,74 +8619,17 @@ "hardhat": "^2.0.0" } }, - "node_modules/hardhat-contract-sizer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/hardhat-contract-sizer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/hardhat-contract-sizer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/hardhat-contract-sizer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/hardhat-contract-sizer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/hardhat-dependency-compiler": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/hardhat-dependency-compiler/-/hardhat-dependency-compiler-1.2.1.tgz", + "integrity": "sha512-xG5iwbspTtxOEiP5UsPngEYQ1Hg+fjTjliapIjdTQmwGkCPofrsDhQDV2O/dopcYzcR68nTx2X8xTewYHgA2rQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" - } - }, - "node_modules/hardhat-contract-sizer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "node": ">=14.14.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "hardhat": "^2.0.0" } }, "node_modules/hardhat-gas-reporter": { @@ -7138,6 +8637,7 @@ "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "array-uniq": "1.0.3", @@ -7157,7 +8657,17 @@ "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" + }, + "node_modules/hardhat/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/hardhat/node_modules/@scure/bip32": { "version": "1.1.5", @@ -7169,6 +8679,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "@noble/hashes": "~1.2.0", "@noble/secp256k1": "~1.7.0", @@ -7185,6 +8696,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "@noble/hashes": "~1.2.0", "@scure/base": "~1.1.0" @@ -7194,6 +8706,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.2.0", "@noble/secp256k1": "1.7.1", @@ -7201,21 +8714,11 @@ "@scure/bip39": "1.1.1" } }, - "node_modules/hardhat/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/hardhat/node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -7229,56 +8732,16 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "node_modules/hardhat/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/hardhat/node_modules/resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "license": "MIT", "dependencies": { "path-parse": "^1.0.6" }, @@ -7290,14 +8753,25 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, + "node_modules/hardhat/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/hardhat/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -7315,25 +8789,33 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -7342,9 +8824,14 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -7353,9 +8840,10 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7367,6 +8855,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -7381,6 +8870,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -7390,15 +8880,31 @@ "node": ">=4" } }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/hash-test-vectors": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/hash-test-vectors/-/hash-test-vectors-1.3.2.tgz", - "integrity": "sha512-PKd/fitmsrlWGh3OpKbgNLE04ZQZsvs1ZkuLoQpeIKuwx+6CYVNdW6LaPIS1QAdZvV40+skk0w4YomKnViUnvQ==" + "integrity": "sha512-PKd/fitmsrlWGh3OpKbgNLE04ZQZsvs1ZkuLoQpeIKuwx+6CYVNdW6LaPIS1QAdZvV40+skk0w4YomKnViUnvQ==", + "license": "MIT" }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -7407,12 +8913,14 @@ "node_modules/hashlru": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==", + "license": "MIT" }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -7424,6 +8932,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", "bin": { "he": "bin/he" } @@ -7433,12 +8942,14 @@ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -7446,9 +8957,9 @@ } }, "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -7457,11 +8968,12 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/http-basic": { @@ -7469,6 +8981,7 @@ "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "caseless": "^0.12.0", @@ -7480,10 +8993,18 @@ "node": ">=6.0.0" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -7500,6 +9021,7 @@ "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/node": "^10.0.3" @@ -7510,12 +9032,28 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true, - "peer": true + "license": "MIT", + "peer": true + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -7528,6 +9066,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -7552,35 +9091,38 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/iexec": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/iexec/-/iexec-8.7.0.tgz", - "integrity": "sha512-JZGJ9iadPbJbdGJABYrnSkIZvsa+AJ/prhUpSz20gSnfMTvNLbcu4YmqhnlYU7l8bizQ7/eI/qaiAcIEPKERxw==", - "dependencies": { - "@ensdomains/ens-contracts": "^0.0.22", - "@iexec/erlc": "^1.0.0", - "@iexec/poco": "^5.3.0", - "@multiformats/multiaddr": "^12.1.8", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/iexec/-/iexec-8.15.0.tgz", + "integrity": "sha512-aU11SU6vn4QgPb2oZ3o+DkhOW9f7pRgxOYxmbpWdTdjcqHTCKmVLi0LRpMeQfXkdDlAVCnYssIOynNARpPFYuQ==", + "license": "Apache-2.0", + "dependencies": { + "@ensdomains/ens-contracts": "^1.2.5", + "@iexec/poco": "^5.5.0", + "@iexec/voucher-contracts": "^1.0.0", + "@multiformats/multiaddr": "^12.4.0", + "@types/bn.js": "^5.1.6", "bn.js": "^5.2.1", "buffer": "^6.0.3", - "commander": "^11.1.0", - "debug": "^4.3.4", - "ethers": "^6.8.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "inquirer": "^9.2.11", + "commander": "^13.1.0", + "debug": "^4.4.0", + "ethers": "^6.13.5", + "fs-extra": "^11.3.0", + "graphql-request": "^7.1.2", + "inquirer": "^12.5.0", "is-docker": "^3.0.0", "jszip": "^3.10.1", "node-forge": "^1.3.1", - "ora": "^7.0.1", + "ora": "^8.2.0", "prettyjson": "^1.2.5", - "query-string": "^8.1.0", + "query-string": "^9.1.1", "rlc-faucet-contract": "^1.0.10", - "semver": "^7.5.4", + "semver": "^7.7.1", "update-check": "^1.5.4", - "yup": "^1.3.2" + "yup": "^1.6.1" }, "bin": { "iexec": "dist/esm/cli/cmd/iexec.js" @@ -7604,15 +9146,17 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "node_modules/iexec/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -7622,24 +9166,11 @@ "node": ">=14.14" } }, - "node_modules/iexec/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/iexec/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -7648,38 +9179,27 @@ } }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" }, "node_modules/immer": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", "dev": true, + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -7687,15 +9207,17 @@ } }, "node_modules/immutable": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==" + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7712,6 +9234,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -7720,6 +9243,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7728,6 +9252,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "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.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7736,197 +9262,51 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/inquirer": { - "version": "9.2.17", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.17.tgz", - "integrity": "sha512-Vr3Ia2ud5sGnioURkE69endl4SkeJcMzTF6SosKcX5GALJfId7C+JvO5ZZb6y1LOXnEofCPbwzoQ1q0e8Gaduw==", - "dependencies": { - "@ljharb/through": "^2.3.13", + "version": "12.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.5.2.tgz", + "integrity": "sha512-qoDk/vdSTIaXNXAoNnlg7ubexpJfUo7t8GT2vylxvE49BrLhToFuPPdMViidG2boHV7+AcP1TCkJs/+PPoF2QQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/prompts": "^7.4.1", + "@inquirer/type": "^3.0.6", "ansi-escapes": "^4.3.2", - "chalk": "^5.3.0", - "cli-cursor": "^3.1.0", - "cli-width": "^4.1.0", - "external-editor": "^3.1.0", - "figures": "^3.2.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^5.4.1", + "mute-stream": "^2.0.0", "run-async": "^3.0.0", - "rxjs": "^7.8.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" + "rxjs": "^7.8.2" }, "engines": { "node": ">=18" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "@types/node": ">=18" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/inquirer/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" } }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -7937,6 +9317,7 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.10" @@ -7946,17 +9327,21 @@ "version": "1.10.4", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "license": "MIT", "dependencies": { "fp-ts": "^1.0.0" } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -7969,14 +9354,40 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7986,6 +9397,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -7994,12 +9406,14 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8012,6 +9426,8 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8020,22 +9436,30 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -8046,11 +9470,14 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8063,6 +9490,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -8077,22 +9505,60 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8104,6 +9570,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=6.5.0", "npm": ">=3" @@ -8113,6 +9582,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -8120,10 +9590,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-negative-zero": { + "node_modules/is-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8135,16 +9607,20 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8153,19 +9629,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -8174,16 +9642,34 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8192,11 +9678,13 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -8206,11 +9694,14 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8220,11 +9711,15 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8234,11 +9729,13 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -8251,6 +9748,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8258,12 +9756,47 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8272,78 +9805,74 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "license": "ISC" }, "node_modules/isomorphic-unfetch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz", "integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.1", "unfetch": "^4.2.0" } }, - "node_modules/it-pushable": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.3.tgz", - "integrity": "sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==", + "node_modules/jackspeak": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "license": "BlueOak-1.0.0", "dependencies": { - "p-defer": "^4.0.0" - } - }, - "node_modules/it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "@isaacs/cliui": "^8.0.2" + }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", - "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "license": "MIT" }, "node_modules/js-graph-algorithms": { "version": "1.0.18", "resolved": "https://registry.npmjs.org/js-graph-algorithms/-/js-graph-algorithms-1.0.18.tgz", "integrity": "sha512-Gu1wtWzXBzGeye/j9BuyplGHscwqKRZodp/0M1vyBc19RJpblSwKGu099KwwaTx9cRIV+Qupk8xUMfEiGfFqSA==", "dev": true, + "license": "MIT", "bin": { "js-graphs": "src/jsgraphs.js" } }, - "node_modules/js-sdsl": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", - "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -8355,49 +9884,66 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/json-stream-stringify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", + "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", + "license": "MIT", + "engines": { + "node": ">=7.10.1" + } }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, + "license": "MIT", + "peer": true, "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -8406,10 +9952,11 @@ } }, "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz", + "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": "*" @@ -8419,6 +9966,7 @@ "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -8426,38 +9974,12 @@ "setimmediate": "^1.0.5" } }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/keccak": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", @@ -8467,11 +9989,26 @@ "node": ">=10.0.0" } }, + "node_modules/keccak/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -8481,6 +10018,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -8491,6 +10029,7 @@ "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.1.0.tgz", "integrity": "sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.14.0" } @@ -8500,16 +10039,34 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" } }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -8522,6 +10079,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } @@ -8530,12 +10088,14 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -8549,13 +10109,15 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lodash.clonedeep": { @@ -8563,42 +10125,52 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "devOptional": true, + "license": "MIT", "peer": true }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT", "peer": true }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.omit": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", - "dev": true + "deprecated": "This package is deprecated. Use destructuring assignment syntax instead.", + "dev": true, + "license": "MIT" }, "node_modules/lodash.pick": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", - "dev": true + "deprecated": "This package is deprecated. Use destructuring assignment syntax instead.", + "dev": true, + "license": "MIT" }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -8610,90 +10182,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/loupe": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "get-func-name": "^2.0.1" } }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lru_map": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "license": "MIT" }, "node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/lru-queue": { @@ -8701,6 +10226,7 @@ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "dev": true, + "license": "MIT", "dependencies": { "es5-ext": "~0.10.2" } @@ -8710,25 +10236,31 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "devOptional": true, + "license": "ISC", "peer": true }, - "node_modules/map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", - "dev": true - }, "node_modules/markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -8736,19 +10268,23 @@ } }, "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", "dev": true, + "license": "ISC", "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", + "d": "^1.0.2", + "es5-ext": "^0.10.64", "es6-weak-map": "^2.0.3", "event-emitter": "^0.3.5", "is-promise": "^2.2.2", "lru-queue": "^0.1.0", "next-tick": "^1.1.0", "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/memorystream": { @@ -8764,24 +10300,79 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">= 8" } }, + "node_modules/micro-eth-signer": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz", + "integrity": "sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "micro-packed": "~0.7.2" + } + }, + "node_modules/micro-eth-signer/node_modules/@noble/curves": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.2.tgz", + "integrity": "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.2" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/micro-eth-signer/node_modules/@noble/hashes": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz", + "integrity": "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/micro-ftch": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/micro-packed": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/micro-packed/-/micro-packed-0.7.2.tgz", + "integrity": "sha512-HJ/u8+tMzgrJVAl6P/4l8KGjJSA3SCZaRb1m4wpbovNScCSmVOGUYbkkcoPPcknCHWPpRAdjy+yqXqyQWf+k8g==", + "license": "MIT", + "dependencies": { + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -8792,6 +10383,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8800,6 +10392,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -8807,30 +10400,48 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "peer": true, + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -8845,15 +10456,26 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "minimist": "^1.2.6" @@ -8866,41 +10488,44 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mnemonist": { "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "license": "MIT", "dependencies": { "obliterator": "^2.0.0" } }, - "node_modules/mocha": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", - "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.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.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "node_modules/mocha": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "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" }, "bin": { "_mocha": "bin/_mocha", @@ -8910,24 +10535,11 @@ "node": ">= 14.0.0" } }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, "node_modules/mocha/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8940,43 +10552,18 @@ "engines": { "node": ">= 8.10.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" + "url": "https://paulmillr.com/funding/" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/mocha/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -8984,18 +10571,11 @@ "node": ">= 6" } }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9003,15 +10583,23 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9023,34 +10611,39 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/multiformats": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz", - "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==" + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.3.2.tgz", + "integrity": "sha512-qbB0CQDt3QKfiAzZ5ZYjLFOs+zW43vA4uyM8g27PeEuXZybUOFyjrVdP93HPBHMoglibwfkdVwbzfUq8qGcH6g==", + "license": "Apache-2.0 OR MIT" }, "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ndjson": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "json-stringify-safe": "^5.0.1", @@ -9066,48 +10659,49 @@ "node": ">=10" } }, + "node_modules/ndjson/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "license": "MIT" }, "node_modules/node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "lodash": "^4.17.21" @@ -9117,6 +10711,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -9136,14 +10731,16 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -9154,6 +10751,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "license": "MIT", "engines": { "node": ">=12.19" } @@ -9163,6 +10761,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "abbrev": "1" @@ -9175,15 +10774,30 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -9196,6 +10810,7 @@ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "bn.js": "4.11.6", @@ -9211,6 +10826,7 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/object-assign": { @@ -9218,15 +10834,21 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9235,18 +10857,24 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -9256,25 +10884,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/object.fromentries": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -9293,6 +10908,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -9303,12 +10919,14 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -9320,75 +10938,81 @@ } }, "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.5.tgz", + "integrity": "sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==", + "license": "MIT" }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/ora": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", - "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "license": "MIT", "dependencies": { "chalk": "^5.3.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.9.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.3.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "string-width": "^6.1.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -9397,9 +11021,10 @@ } }, "node_modules/ora/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -9407,77 +11032,64 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ora/node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" }, "node_modules/ora/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "license": "MIT", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, + "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/string-width": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", - "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^10.2.1", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9487,6 +11099,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -9502,31 +11115,51 @@ "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/p-defer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz", - "integrity": "sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==", + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -9541,6 +11174,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -9555,6 +11189,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -9566,9 +11201,10 @@ } }, "node_modules/p-queue": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.0.1.tgz", - "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz", + "integrity": "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==", + "license": "MIT", "dependencies": { "eventemitter3": "^5.0.1", "p-timeout": "^6.1.2" @@ -9581,9 +11217,10 @@ } }, "node_modules/p-timeout": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", - "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -9592,23 +11229,65 @@ } }, "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "dev": true, + "license": "MIT", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/package-json/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -9628,6 +11307,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -9638,38 +11318,67 @@ "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5": { + "node_modules/parse5-parser-stream": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", "dev": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "parse5": "^7.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "node_modules/parse5/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", "dev": true, - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" }, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9678,6 +11387,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9686,7 +11397,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9694,13 +11405,31 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9710,23 +11439,17 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": "*" } }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dev": true, - "dependencies": { - "through": "~2.3" - } - }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "license": "MIT", "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -9742,18 +11465,20 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -9766,6 +11491,7 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -9776,6 +11502,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -9788,6 +11515,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -9801,6 +11529,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -9813,6 +11542,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -9828,6 +11558,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -9835,20 +11566,12 @@ "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -9857,12 +11580,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/pollock/-/pollock-0.2.1.tgz", "integrity": "sha512-2Xy6LImSXm0ANKv9BKSVuCa6Z4ACbK7oUrl9gtUgqLkekL7n9C0mlWsOGYYuGbCG8xT0x3Q4F31C3ZMyVQjwsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9872,15 +11598,17 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -9892,68 +11620,52 @@ } }, "node_modules/prettier-plugin-organize-imports": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.4.tgz", - "integrity": "sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz", + "integrity": "sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==", "dev": true, + "license": "MIT", "peerDependencies": { - "@volar/vue-language-plugin-pug": "^1.0.4", - "@volar/vue-typescript": "^1.0.4", "prettier": ">=2.0", - "typescript": ">=2.9" + "typescript": ">=2.9", + "vue-tsc": "^2.1.0" }, "peerDependenciesMeta": { - "@volar/vue-language-plugin-pug": { - "optional": true - }, - "@volar/vue-typescript": { + "vue-tsc": { "optional": true } } }, "node_modules/prettier-plugin-solidity": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.3.1.tgz", - "integrity": "sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.2.tgz", + "integrity": "sha512-VVD/4XlDjSzyPWWCPW8JEleFa8JNKFYac5kNlMjVXemQyQZKfpekPMhFZSePuXB6L+RixlFvWe20iacGjFYrLw==", "dev": true, + "license": "MIT", "dependencies": { - "@solidity-parser/parser": "^0.17.0", - "semver": "^7.5.4", - "solidity-comments-extractor": "^0.0.8" + "@solidity-parser/parser": "^0.19.0", + "semver": "^7.6.3" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { "prettier": ">=2.3.0" } }, "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.17.0.tgz", - "integrity": "sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==", - "dev": true - }, - "node_modules/prettier-plugin-solidity/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, "node_modules/prettier-plugin-solidity/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -9965,6 +11677,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", + "license": "MIT", "dependencies": { "colors": "1.4.0", "minimist": "^1.2.0" @@ -9976,31 +11689,31 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/progress-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.0.tgz", - "integrity": "sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.1.tgz", + "integrity": "sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==", + "license": "Apache-2.0 OR MIT" }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "asap": "~2.0.6" @@ -10011,6 +11724,7 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "kleur": "^3.0.3", @@ -10024,6 +11738,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", @@ -10034,40 +11749,42 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/proper-lockfile/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, "node_modules/property-expr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "license": "MIT" + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", - "dev": true, - "dependencies": { - "event-stream": "=3.3.4" - }, - "bin": { - "ps-tree": "bin/ps-tree.js" - }, - "engines": { - "node": ">= 0.10" - } + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -10077,7 +11794,8 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "devOptional": true, + "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -10086,9 +11804,10 @@ "version": "13.7.0", "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", - "deprecated": "< 21.8.0 is no longer supported", + "deprecated": "< 22.8.2 is no longer supported", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "cross-fetch": "3.1.5", "debug": "4.3.4", @@ -10107,11 +11826,84 @@ "node": ">=10.18.1" } }, + "node_modules/puppeteer/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/puppeteer/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/puppeteer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, "node_modules/puppeteer/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -10122,14 +11914,37 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/puppeteer/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "license": "MIT", + "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 + } + } + }, "node_modules/qs": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", - "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -10139,29 +11954,22 @@ } }, "node_modules/query-string": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-8.2.0.tgz", - "integrity": "sha512-tUZIw8J0CawM5wyGBiDOAp7ObdRQh4uBor/fUR9ZjmbZVvw95OD9If4w3MQxr99rg0DJZ/9CIORcpEqU5hQG7g==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-9.1.1.tgz", + "integrity": "sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==", + "license": "MIT", "dependencies": { "decode-uri-component": "^0.4.1", "filter-obj": "^5.1.0", "split-on-first": "^3.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -10180,12 +11988,28 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT", + "peer": true + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -10194,6 +12018,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -10208,6 +12033,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -10222,32 +12048,43 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", "engines": { - "node": ">=8.10.0" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/rechoir": { @@ -10268,6 +12105,7 @@ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "minimatch": "^3.0.5" @@ -10281,6 +12119,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -10292,6 +12131,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -10305,20 +12145,48 @@ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "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.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -10328,23 +12196,32 @@ } }, "node_modules/registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "dev": true, + "license": "MIT", "dependencies": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" } }, "node_modules/registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "dev": true, + "license": "MIT", "dependencies": { - "rc": "^1.0.1" + "rc": "1.2.8" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/req-cwd": { @@ -10352,6 +12229,7 @@ "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "req-from": "^2.0.0" @@ -10365,6 +12243,7 @@ "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "resolve-from": "^3.0.0" @@ -10378,6 +12257,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -10387,6 +12267,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10395,70 +12276,165 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "devOptional": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -10467,12 +12443,14 @@ "node_modules/rlc-faucet-contract": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/rlc-faucet-contract/-/rlc-faucet-contract-1.0.10.tgz", - "integrity": "sha512-pGQyIMcLIUQraCTNIcA4B9FY1g2vJHB8qWg3qbwjA1YUj1490LStKDlA4YlPwPgO/a0NWg0UHD7R9ki3DMGACQ==" + "integrity": "sha512-pGQyIMcLIUQraCTNIcA4B9FY1g2vJHB8qWg3qbwjA1YUj1490LStKDlA4YlPwPgO/a0NWg0UHD7R9ki3DMGACQ==", + "license": "ISC" }, "node_modules/rlp": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "license": "MPL-2.0", "dependencies": { "bn.js": "^5.2.0" }, @@ -10484,6 +12462,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -10507,44 +12486,32 @@ "url": "https://feross.org/support" } ], + "license": "MIT", + "peer": true, "dependencies": { "queue-microtask": "^1.2.2" } }, - "node_modules/rust-verkle-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/rust-verkle-wasm/-/rust-verkle-wasm-0.0.1.tgz", - "integrity": "sha512-BN6fiTsxcd2dCECz/cHtGTt9cdLJR925nh7iAuRcj8ymKw7OOaPmCneQZ7JePOJ/ia27TjEL91VdOi88Yf+mcA==" - }, - "node_modules/rustbn-wasm": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn-wasm/-/rustbn-wasm-0.2.0.tgz", - "integrity": "sha512-FThvYFNTqrEKGqXuseeg0zR7yROh/6U1617mCHF68OVqrN1tNKRN7Tdwy4WayPVsCmmK+eMxtIZX1qL6JxTkMg==", - "dependencies": { - "@scure/base": "^1.1.1" - } - }, "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -10557,7 +12524,9 @@ "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -10576,16 +12545,43 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -10597,13 +12593,15 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/sc-istanbul": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "abbrev": "1.0.x", @@ -10630,6 +12628,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "sprintf-js": "~1.0.2" @@ -10640,6 +12639,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -10650,7 +12650,9 @@ "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "inflight": "^1.0.4", @@ -10668,6 +12670,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -10678,6 +12681,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "argparse": "^1.0.7", @@ -10692,6 +12696,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "bin": { "esparse": "bin/esparse.js", @@ -10706,6 +12711,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -10719,6 +12725,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/sc-istanbul/node_modules/supports-color": { @@ -10726,6 +12733,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^1.0.0" @@ -10739,6 +12747,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "isexe": "^2.0.0" @@ -10750,34 +12759,44 @@ "node_modules/scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT" }, "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", + "elliptic": "^6.5.7", + "node-addon-api": "^5.0.0", "node-gyp-build": "^4.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, + "node_modules/secp256k1/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -10786,6 +12805,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -10802,6 +12823,8 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -10812,20 +12835,38 @@ "node": ">= 0.4" } }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -10839,6 +12880,7 @@ "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "charenc": ">= 0.0.1", @@ -10852,7 +12894,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10864,7 +12906,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10874,6 +12916,7 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "glob": "^7.0.0", @@ -10887,15 +12930,123 @@ "node": ">=4" } }, + "node_modules/shelljs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shelljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -10905,15 +13056,23 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/slash": { @@ -10921,6 +13080,7 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -10931,6 +13091,7 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "devOptional": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -10943,44 +13104,12 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true - }, "node_modules/sol2uml": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/sol2uml/-/sol2uml-2.5.6.tgz", "integrity": "sha512-AN0Iu6x61L36mJWlzL3jsBQQ2VzFxdYdpcACUaoO9buM+7VuQICDBel8fG26EkW87Plqui+mxrgqfpFv/Ye2vQ==", "dev": true, + "license": "MIT", "dependencies": { "@aduh95/viz.js": "^3.7.0", "@solidity-parser/parser": "^0.15.0", @@ -11004,6 +13133,7 @@ "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.15.0.tgz", "integrity": "sha512-5UFJJTzWi1hgFk6aGCZ5rxG2DJkCJOzJ74qg7UkWSNCDSigW+CJLoYUb5bLiKrtI34Nr9rpFSUNHfkqtlL+N/w==", "dev": true, + "license": "MIT", "dependencies": { "antlr4ts": "^0.5.0-alpha.4" } @@ -11013,14 +13143,15 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/sol2uml/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz", + "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", "dev": true, "funding": [ { @@ -11032,122 +13163,89 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "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.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@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.1", - "@ethersproject/wordlists": "5.7.0" + "license": "MIT", + "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", + "@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" } }, "node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", + "license": "MIT", "dependencies": { "command-exists": "^1.2.8", - "commander": "3.0.2", + "commander": "^8.1.0", "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", "js-sha3": "0.8.0", "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", "semver": "^5.5.0", "tmp": "0.0.33" }, "bin": { - "solcjs": "solcjs" + "solcjs": "solc.js" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/solc/node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" - }, - "node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/solc/node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "optionalDependencies": { - "graceful-fs": "^4.1.9" + "node": ">=10.0.0" } }, - "node_modules/solc/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node_modules/solc/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" } }, "node_modules/solc/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/solhint": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.6.2.tgz", - "integrity": "sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/solhint/-/solhint-5.0.5.tgz", + "integrity": "sha512-WrnG6T+/UduuzSWsSOAbfq1ywLUDwNea3Gd5hg6PS+pLUm8lz2ECNr0beX609clBxmDeZ3676AiA9nPDljmbJQ==", "dev": true, + "license": "MIT", "dependencies": { - "@solidity-parser/parser": "^0.16.0", + "@solidity-parser/parser": "^0.19.0", "ajv": "^6.12.6", - "antlr4": "^4.11.0", + "antlr4": "^4.13.1-patch-1", "ast-parents": "^0.0.1", "chalk": "^4.1.2", "commander": "^10.0.0", @@ -11156,6 +13254,7 @@ "glob": "^8.0.3", "ignore": "^5.2.4", "js-yaml": "^4.1.0", + "latest-version": "^7.0.0", "lodash": "^4.17.21", "pluralize": "^8.0.0", "semver": "^7.5.2", @@ -11171,129 +13270,28 @@ } }, "node_modules/solhint/node_modules/@solidity-parser/parser": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz", - "integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==", - "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } - }, - "node_modules/solhint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/solhint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/solhint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/solhint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "license": "MIT" }, "node_modules/solhint/node_modules/commander": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, - "node_modules/solhint/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/solhint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/solhint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/solhint/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/solhint/node_modules/prettier": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "optional": true, "bin": { "prettier": "bin-prettier.js" @@ -11306,13 +13304,11 @@ } }, "node_modules/solhint/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -11320,41 +13316,22 @@ "node": ">=10" } }, - "node_modules/solhint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/solidity-ast": { - "version": "0.4.56", - "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.56.tgz", - "integrity": "sha512-HgmsA/Gfklm/M8GFbCX/J1qkVH0spXHgALCNZ8fA8x5X+MFdn/8CP2gr5OVyXjXw6RZTPC/Sxl2RUDQOXyNMeA==", - "dependencies": { - "array.prototype.findlast": "^1.2.2" - } - }, - "node_modules/solidity-comments-extractor": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.8.tgz", - "integrity": "sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==", - "dev": true + "version": "0.4.60", + "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.60.tgz", + "integrity": "sha512-UwhasmQ37ji1ul8cIp0XlrQ/+SVQhy09gGqJH4jnwdo2TgI6YIByzi0PI5QvIGcIdFOs1pbSmJW1pnWB7AVh2w==", + "license": "MIT" }, "node_modules/solidity-coverage": { - "version": "0.8.12", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.12.tgz", - "integrity": "sha512-8cOB1PtjnjFRqOgwFiD8DaUsYJtVJ6+YdXQtSZDrLGf8cdhhh8xzTtGzVTGeBf15kTv0v7lYPJlV/az7zLEPJw==", + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.15.tgz", + "integrity": "sha512-qH7290NKww4/t/qFvnSEePEzON0k025IGVlwc8wo8Q6p+h1Tt6fV2M0k3yfsps3TomZYTROsfPXjx7MSnwD5uA==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.18.0", + "@solidity-parser/parser": "^0.19.0", "chalk": "^2.4.2", "death": "^1.1.0", "difflib": "^0.2.4", @@ -11381,17 +13358,79 @@ } }, "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", - "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/solidity-coverage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/solidity-coverage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, + "license": "MIT", "peer": true }, + "node_modules/solidity-coverage/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/solidity-coverage/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -11402,24 +13441,15 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/solidity-coverage/node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "node_modules/solidity-coverage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/solidity-coverage/node_modules/jsonfile": { @@ -11427,38 +13457,38 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, - "node_modules/solidity-coverage/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", "peer": true, - "dependencies": { - "yallist": "^4.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/solidity-coverage/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/solidity-coverage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=4" } }, "node_modules/solidity-coverage/node_modules/universalify": { @@ -11466,15 +13496,17 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/solstruct": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/solstruct/-/solstruct-0.0.13.tgz", - "integrity": "sha512-gYlF8yj4rB9V0xC5pz+jT8YsewLQkCsf9FDgswg/zyUliKj48Ty/T2XSEYpUFXPa0kVNKcCTd04tJivjcWeRIw==" + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/solstruct/-/solstruct-0.1.0.tgz", + "integrity": "sha512-7XiFF2g3R08tsfhhZfKbKheNC0A5lsdAxk5R2HVPzT/kwenTh8AUzmQoc10xw+zXO813KRRLK3t65KqgUE2T4w==", + "license": "MIT" }, "node_modules/source-map": { "version": "0.2.0", @@ -11494,6 +13526,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -11503,26 +13536,16 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/split-on-first": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz", "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11535,22 +13558,41 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "readable-stream": "^3.0.0" } }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, + "license": "BSD-3-Clause", "peer": true }, "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "license": "MIT", "dependencies": { "type-fest": "^0.7.1" }, @@ -11562,6 +13604,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } @@ -11570,52 +13613,66 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", - "dependencies": { - "bl": "^5.0.0" - }, + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1" - } - }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/string-format": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", "dev": true, + "license": "WTFPL OR MIT", "peer": true }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11626,14 +13683,19 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11643,14 +13705,20 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11659,6 +13727,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -11675,6 +13745,20 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11687,6 +13771,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -11695,6 +13780,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "is-hex-prefixed": "1.0.0" }, @@ -11707,6 +13795,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -11714,15 +13803,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -11730,6 +13832,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11742,6 +13845,7 @@ "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "http-response-object": "^3.0.1", @@ -11757,16 +13861,18 @@ "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "get-port": "^3.1.0" } }, "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "devOptional": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -11783,6 +13889,7 @@ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "array-back": "^4.0.1", @@ -11799,6 +13906,7 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -11809,21 +13917,23 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" } }, "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "devOptional": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -11834,13 +13944,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -11853,6 +13965,7 @@ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -11864,52 +13977,34 @@ "node": ">=6" } }, - "node_modules/tar-stream/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/tar-stream/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/then-request": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/concat-stream": "^1.6.0", @@ -11933,18 +14028,22 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/then-request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz", + "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" }, "engines": { "node": ">= 0.12" @@ -11954,37 +14053,103 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "readable-stream": "3" } }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", "dev": true, + "license": "ISC", "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/tiny-case": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", "dependencies": { "os-tmpdir": "~1.0.2" }, @@ -11996,6 +14161,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -12007,6 +14173,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -12014,31 +14181,21 @@ "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/ts-command-line-args": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "chalk": "^4.1.0", @@ -12050,87 +14207,12 @@ "write-markdown": "dist/write-markdown.js" } }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-command-line-args/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-command-line-args/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "peer": true - }, - "node_modules/ts-command-line-args/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ts-essentials": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true, + "license": "MIT", "peer": true, "peerDependencies": { "typescript": ">=3.7.0" @@ -12141,6 +14223,7 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "devOptional": true, + "license": "MIT", "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -12185,6 +14268,7 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "devOptional": true, + "license": "BSD-3-Clause", "peer": true, "engines": { "node": ">=0.3.1" @@ -12195,6 +14279,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -12202,37 +14287,44 @@ "strip-bom": "^3.0.0" } }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tsort": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==" - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "license": "MIT" }, "node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -12241,18 +14333,21 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=4" } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -12265,6 +14360,7 @@ "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@types/prettier": "^2.1.1", @@ -12290,6 +14386,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -12301,6 +14398,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -12315,7 +14413,9 @@ "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -12337,6 +14437,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, + "license": "MIT", "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" @@ -12347,6 +14448,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -12360,6 +14462,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "peer": true, "bin": { "mkdirp": "bin/cmd.js" @@ -12373,6 +14476,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "peer": true, "bin": { "prettier": "bin-prettier.js" @@ -12389,34 +14493,39 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -12426,16 +14535,19 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -12445,16 +14557,18 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-proto": "^1.0.3", "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { "node": ">= 0.4" @@ -12468,13 +14582,15 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/typescript": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz", - "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "devOptional": true, + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", @@ -12489,16 +14605,18 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" } }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "peer": true, "bin": { @@ -12512,6 +14630,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arraylist": "^2.0.0", "uint8arrays": "^5.0.0" @@ -12521,27 +14640,34 @@ "version": "2.4.8", "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.8.tgz", "integrity": "sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arrays": "^5.0.1" } }, "node_modules/uint8arrays": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.3.tgz", - "integrity": "sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^13.0.0" } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12552,6 +14678,7 @@ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, + "license": "MIT", "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" @@ -12576,15 +14703,17 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "version": "5.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz", + "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==", + "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -12593,19 +14722,22 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" }, "node_modules/unfetch": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -12614,6 +14746,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -12622,16 +14755,40 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", + "license": "MIT", "dependencies": { "registry-auth-token": "3.3.2", "registry-url": "3.1.0" } }, + "node_modules/update-check/node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/update-check/node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "devOptional": true, + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -12641,17 +14798,24 @@ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -12661,30 +14825,15 @@ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "devOptional": true, + "license": "MIT", "peer": true }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/web3-utils": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", "dev": true, + "license": "LGPL-3.0", "peer": true, "dependencies": { "@ethereumjs/util": "^8.1.0", @@ -12700,24 +14849,56 @@ "node": ">=8.0.0" } }, + "node_modules/web3-utils/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/web3-utils/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/web3-utils/node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@noble/hashes": "1.3.3" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/web3-utils/node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 16" @@ -12727,36 +14908,66 @@ } }, "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz", - "integrity": "sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@noble/curves": "1.3.0", - "@noble/hashes": "1.3.3", - "@scure/bip32": "1.3.3", - "@scure/bip39": "1.2.2" + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, - "node_modules/webpod": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/webpod/-/webpod-0.0.2.tgz", - "integrity": "sha512-cSwwQIeg8v4i3p4ajHhwgR7N6VyxAf+KYSSsY6Pd3aETE+xEU4vbitz7qQkB0I321xnhDdgtxuiSfk5r/FVtjg==", + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, - "bin": { - "webpod": "dist/index.js" + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" } }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -12766,7 +14977,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12778,29 +14989,92 @@ } }, "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", + "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" }, "engines": { @@ -12814,6 +15088,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "license": "MIT", "dependencies": { "string-width": "^4.0.0" }, @@ -12826,7 +15101,7 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12836,6 +15111,7 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/wordwrapjs": { @@ -12843,6 +15119,7 @@ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "reduce-flatten": "^2.0.0", @@ -12857,20 +15134,23 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" } }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12883,51 +15163,41 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -12942,31 +15212,16 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -12981,9 +15236,10 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", "engines": { "node": ">=10" } @@ -12992,6 +15248,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -13007,6 +15264,7 @@ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -13017,6 +15275,7 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "devOptional": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -13026,6 +15285,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -13033,10 +15293,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yup": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.4.0.tgz", - "integrity": "sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", + "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "license": "MIT", "dependencies": { "property-expr": "^2.0.5", "tiny-case": "^1.0.3", @@ -13048,6 +15321,7 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -13055,132 +15329,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/zx": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/zx/-/zx-7.2.3.tgz", - "integrity": "sha512-QODu38nLlYXg/B/Gw7ZKiZrvPkEsjPN3LQ5JFXM7h0JvwhEdPNNl+4Ao1y4+o3CLNiDUNcwzQYZ4/Ko7kKzCMA==", - "dev": true, - "dependencies": { - "@types/fs-extra": "^11.0.1", - "@types/minimist": "^1.2.2", - "@types/node": "^18.16.3", - "@types/ps-tree": "^1.1.2", - "@types/which": "^3.0.0", - "chalk": "^5.2.0", - "fs-extra": "^11.1.1", - "fx": "*", - "globby": "^13.1.4", - "minimist": "^1.2.8", - "node-fetch": "3.3.1", - "ps-tree": "^1.2.0", - "webpod": "^0", - "which": "^3.0.0", - "yaml": "^2.2.2" - }, - "bin": { - "zx": "build/cli.js" - }, - "engines": { - "node": ">= 16.0.0" - } - }, - "node_modules/zx/node_modules/@types/node": { - "version": "18.19.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.30.tgz", - "integrity": "sha512-453z1zPuJLVDbyahaa1sSD5C2sht6ZpHp5rgJNs+H8YGqhluCXcuOUmBYsAo0Tos0cHySJ3lVUGbGgLlqIkpyg==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/zx/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/zx/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/zx/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zx/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/zx/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/zod": { + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", "dev": true, - "engines": { - "node": ">=12" - }, + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/zx/node_modules/which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "node_modules/zx": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/zx/-/zx-8.5.3.tgz", + "integrity": "sha512-TsGLAt8Ngr4wDXLZmN9BT+6FWVLFbqdQ0qpXkV3tIfH7F+MgN/WUeSY7W4nNqAntjWunmnRaznpyxtJRPhCbUQ==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, + "license": "Apache-2.0", "bin": { - "node-which": "bin/which.js" + "zx": "build/cli.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 12.17.0" } } } diff --git a/packages/sharing-smart-contract/package.json b/packages/sharing-smart-contract/package.json index 5eac99a76..7b81d3279 100644 --- a/packages/sharing-smart-contract/package.json +++ b/packages/sharing-smart-contract/package.json @@ -8,8 +8,9 @@ "scripts": { "clean": "hardhat clean", "compile": "hardhat clean && hardhat compile && npm run artifact-to-abis", + "verify:ignition": "hardhat ignition verify --include-unrelated-contracts", "verify": "hardhat verify", - "deploy": "npm run compile && hardhat run ./scripts/deploy.js", + "deploy": "hardhat run scripts/deploy.js", "update-env": "hardhat run ./scripts/updateEnv.js", "upgrade": "hardhat run ./scripts/upgrade.js", "upgrade-local-fork": "mkdir -p .openzeppelin/local-fork && cp -r .openzeppelin/prod/. .openzeppelin/local-fork && MANIFEST_DEFAULT_DIR=.openzeppelin/local-fork ENV=prod hardhat run ./scripts/upgrade-local-fork.js", @@ -32,28 +33,29 @@ "uml" ], "devDependencies": { - "@nomicfoundation/hardhat-foundry": "^1.1.2", + "@nomicfoundation/hardhat-foundry": "^1.1.3", "@nomicfoundation/hardhat-toolbox": "^5.0.0", - "@nomiclabs/hardhat-solhint": "^3.0.1", - "chai": "^4.4.1", - "dotenv": "^16.4.5", - "eslint": "^8.57.0", - "eslint-config-airbnb-typescript": "^18.0.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "hardhat": "2.20.1", + "@nomiclabs/hardhat-solhint": "^4.0.1", + "dotenv": "^16.5.0", + "eslint": "^9.24.0", + "eslint-config-prettier": "^10.1.2", + "eslint-plugin-import": "^2.31.0", + "hardhat": "^2.23.0", "hardhat-contract-sizer": "^2.10.0", - "prettier": "^3.2.5", - "prettier-plugin-organize-imports": "^3.2.4", - "prettier-plugin-solidity": "^1.3.1", + "hardhat-dependency-compiler": "^1.2.1", + "prettier": "^3.3.3", + "prettier-plugin-organize-imports": "^4.0.0", + "prettier-plugin-solidity": "^1.4.1", "sol2uml": "2.5.6", - "zx": "^7.2.3" + "zod": "^3.24.3", + "zx": "^8.5.3" }, "dependencies": { "@iexec/dataprotector-environments": "file:../../environments", - "@openzeppelin/contracts-upgradeable": "^5.0.2", - "@openzeppelin/hardhat-upgrades": "^3.1.0", + "@openzeppelin/contracts-upgradeable": "^5.3.0", + "@openzeppelin/hardhat-upgrades": "^3.9.0", "ethers": "^6.11.1", - "iexec": "^8.7.0" + "iexec": "^8.15.0", + "rimraf": "^6.0.1" } -} +} \ No newline at end of file diff --git a/packages/sharing-smart-contract/scripts/deploy.js b/packages/sharing-smart-contract/scripts/deploy.js index d73abbd05..c490ac6ca 100644 --- a/packages/sharing-smart-contract/scripts/deploy.js +++ b/packages/sharing-smart-contract/scripts/deploy.js @@ -1,84 +1,69 @@ -/* eslint-disable no-console */ import hre from 'hardhat'; -import { - DATASET_REGISTRY_ADDRESS as defaultDatasetRegistryAddress, - POCO_ADDRESS as defaultPocoAddress, -} from '../config/config.js'; -import { saveDeployment } from '../utils/utils.js'; +import env from '../config/env.js'; +import DataProtectorSharingModule from '../ignition/modules/DataProtectorSharingModule.cjs'; const { ethers, upgrades } = hre; -async function main() { - console.log('Starting deployment...'); - const [deployer] = await ethers.getSigners(); - console.log('Deploying contracts with the account:', deployer.address); - - const { POCO_ADDRESS = defaultPocoAddress, DATASET_REGISTRY_ADDRESS = defaultDatasetRegistryAddress } = process.env; - - console.log(`Using poco at ${POCO_ADDRESS}`); - console.log(`Using dataset registry at ${DATASET_REGISTRY_ADDRESS}`); - - const AddOnlyAppWhitelistRegistryFactory = await ethers.getContractFactory('AddOnlyAppWhitelistRegistry'); - const addOnlyAppWhitelistRegistryContract = await upgrades.deployProxy(AddOnlyAppWhitelistRegistryFactory, { - kind: 'transparent', - }); - await addOnlyAppWhitelistRegistryContract.waitForDeployment(); - const addOnlyAppWhitelistRegistryAddress = await addOnlyAppWhitelistRegistryContract.getAddress(); - - const deployAddOnlyAppWhitelistRegistryTxReceipt = await addOnlyAppWhitelistRegistryContract - .deploymentTransaction() - .wait(); - - await saveDeployment('AddOnlyAppWhitelistRegistry')({ - address: addOnlyAppWhitelistRegistryAddress, - args: '', - block: deployAddOnlyAppWhitelistRegistryTxReceipt.blockNumber, - }); +/** + * This script deploys DataProtectorSharing contract and its dependencies using + * Hardhat Ignition and createX factory if supported. + * It also imports the deployed contracts into the OpenZeppelin upgrades plugin. + */ - const DataProtectorSharingFactory = await ethers.getContractFactory('DataProtectorSharing'); - - const dataProtectorSharingConstructorArgs = [ - DATASET_REGISTRY_ADDRESS, - POCO_ADDRESS, - addOnlyAppWhitelistRegistryAddress, - ]; - const dataProtectorSharingContract = await upgrades.deployProxy(DataProtectorSharingFactory, { - kind: 'transparent', - constructorArgs: dataProtectorSharingConstructorArgs, - }); - await dataProtectorSharingContract.waitForDeployment(); - const proxyAddress = await dataProtectorSharingContract.getAddress(); - - const deployDataProtectorSharingTxReceipt = await dataProtectorSharingContract.deploymentTransaction().wait(); - - await saveDeployment('DataProtectorSharing')({ - address: proxyAddress, - args: dataProtectorSharingConstructorArgs.join(' '), - block: deployDataProtectorSharingTxReceipt.blockNumber, - }); - - console.log(`Proxy AddOnlyAppWhitelistRegistry address: ${addOnlyAppWhitelistRegistryAddress}`); - console.log(`Proxy DataProtectorSharing address: ${proxyAddress}`); +async function main() { + const pocoAddress = env.POCO_ADDRESS; + const datasetRegistryAddress = env.DATASET_REGISTRY_ADDRESS; + if (!pocoAddress || !datasetRegistryAddress) { + throw new Error('POCO_ADDRESS and DATASET_REGISTRY_ADDRESS are required.'); + } + const [deployer] = await ethers.getSigners(); + console.log(`Deploying DataProtectorSharingModule [Deployer:${deployer.address}]`); + console.log('PoCo address:', pocoAddress); + console.log('DatasetRegistry address:', datasetRegistryAddress); + // Check if the CreateX factory is supported on the current network. + const isCreatexSupported = await isCreatexFactorySupported(); + if (isCreatexSupported) { + console.log('CreateX factory is supported.'); + } else { + console.log('⚠️ CreateX factory is NOT supported.'); + } + // Deploy contracts using Ignition module. + const { addOnlyAppWhitelistRegistry, dataProtectorSharing } = await hre.ignition.deploy( + DataProtectorSharingModule, + { + ...(isCreatexSupported && { + strategy: 'create2', + strategyConfig: hre.userConfig.ignition.strategyConfig.create2, + }), + displayUi: true, // for logs. + }, + ); + // Import proxies in OZ `upgrades` plugin for future upgrades. + console.log(`Importing proxy contracts in OZ upgrades...`); + const whitelistProxyAddress = await addOnlyAppWhitelistRegistry.getAddress(); + await upgrades.forceImport( + whitelistProxyAddress, + await ethers.getContractFactory('AddOnlyAppWhitelistRegistry'), + { + kind: 'transparent', + }, + ); + await upgrades.forceImport( + await dataProtectorSharing.getAddress(), + await ethers.getContractFactory('DataProtectorSharing'), + { + kind: 'transparent', + constructorArgs: [pocoAddress, datasetRegistryAddress, whitelistProxyAddress], + }, + ); +} - // Verify smart-contract - try { - await hre.run('verify:verify', { - address: addOnlyAppWhitelistRegistryAddress, - }); - } catch (e) { - console.log('Proxy verification for AppWhitelistRegistryContract may have failed :', e); - } - try { - await hre.run('verify:verify', { - address: proxyAddress, - constructorArguments: dataProtectorSharingConstructorArgs, - }); - } catch (e) { - console.log('Proxy verification for DataProtectorSharingContract may have failed :', e); - } +async function isCreatexFactorySupported() { + const code = await ethers.provider.getCode('0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed'); + return code !== '0x'; } -main().catch(error => { - console.error(error); - process.exitCode = 1; +main().catch((error) => { + console.error(error); + process.exitCode = 1; }); diff --git a/packages/sharing-smart-contract/scripts/fillCollection.js b/packages/sharing-smart-contract/scripts/fillCollection.js index 8ad0c17d4..6d8ace7d1 100644 --- a/packages/sharing-smart-contract/scripts/fillCollection.js +++ b/packages/sharing-smart-contract/scripts/fillCollection.js @@ -3,6 +3,7 @@ /* eslint-disable no-await-in-loop */ import { getEnvironment } from '@iexec/dataprotector-environments'; import pkg from 'hardhat'; +import env from '../config/env.js'; import { createAppFor } from './singleFunction/app.js'; import { createDatasetFor } from './singleFunction/dataset.js'; import { createWorkerpool, createWorkerpoolOrder } from './singleFunction/workerpool.js'; @@ -13,158 +14,179 @@ const { ethers } = pkg; const rpcURL = pkg.network.config.url; async function main() { - const { ENV } = process.env; - console.log(`using ENV: ${ENV}`); - const { dataprotectorSharingContractAddress } = getEnvironment(ENV); - - console.log('Filling Contract at : ', dataprotectorSharingContractAddress); - const [owner] = await ethers.getSigners(); - console.log('Collection owner: ', owner.address); - - const dataProtectorSharingContract = await ethers.getContractAt( - 'DataProtectorSharing', - dataprotectorSharingContractAddress, - ); - - const addOnlyAppWhitelistRegistryContract = await ethers.getContractAt( - 'AddOnlyAppWhitelistRegistry', - await dataProtectorSharingContract.ADD_ONLY_APP_WHITELIST_REGISTRY(), - ); - const registry = await ethers.getContractAt('IRegistry', DATASET_REGISTRY_ADDRESS); - const appAddress = await createAppFor(dataprotectorSharingContractAddress, rpcURL); - console.log('AppAddress :', appAddress); - - // create new addOnlyAppWhitelistContract - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(owner.address); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - let addOnlyAppWhitelistContractAddress = transactionReceipt.logs.find(({ eventName }) => eventName === 'Transfer') - ?.args[2]; - addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistContractAddress); - console.log('AppWhitelistAddress :', addOnlyAppWhitelistContractAddress); - - // load new app to the appWhitelist - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - const txAddApp = await addOnlyAppWhitelistContract.addApp(appAddress); - await txAddApp.wait(); - - const { iexecWorkerpoolOwner, workerpoolAddress } = await createWorkerpool(rpcURL); - const workerpoolOrder = await createWorkerpoolOrder(iexecWorkerpoolOwner, workerpoolAddress); - /** ************************************************************************* - * Subscription * - ************************************************************************** */ - for (let k = 0; k < 2; k++) { - const tx = await dataProtectorSharingContract.createCollection(owner.address); - const receipt = await tx.wait(); - const collectionTokenId = ethers.toNumber(receipt.logs[0].args[2]); - console.log('Collection Id', collectionTokenId); - - for (let i = 0; i < 2; i++) { - const protectedDataAddress = await createDatasetFor(owner.address, rpcURL); - const tokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - const tx1 = await registry.approve(dataprotectorSharingContractAddress, tokenId); - await tx1.wait(); - - const tx2 = await dataProtectorSharingContract.addProtectedDataToCollection( - collectionTokenId, - protectedDataAddress, + const { ENV } = env; + console.log(`using ENV: ${ENV}`); + const { dataprotectorSharingContractAddress } = getEnvironment(ENV); + + console.log('Filling Contract at : ', dataprotectorSharingContractAddress); + const [owner] = await ethers.getSigners(); + console.log('Collection owner: ', owner.address); + + const dataProtectorSharingContract = await ethers.getContractAt( + 'DataProtectorSharing', + dataprotectorSharingContractAddress, + ); + + const addOnlyAppWhitelistRegistryContract = await ethers.getContractAt( + 'AddOnlyAppWhitelistRegistry', + await dataProtectorSharingContract.ADD_ONLY_APP_WHITELIST_REGISTRY(), + ); + const registry = await ethers.getContractAt('IRegistry', DATASET_REGISTRY_ADDRESS); + const appAddress = await createAppFor(dataprotectorSharingContractAddress, rpcURL); + console.log('AppAddress :', appAddress); + + // create new addOnlyAppWhitelistContract + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(owner.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + let addOnlyAppWhitelistContractAddress = transactionReceipt.logs.find( + ({ eventName }) => eventName === 'Transfer', + )?.args[2]; + addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistContractAddress); + console.log('AppWhitelistAddress :', addOnlyAppWhitelistContractAddress); + + // load new app to the appWhitelist + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( addOnlyAppWhitelistContractAddress, - ); - await tx2.wait(); - - console.log('ProtectedData added to collection', protectedDataAddress); - const setProtectedDataToSubscriptionTx = - await dataProtectorSharingContract.setProtectedDataToSubscription(protectedDataAddress); - await setProtectedDataToSubscriptionTx.wait(); - console.log('ProtectedData set into subscription mode', protectedDataAddress); - - // Make subscriptions on created collections - const subscriptionPrice = ethers.parseEther('0'); - const subscriptionParams = { - price: subscriptionPrice, - duration: 2_592_000, // 30 days - }; - const tx3 = await dataProtectorSharingContract.setSubscriptionParams(collectionTokenId, subscriptionParams); - await tx3.wait(); - const subscriptionTx = await dataProtectorSharingContract.subscribeToCollection( - collectionTokenId, - subscriptionParams, - ); - await subscriptionTx.wait(); - const consumeProtectedDataWithSubscriptionTx = await dataProtectorSharingContract.consumeProtectedData( - protectedDataAddress, - workerpoolOrder, - appAddress, - ); - await consumeProtectedDataWithSubscriptionTx.wait(); - } + ); + const txAddApp = await addOnlyAppWhitelistContract.addApp(appAddress); + await txAddApp.wait(); + const { iexecWorkerpoolOwner, workerpoolAddress } = await createWorkerpool(rpcURL); + const workerpoolOrder = await createWorkerpoolOrder(iexecWorkerpoolOwner, workerpoolAddress); /** ************************************************************************* - * Renting * + * Subscription * ************************************************************************** */ - for (let i = 0; i < 2; i++) { - const rentingParams = { price: ethers.parseEther('0'), duration: 2_592_000 }; - const protectedDataAddress = await createDatasetFor(owner.address, rpcURL); - const tokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - const tx1 = await registry.approve(dataprotectorSharingContractAddress, tokenId); - await tx1.wait(); - const tx2 = await dataProtectorSharingContract.addProtectedDataToCollection( - collectionTokenId, - protectedDataAddress, - addOnlyAppWhitelistContractAddress, - ); - await tx2.wait(); - console.log('ProtectedData added to collection', protectedDataAddress); - const setProtectedDataToRentingTx = await dataProtectorSharingContract.setProtectedDataToRenting( - protectedDataAddress, - rentingParams, - ); - await setProtectedDataToRentingTx.wait(); - console.log('ProtectedData set into rent mode', protectedDataAddress); - - // Rent a protectedData - const rentTx = await dataProtectorSharingContract.rentProtectedData(protectedDataAddress, rentingParams); - await rentTx.wait(); - console.log('ProtectedData rented', protectedDataAddress); - const consumeProtectedDataWithRentTx = await dataProtectorSharingContract.consumeProtectedData( - protectedDataAddress, - workerpoolOrder, - appAddress, - ); - await consumeProtectedDataWithRentTx.wait(); - } - - /** ************************************************************************* - * Sale * - ************************************************************************** */ - for (let i = 0; i < 2; i++) { - const salePrice = ethers.parseEther('0'); - const protectedDataAddress = await createDatasetFor(owner.address, rpcURL); - const tokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - const tx1 = await registry.approve(dataprotectorSharingContractAddress, tokenId); - await tx1.wait(); - const tx2 = await dataProtectorSharingContract.addProtectedDataToCollection( - collectionTokenId, - protectedDataAddress, - addOnlyAppWhitelistContractAddress, - ); - await tx2.wait(); - console.log('ProtectedData added to collection', protectedDataAddress); - const setProtectedDataForSaleTx = await dataProtectorSharingContract.setProtectedDataForSale( - protectedDataAddress, - salePrice, - ); - await setProtectedDataForSaleTx.wait(); - console.log('ProtectedData set into sale mode', protectedDataAddress); - const addr1 = ethers.Wallet.createRandom().address; - // Rent a protectedData - await dataProtectorSharingContract.buyProtectedData(protectedDataAddress, addr1, salePrice); - console.log('ProtectedData rented', protectedDataAddress); + for (let k = 0; k < 2; k++) { + const tx = await dataProtectorSharingContract.createCollection(owner.address); + const receipt = await tx.wait(); + const collectionTokenId = ethers.toNumber(receipt.logs[0].args[2]); + console.log('Collection Id', collectionTokenId); + + for (let i = 0; i < 2; i++) { + const protectedDataAddress = await createDatasetFor(owner.address, rpcURL); + const tokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); + const tx1 = await registry.approve(dataprotectorSharingContractAddress, tokenId); + await tx1.wait(); + + const tx2 = await dataProtectorSharingContract.addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ); + await tx2.wait(); + + console.log('ProtectedData added to collection', protectedDataAddress); + const setProtectedDataToSubscriptionTx = + await dataProtectorSharingContract.setProtectedDataToSubscription( + protectedDataAddress, + ); + await setProtectedDataToSubscriptionTx.wait(); + console.log('ProtectedData set into subscription mode', protectedDataAddress); + + // Make subscriptions on created collections + const subscriptionPrice = ethers.parseEther('0'); + const subscriptionParams = { + price: subscriptionPrice, + duration: 2_592_000, // 30 days + }; + const tx3 = await dataProtectorSharingContract.setSubscriptionParams( + collectionTokenId, + subscriptionParams, + ); + await tx3.wait(); + const subscriptionTx = await dataProtectorSharingContract.subscribeToCollection( + collectionTokenId, + subscriptionParams, + ); + await subscriptionTx.wait(); + const consumeProtectedDataWithSubscriptionTx = + await dataProtectorSharingContract.consumeProtectedData( + protectedDataAddress, + workerpoolOrder, + appAddress, + ); + await consumeProtectedDataWithSubscriptionTx.wait(); + } + + /** ************************************************************************* + * Renting * + ************************************************************************** */ + for (let i = 0; i < 2; i++) { + const rentingParams = { price: ethers.parseEther('0'), duration: 2_592_000 }; + const protectedDataAddress = await createDatasetFor(owner.address, rpcURL); + const tokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); + const tx1 = await registry.approve(dataprotectorSharingContractAddress, tokenId); + await tx1.wait(); + const tx2 = await dataProtectorSharingContract.addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ); + await tx2.wait(); + console.log('ProtectedData added to collection', protectedDataAddress); + const setProtectedDataToRentingTx = + await dataProtectorSharingContract.setProtectedDataToRenting( + protectedDataAddress, + rentingParams, + ); + await setProtectedDataToRentingTx.wait(); + console.log('ProtectedData set into rent mode', protectedDataAddress); + + // Rent a protectedData + const rentTx = await dataProtectorSharingContract.rentProtectedData( + protectedDataAddress, + rentingParams, + ); + await rentTx.wait(); + console.log('ProtectedData rented', protectedDataAddress); + const consumeProtectedDataWithRentTx = + await dataProtectorSharingContract.consumeProtectedData( + protectedDataAddress, + workerpoolOrder, + appAddress, + ); + await consumeProtectedDataWithRentTx.wait(); + } + + /** ************************************************************************* + * Sale * + ************************************************************************** */ + for (let i = 0; i < 2; i++) { + const salePrice = ethers.parseEther('0'); + const protectedDataAddress = await createDatasetFor(owner.address, rpcURL); + const tokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); + const tx1 = await registry.approve(dataprotectorSharingContractAddress, tokenId); + await tx1.wait(); + const tx2 = await dataProtectorSharingContract.addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ); + await tx2.wait(); + console.log('ProtectedData added to collection', protectedDataAddress); + const setProtectedDataForSaleTx = + await dataProtectorSharingContract.setProtectedDataForSale( + protectedDataAddress, + salePrice, + ); + await setProtectedDataForSaleTx.wait(); + console.log('ProtectedData set into sale mode', protectedDataAddress); + const addr1 = ethers.Wallet.createRandom().address; + // Rent a protectedData + await dataProtectorSharingContract.buyProtectedData( + protectedDataAddress, + addr1, + salePrice, + ); + console.log('ProtectedData rented', protectedDataAddress); + } } - } } -main().catch(error => { - console.error(error); - process.exitCode = 1; +main().catch((error) => { + console.error(error); + process.exitCode = 1; }); diff --git a/packages/sharing-smart-contract/scripts/singleFunction/app.js b/packages/sharing-smart-contract/scripts/singleFunction/app.js index 7426b91f2..bcf2c825d 100644 --- a/packages/sharing-smart-contract/scripts/singleFunction/app.js +++ b/packages/sharing-smart-contract/scripts/singleFunction/app.js @@ -2,19 +2,19 @@ import { Wallet } from 'ethers'; import { IExec, utils } from 'iexec'; const createAppFor = async (owner, rpc) => { - const appOwnerWallet = Wallet.createRandom(); + const appOwnerWallet = Wallet.createRandom(); - const iexecAppOwner = new IExec({ - ethProvider: utils.getSignerFromPrivateKey(rpc, appOwnerWallet.privateKey), - }); - const { address: appAddress } = await iexecAppOwner.app.deployApp({ - owner, - name: `test app${Date.now()}`, - type: 'DOCKER', - multiaddr: 'registry.hub.docker.com/iexechub/vanityeth:1.1.1', - checksum: '0x00f51494d7a42a3c1c43464d9f09e06b2a99968e3b978f6cd11ab3410b7bcd14', - }); - return appAddress; + const iexecAppOwner = new IExec({ + ethProvider: utils.getSignerFromPrivateKey(rpc, appOwnerWallet.privateKey), + }); + const { address: appAddress } = await iexecAppOwner.app.deployApp({ + owner, + name: `test app${Date.now()}`, + type: 'DOCKER', + multiaddr: 'registry.hub.docker.com/iexechub/vanityeth:1.1.1', + checksum: '0x00f51494d7a42a3c1c43464d9f09e06b2a99968e3b978f6cd11ab3410b7bcd14', + }); + return appAddress; }; export { createAppFor }; diff --git a/packages/sharing-smart-contract/scripts/singleFunction/dataset.js b/packages/sharing-smart-contract/scripts/singleFunction/dataset.js index 612cdaf4b..20fbf601d 100644 --- a/packages/sharing-smart-contract/scripts/singleFunction/dataset.js +++ b/packages/sharing-smart-contract/scripts/singleFunction/dataset.js @@ -2,19 +2,19 @@ import { Wallet } from 'ethers'; import { IExec, utils } from 'iexec'; const createDatasetFor = async (owner, rpc) => { - const datasetOwnerWallet = Wallet.createRandom(); - const iexecDatasetOwner = new IExec({ - ethProvider: utils.getSignerFromPrivateKey(rpc, datasetOwnerWallet.privateKey), - }); + const datasetOwnerWallet = Wallet.createRandom(); + const iexecDatasetOwner = new IExec({ + ethProvider: utils.getSignerFromPrivateKey(rpc, datasetOwnerWallet.privateKey), + }); - const { address: datasetAddress } = await iexecDatasetOwner.dataset.deployDataset({ - owner, - name: `test content${Date.now()}`, - multiaddr: '/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u', - checksum: '0x84a3f860d54f3f5f65e91df081c8d776e8bcfb5fbc234afce2f0d7e9d26e160d', - }); + const { address: datasetAddress } = await iexecDatasetOwner.dataset.deployDataset({ + owner, + name: `test content${Date.now()}`, + multiaddr: '/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u', + checksum: '0x84a3f860d54f3f5f65e91df081c8d776e8bcfb5fbc234afce2f0d7e9d26e160d', + }); - return datasetAddress; + return datasetAddress; }; export { createDatasetFor }; diff --git a/packages/sharing-smart-contract/scripts/singleFunction/utils.js b/packages/sharing-smart-contract/scripts/singleFunction/utils.js index 2d8a8c8b9..68a10e991 100644 --- a/packages/sharing-smart-contract/scripts/singleFunction/utils.js +++ b/packages/sharing-smart-contract/scripts/singleFunction/utils.js @@ -1,29 +1,29 @@ export const impersonate = async ({ rpcUrl, address }) => { - await fetch(rpcUrl, { - method: 'POST', - body: JSON.stringify({ - method: 'hardhat_impersonateAccount', - params: [address], - id: 1, - jsonrpc: '2.0', - }), - headers: { - 'Content-Type': 'application/json', - }, - }); + await fetch(rpcUrl, { + method: 'POST', + body: JSON.stringify({ + method: 'hardhat_impersonateAccount', + params: [address], + id: 1, + jsonrpc: '2.0', + }), + headers: { + 'Content-Type': 'application/json', + }, + }); }; export const stopImpersonate = async ({ rpcUrl, address }) => { - await fetch(rpcUrl, { - method: 'POST', - body: JSON.stringify({ - method: 'hardhat_stopImpersonatingAccount', - params: [address], - id: 1, - jsonrpc: '2.0', - }), - headers: { - 'Content-Type': 'application/json', - }, - }); + await fetch(rpcUrl, { + method: 'POST', + body: JSON.stringify({ + method: 'hardhat_stopImpersonatingAccount', + params: [address], + id: 1, + jsonrpc: '2.0', + }), + headers: { + 'Content-Type': 'application/json', + }, + }); }; diff --git a/packages/sharing-smart-contract/scripts/singleFunction/workerpool.js b/packages/sharing-smart-contract/scripts/singleFunction/workerpool.js index e382a300a..6dddb18a3 100644 --- a/packages/sharing-smart-contract/scripts/singleFunction/workerpool.js +++ b/packages/sharing-smart-contract/scripts/singleFunction/workerpool.js @@ -1,29 +1,29 @@ import { Wallet } from 'ethers'; import { IExec, utils } from 'iexec'; -const createWorkerpool = async rpc => { - const workerpoolOwnerWallet = Wallet.createRandom(); - const iexecWorkerpoolOwner = new IExec({ - ethProvider: utils.getSignerFromPrivateKey(rpc, workerpoolOwnerWallet.privateKey), - }); - const { address: workerpoolAddress } = await iexecWorkerpoolOwner.workerpool.deployWorkerpool({ - owner: workerpoolOwnerWallet.address, - description: 'Test workerpool', - }); - return { iexecWorkerpoolOwner, workerpoolAddress }; +const createWorkerpool = async (rpc) => { + const workerpoolOwnerWallet = Wallet.createRandom(); + const iexecWorkerpoolOwner = new IExec({ + ethProvider: utils.getSignerFromPrivateKey(rpc, workerpoolOwnerWallet.privateKey), + }); + const { address: workerpoolAddress } = await iexecWorkerpoolOwner.workerpool.deployWorkerpool({ + owner: workerpoolOwnerWallet.address, + description: 'Test workerpool', + }); + return { iexecWorkerpoolOwner, workerpoolAddress }; }; const createWorkerpoolOrder = async (iexecWorkerpoolOwner, workerpoolAddress) => { - const workerpoolorder = await iexecWorkerpoolOwner.order - .createWorkerpoolorder({ - workerpool: workerpoolAddress, - category: 0, - tag: ['tee', 'scone'], - volume: 100, - }) - .then(order => iexecWorkerpoolOwner.order.signWorkerpoolorder(order)); + const workerpoolorder = await iexecWorkerpoolOwner.order + .createWorkerpoolorder({ + workerpool: workerpoolAddress, + category: 0, + tag: ['tee', 'scone'], + volume: 100, + }) + .then((order) => iexecWorkerpoolOwner.order.signWorkerpoolorder(order)); - return workerpoolorder; + return workerpoolorder; }; export { createWorkerpool, createWorkerpoolOrder }; diff --git a/packages/sharing-smart-contract/scripts/updateEnv.js b/packages/sharing-smart-contract/scripts/updateEnv.js index fb960bfd0..1b6d4b077 100644 --- a/packages/sharing-smart-contract/scripts/updateEnv.js +++ b/packages/sharing-smart-contract/scripts/updateEnv.js @@ -1,33 +1,36 @@ /* eslint-disable no-console */ import { getEnvironment } from '@iexec/dataprotector-environments'; import pkg from 'hardhat'; - +import env from '../config/env.js'; const { ethers } = pkg; async function main() { - const { ENV } = process.env; - console.log(`using ENV: ${ENV}`); - const { dataprotectorSharingContractAddress, resultProxyUrl } = getEnvironment(ENV); + const { ENV } = env; + console.log(`using ENV: ${ENV}`); + const { dataprotectorSharingContractAddress } = getEnvironment(ENV); - const newEnv = ['ipfs', resultProxyUrl]; + const newResultStorageProvider = 'ipfs'; - console.log(`UpdateEnv Contract at ${dataprotectorSharingContractAddress} with [${newEnv}]`); - const [admin] = await ethers.getSigners(); - console.log(`using wallet ${admin.address}`); + console.log( + `UpdateEnv contract at ${dataprotectorSharingContractAddress} ` + + `[newResultStorageProvider=${newResultStorageProvider}]`, + ); + const [admin] = await ethers.getSigners(); + console.log(`using wallet ${admin.address}`); - const dataProtectorSharingContract = await ethers.getContractAt( - 'DataProtectorSharing', - dataprotectorSharingContractAddress, - ); + const dataProtectorSharingContract = await ethers.getContractAt( + 'DataProtectorSharing', + dataprotectorSharingContractAddress, + ); - const updateEnvTx = await dataProtectorSharingContract.updateEnv(...newEnv); - console.log(`tx: ${updateEnvTx.hash}`); + const updateEnvTx = await dataProtectorSharingContract.updateEnv(newResultStorageProvider); + console.log(`tx: ${updateEnvTx.hash}`); - await updateEnvTx.wait(); - console.log('updateEnv confirmed'); + await updateEnvTx.wait(); + console.log('updateEnv confirmed'); } -main().catch(error => { - console.error(error); - process.exitCode = 1; +main().catch((error) => { + console.error(error); + process.exitCode = 1; }); diff --git a/packages/sharing-smart-contract/scripts/upgrade-local-fork.js b/packages/sharing-smart-contract/scripts/upgrade-local-fork.js index 5f59c7843..158113421 100644 --- a/packages/sharing-smart-contract/scripts/upgrade-local-fork.js +++ b/packages/sharing-smart-contract/scripts/upgrade-local-fork.js @@ -2,83 +2,92 @@ import { getEnvironment } from '@iexec/dataprotector-environments'; import hre from 'hardhat'; import { DATASET_REGISTRY_ADDRESS, POCO_ADDRESS } from '../config/config.js'; +import env from '../config/env.js'; import { impersonate, stopImpersonate } from './singleFunction/utils.js'; - const { ethers, upgrades } = hre; async function main() { - const { ENV } = process.env; - console.log(`using ENV: ${ENV}`); - - const rpcUrl = hre.network.config.url; - console.log('rpcUrl', rpcUrl); - - const provider = new ethers.JsonRpcProvider(rpcUrl); - - const { dataprotectorSharingContractAddress, addOnlyAppWhitelistRegistryContractAddress } = getEnvironment(ENV); - - const adminAddress = await upgrades.erc1967.getAdminAddress(dataprotectorSharingContractAddress); - console.log(`Proxy at ${dataprotectorSharingContractAddress} administered by ${adminAddress}`); - - const adminOwner = await new ethers.Contract( - adminAddress, - [ - { - inputs: [], - name: 'owner', - outputs: [ - { - internalType: 'address', - name: '', - type: 'address', - }, + const { ENV } = env; + console.log(`using ENV: ${ENV}`); + + const rpcUrl = hre.network.config.url; + console.log('rpcUrl', rpcUrl); + + const provider = new ethers.JsonRpcProvider(rpcUrl); + + const { dataprotectorSharingContractAddress, addOnlyAppWhitelistRegistryContractAddress } = + getEnvironment(ENV); + + const adminAddress = await upgrades.erc1967.getAdminAddress( + dataprotectorSharingContractAddress, + ); + console.log(`Proxy at ${dataprotectorSharingContractAddress} administered by ${adminAddress}`); + + const adminOwner = await new ethers.Contract( + adminAddress, + [ + { + inputs: [], + name: 'owner', + outputs: [ + { + internalType: 'address', + name: '', + type: 'address', + }, + ], + stateMutability: 'view', + type: 'function', + }, ], - stateMutability: 'view', - type: 'function', - }, - ], - provider, - ).owner(); + provider, + ).owner(); - console.log(`admin contract owned by ${adminOwner}`); + console.log(`admin contract owned by ${adminOwner}`); - console.log('Starting upgrade with admin owner impersonation...'); + console.log('Starting upgrade with admin owner impersonation...'); - const upgradeDeployer = new ethers.JsonRpcSigner(provider, adminOwner); - await impersonate({ rpcUrl, address: adminOwner }); + const upgradeDeployer = new ethers.JsonRpcSigner(provider, adminOwner); + await impersonate({ rpcUrl, address: adminOwner }); - console.log('Deploying contracts with the account:', adminOwner); - console.log(`Upgrading proxy at address: ${dataprotectorSharingContractAddress}`); + console.log('Deploying contracts with the account:', adminOwner); + console.log(`Upgrading proxy at address: ${dataprotectorSharingContractAddress}`); - const dataProtectorSharingConstructorArgs = [ - POCO_ADDRESS, - DATASET_REGISTRY_ADDRESS, - addOnlyAppWhitelistRegistryContractAddress, - ]; + const dataProtectorSharingConstructorArgs = [ + POCO_ADDRESS, + DATASET_REGISTRY_ADDRESS, + addOnlyAppWhitelistRegistryContractAddress, + ]; - const DataProtectorSharingFactoryV2 = (await ethers.getContractFactory('DataProtectorSharing')).connect( - upgradeDeployer, - ); + const DataProtectorSharingFactoryV2 = ( + await ethers.getContractFactory('DataProtectorSharing') + ).connect(upgradeDeployer); - const proxyUpgrade = await upgrades.upgradeProxy(dataprotectorSharingContractAddress, DataProtectorSharingFactoryV2, { - kind: 'transparent', - constructorArgs: dataProtectorSharingConstructorArgs, - txOverrides: { gasPrice: 0 }, - }); + const proxyUpgrade = await upgrades.upgradeProxy( + dataprotectorSharingContractAddress, + DataProtectorSharingFactoryV2, + { + kind: 'transparent', + constructorArgs: dataProtectorSharingConstructorArgs, + txOverrides: { gasPrice: 0 }, + }, + ); - const upgradeTx = proxyUpgrade.deployTransaction; + const upgradeTx = proxyUpgrade.deployTransaction; - console.log(`Upgrade tx ${upgradeTx.hash}`); - // wait for upgrade - await upgradeTx.wait(); + console.log(`Upgrade tx ${upgradeTx.hash}`); + // wait for upgrade + await upgradeTx.wait(); - await stopImpersonate({ rpcUrl, address: adminAddress }); + await stopImpersonate({ rpcUrl, address: adminAddress }); - const implementationAddress = await upgrades.erc1967.getImplementationAddress(dataprotectorSharingContractAddress); - console.log('New implementation address (DataProtectorSharing.sol):', implementationAddress); + const implementationAddress = await upgrades.erc1967.getImplementationAddress( + dataprotectorSharingContractAddress, + ); + console.log('New implementation address (DataProtectorSharing.sol):', implementationAddress); } -main().catch(error => { - console.error(error); - process.exitCode = 1; +main().catch((error) => { + console.error(error); + process.exitCode = 1; }); diff --git a/packages/sharing-smart-contract/scripts/upgrade.js b/packages/sharing-smart-contract/scripts/upgrade.js index ea25e648f..35110567e 100644 --- a/packages/sharing-smart-contract/scripts/upgrade.js +++ b/packages/sharing-smart-contract/scripts/upgrade.js @@ -2,57 +2,68 @@ import { getEnvironment } from '@iexec/dataprotector-environments'; import hre from 'hardhat'; import { DATASET_REGISTRY_ADDRESS, POCO_ADDRESS } from '../config/config.js'; +import env from '../config/env.js'; const { ethers, upgrades } = hre; async function main() { - const { ENV } = process.env; - console.log(`Using ENV: ${ENV}`); - - const { dataprotectorSharingContractAddress, addOnlyAppWhitelistRegistryContractAddress } = getEnvironment(ENV); - - console.log(`Using poco at ${POCO_ADDRESS}`); - console.log(`Using dataset registry at ${DATASET_REGISTRY_ADDRESS}`); - - console.log('Starting upgrade...'); - const [deployer] = await ethers.getSigners(); - - console.log('Deploying contracts with the account:', deployer.address); - console.log(`Upgrading proxy at address: ${dataprotectorSharingContractAddress}`); - - const dataProtectorSharingConstructorArgs = [ - POCO_ADDRESS, - DATASET_REGISTRY_ADDRESS, - addOnlyAppWhitelistRegistryContractAddress, - ]; - - // pass the registry instance to the deploy method - const DataProtectorSharingFactoryV2 = await ethers.getContractFactory('DataProtectorSharing'); - const proxyUpgrade = await upgrades.upgradeProxy(dataprotectorSharingContractAddress, DataProtectorSharingFactoryV2, { - kind: 'transparent', - constructorArgs: dataProtectorSharingConstructorArgs, - }); - - const upgradeTx = proxyUpgrade.deployTransaction; - console.log(`Upgrade tx ${upgradeTx.hash}`); - // wait for upgrade - await upgradeTx.wait(); - - const implementationAddress = await upgrades.erc1967.getImplementationAddress(dataprotectorSharingContractAddress); - console.log('New implementation address (DataProtectorSharing.sol):', implementationAddress); - - // Verify smart-contract - try { - await hre.run('verify:verify', { - address: implementationAddress, - constructorArguments: dataProtectorSharingConstructorArgs, - }); - } catch (e) { - console.log('New implementation verification for DataProtectorSharing may have failed :', e); - } + const { ENV } = env; + console.log(`Using ENV: ${ENV}`); + + const { dataprotectorSharingContractAddress, addOnlyAppWhitelistRegistryContractAddress } = + getEnvironment(ENV); + + console.log(`Using poco at ${POCO_ADDRESS}`); + console.log(`Using dataset registry at ${DATASET_REGISTRY_ADDRESS}`); + + console.log('Starting upgrade...'); + const [deployer] = await ethers.getSigners(); + + console.log('Deploying contracts with the account:', deployer.address); + console.log(`Upgrading proxy at address: ${dataprotectorSharingContractAddress}`); + + const dataProtectorSharingConstructorArgs = [ + POCO_ADDRESS, + DATASET_REGISTRY_ADDRESS, + addOnlyAppWhitelistRegistryContractAddress, + ]; + + // pass the registry instance to the deploy method + const DataProtectorSharingFactoryV2 = await ethers.getContractFactory('DataProtectorSharing'); + const proxyUpgrade = await upgrades.upgradeProxy( + dataprotectorSharingContractAddress, + DataProtectorSharingFactoryV2, + { + kind: 'transparent', + constructorArgs: dataProtectorSharingConstructorArgs, + }, + ); + + const upgradeTx = proxyUpgrade.deployTransaction; + console.log(`Upgrade tx ${upgradeTx.hash}`); + // wait for upgrade + await upgradeTx.wait(); + + const implementationAddress = await upgrades.erc1967.getImplementationAddress( + dataprotectorSharingContractAddress, + ); + console.log('New implementation address (DataProtectorSharing.sol):', implementationAddress); + + // Verify smart-contract + try { + await hre.run('verify:verify', { + address: implementationAddress, + constructorArguments: dataProtectorSharingConstructorArgs, + }); + } catch (e) { + console.log( + 'New implementation verification for DataProtectorSharing may have failed :', + e, + ); + } } -main().catch(error => { - console.error(error); - process.exitCode = 1; +main().catch((error) => { + console.error(error); + process.exitCode = 1; }); diff --git a/packages/sharing-smart-contract/test/SupportsInterface.t.sol b/packages/sharing-smart-contract/test/SupportsInterface.t.sol index eb05b464b..c1b5443e8 100644 --- a/packages/sharing-smart-contract/test/SupportsInterface.t.sol +++ b/packages/sharing-smart-contract/test/SupportsInterface.t.sol @@ -1,8 +1,9 @@ +// SPDX-License-Identifier: Apache-2.0 + pragma solidity ^0.8.24; import {Test} from "forge-std/Test.sol"; import {DataProtectorSharing} from "../contracts/DataProtectorSharing.sol"; -import {IExecPocoDelegate} from "../contracts/interfaces/IExecPocoDelegate.sol"; import {AddOnlyAppWhitelistRegistry} from "../contracts/registry/AddOnlyAppWhitelistRegistry.sol"; import {IRegistry} from "../contracts/interfaces/IRegistry.sol"; import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol"; @@ -14,17 +15,17 @@ contract SupportsInterface is Test { function setUp() external { _dataProtectorSharing = new DataProtectorSharing( - IExecPocoDelegate(address(0)), + address(0), IRegistry(address(0)), AddOnlyAppWhitelistRegistry(address(0)) ); } - function testSupports721Interface() external view { + function testSupports721Interface() external { assertTrue(_dataProtectorSharing.supportsInterface(type(IAccessControl).interfaceId)); } - function testSupportsAccessControlInterface() external view { + function testSupportsAccessControlInterface() external { assertTrue(_dataProtectorSharing.supportsInterface(type(IERC721).interfaceId)); assertTrue(_dataProtectorSharing.supportsInterface(type(IERC721Metadata).interfaceId)); } diff --git a/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelist.test.js b/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelist.test.js index 5424fbff4..bfa8222f6 100644 --- a/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelist.test.js +++ b/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelist.test.js @@ -10,93 +10,127 @@ const { ethers } = pkg; const rpcURL = pkg.network.config.url; describe('AddOnlyAppWhitelist', () => { - describe('addApp', () => { - it('should add an app correctly', async () => { - const { dataProtectorSharingContract, addOnlyAppWhitelistRegistryContract, addr1 } = - await loadFixture(deploySCFixture); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - addr1.address, - ); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistContractAddress = ethers.toBeHex(specificEventForPreviousTx.args?.tokenId); - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - const appAddress = await createAppFor(await dataProtectorSharingContract.getAddress(), rpcURL); + describe('addApp', () => { + it('should add an app correctly', async () => { + const { dataProtectorSharingContract, addOnlyAppWhitelistRegistryContract, addr1 } = + await loadFixture(deploySCFixture); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistContractAddress = ethers.toBeHex( + specificEventForPreviousTx.args?.tokenId, + ); + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( + addOnlyAppWhitelistContractAddress, + ); + const appAddress = await createAppFor( + await dataProtectorSharingContract.getAddress(), + rpcURL, + ); - await expect(addOnlyAppWhitelistContract.connect(addr1).addApp(appAddress)) - .to.emit(addOnlyAppWhitelistContract, 'NewAppAddedToAddOnlyAppWhitelist') - .withArgs(appAddress); + await expect(addOnlyAppWhitelistContract.connect(addr1).addApp(appAddress)) + .to.emit(addOnlyAppWhitelistContract, 'NewAppAddedToAddOnlyAppWhitelist') + .withArgs(appAddress); - // Verify the app is now registered - expect(await addOnlyAppWhitelistContract.isRegistered(appAddress)).to.be.true; + // Verify the app is now registered + expect(await addOnlyAppWhitelistContract.isRegistered(appAddress)).to.be.true; + }); }); - }); - describe('owner', () => { - it('should share the same owner address between addOnlyAppWhitelist & whitelistRegistry state', async () => { - const { addOnlyAppWhitelistRegistryContract, addr1 } = await loadFixture(deploySCFixture); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - addr1.address, - ); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; - const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - expect(await addOnlyAppWhitelistContract.owner()).to.be.equal( - await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), - ); + describe('owner', () => { + it('should share the same owner address between addOnlyAppWhitelist & whitelistRegistry state', async () => { + const { addOnlyAppWhitelistRegistryContract, addr1 } = + await loadFixture(deploySCFixture); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; + const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( + addOnlyAppWhitelistContractAddress, + ); + expect(await addOnlyAppWhitelistContract.owner()).to.be.equal( + await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), + ); + }); }); - }); - describe('transferOwnership', () => { - it('should transfer the addOnlyAppWhitelist and have a coherent state between addOnlyAppWhitelist & the whitelistRegistry', async () => { - const { addOnlyAppWhitelistRegistryContract, addr1, addr2 } = await loadFixture(deploySCFixture); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - addr1.address, - ); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; - const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - await addOnlyAppWhitelistContract.connect(addr1).transferOwnership(addr2.address); + describe('transferOwnership', () => { + it('should transfer the addOnlyAppWhitelist and have a coherent state between addOnlyAppWhitelist & the whitelistRegistry', async () => { + const { addOnlyAppWhitelistRegistryContract, addr1, addr2 } = + await loadFixture(deploySCFixture); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; + const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( + addOnlyAppWhitelistContractAddress, + ); + await addOnlyAppWhitelistContract.connect(addr1).transferOwnership(addr2.address); - expect(await addOnlyAppWhitelistContract.owner()).to.be.equal(addr2.address); - expect(await addOnlyAppWhitelistContract.owner()).to.be.equal( - await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), - ); - }); + expect(await addOnlyAppWhitelistContract.owner()).to.be.equal(addr2.address); + expect(await addOnlyAppWhitelistContract.owner()).to.be.equal( + await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), + ); + }); - it('should transfer the addOnlyAppWhitelist from an authorized operator and have a coherent state between addOnlyAppWhitelist & the whitelistRegistry', async () => { - const { addOnlyAppWhitelistRegistryContract, addr1, addr2, addr3 } = await loadFixture(deploySCFixture); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - addr1.address, - ); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; - const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - await addOnlyAppWhitelistRegistryContract.connect(addr1).approve(addr3.address, addOnlyAppWhitelistTokenId); - await addOnlyAppWhitelistContract.connect(addr3).transferOwnership(addr2.address); + it('should transfer the addOnlyAppWhitelist from an authorized operator and have a coherent state between addOnlyAppWhitelist & the whitelistRegistry', async () => { + const { addOnlyAppWhitelistRegistryContract, addr1, addr2, addr3 } = + await loadFixture(deploySCFixture); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; + const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( + addOnlyAppWhitelistContractAddress, + ); + await addOnlyAppWhitelistRegistryContract + .connect(addr1) + .approve(addr3.address, addOnlyAppWhitelistTokenId); + await addOnlyAppWhitelistContract.connect(addr3).transferOwnership(addr2.address); - expect(await addOnlyAppWhitelistContract.owner()).to.be.equal(addr2.address); - expect(await addOnlyAppWhitelistContract.owner()).to.be.equal( - await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), - ); + expect(await addOnlyAppWhitelistContract.owner()).to.be.equal(addr2.address); + expect(await addOnlyAppWhitelistContract.owner()).to.be.equal( + await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), + ); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelistRegistry.test.js b/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelistRegistry.test.js index 03e6aa2c8..acf6c5ea7 100644 --- a/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelistRegistry.test.js +++ b/packages/sharing-smart-contract/test/e2e/addOnlyAppWhitelistRegistry.test.js @@ -8,52 +8,67 @@ import { getEventFromLogs } from './utils/utils.js'; const { ethers } = pkg; describe('AddOnlyAppWhitelistRegistry', () => { - describe('createAddOnlyAppWhitelist', () => { - it('should create correctly a new addOnlyAppWhitelist', async () => { - const { addOnlyAppWhitelistRegistryContract, addr1 } = await loadFixture(deploySCFixture); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - addr1.address, - ); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; - const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); + describe('createAddOnlyAppWhitelist', () => { + it('should create correctly a new addOnlyAppWhitelist', async () => { + const { addOnlyAppWhitelistRegistryContract, addr1 } = + await loadFixture(deploySCFixture); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; + const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); - expect(ethers.isAddress(addOnlyAppWhitelistContractAddress)).to.be.true; - expect(addOnlyAppWhitelistTokenId).to.not.equal(0); + expect(ethers.isAddress(addOnlyAppWhitelistContractAddress)).to.be.true; + expect(addOnlyAppWhitelistTokenId).to.not.equal(0); - expect(await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId)).to.equal(addr1.address); + expect( + await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), + ).to.equal(addr1.address); - await expect(newAddOnlyAppWhitelistTx) - .to.emit(addOnlyAppWhitelistRegistryContract, 'Transfer') - .withArgs(ethers.ZeroAddress, addr1.address, addOnlyAppWhitelistTokenId); + await expect(newAddOnlyAppWhitelistTx) + .to.emit(addOnlyAppWhitelistRegistryContract, 'Transfer') + .withArgs(ethers.ZeroAddress, addr1.address, addOnlyAppWhitelistTokenId); + }); }); - }); - describe('transfer', () => { - it('should transfer the AddOnlyAppWhitelist and share coherent state between AddOnlyAppWhitelist & the whitelistRegistry', async () => { - const { addOnlyAppWhitelistRegistryContract, addr1, addr2 } = await loadFixture(deploySCFixture); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - addr1.address, - ); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; - const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - await addOnlyAppWhitelistRegistryContract - .connect(addr1) - .safeTransferFrom(addr1.address, addr2.address, addOnlyAppWhitelistTokenId); + describe('transfer', () => { + it('should transfer the AddOnlyAppWhitelist and share coherent state between AddOnlyAppWhitelist & the whitelistRegistry', async () => { + const { addOnlyAppWhitelistRegistryContract, addr1, addr2 } = + await loadFixture(deploySCFixture); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistTokenId = specificEventForPreviousTx.args?.tokenId; + const addOnlyAppWhitelistContractAddress = ethers.toBeHex(addOnlyAppWhitelistTokenId); + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( + addOnlyAppWhitelistContractAddress, + ); + await addOnlyAppWhitelistRegistryContract + .connect(addr1) + .safeTransferFrom(addr1.address, addr2.address, addOnlyAppWhitelistTokenId); - expect(await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId)).to.be.equal(addr2.address); - expect(await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId)).to.be.equal( - await addOnlyAppWhitelistContract.owner(), - ); + expect( + await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), + ).to.be.equal(addr2.address); + expect( + await addOnlyAppWhitelistRegistryContract.ownerOf(addOnlyAppWhitelistTokenId), + ).to.be.equal(await addOnlyAppWhitelistContract.owner()); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/collection.test.js b/packages/sharing-smart-contract/test/e2e/collection.test.js index e822499b2..c3d320eb2 100644 --- a/packages/sharing-smart-contract/test/e2e/collection.test.js +++ b/packages/sharing-smart-contract/test/e2e/collection.test.js @@ -3,309 +3,435 @@ import { loadFixture } from '@nomicfoundation/hardhat-toolbox/network-helpers.js import { expect } from 'chai'; import pkg from 'hardhat'; import { createDatasetFor } from '../../scripts/singleFunction/dataset.js'; -import { addProtectedDataToCollection, createCollection, deploySCFixture } from './utils/loadFixture.test.js'; +import { + addProtectedDataToCollection, + createCollection, + deploySCFixture, +} from './utils/loadFixture.test.js'; import { getEventFromLogs } from './utils/utils.js'; const { ethers } = pkg; const rpcURL = pkg.network.config.url; describe('Collection', () => { - describe('ERC721:safeTransferFrom()', () => { - it('should transfer ownership of the collection', async () => { - const { dataProtectorSharingContract, collectionTokenId, addr1, addr2 } = await loadFixture(createCollection); - - expect(await dataProtectorSharingContract.ownerOf(collectionTokenId)).to.equal(addr1.address); - - const tx = dataProtectorSharingContract.connect(addr1).safeTransferFrom(addr1, addr2.address, collectionTokenId); - await expect(tx) - .to.emit(dataProtectorSharingContract, 'Transfer') - .withArgs(addr1.address, addr2.address, collectionTokenId); - - const collectionOwner = await dataProtectorSharingContract.ownerOf(collectionTokenId); - expect(collectionOwner).to.equal(addr2.address); - }); - }); - - describe('createCollection()', () => { - it('should create a collection and set the owner', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(deploySCFixture); - - const tx = await dataProtectorSharingContract.createCollection(addr1.address); - // Retrieve the collectionTokenId from the transaction receipt - const receipt = await tx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { - strict: true, - }); - const collectionTokenId = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); - - await expect(tx) - .to.emit(dataProtectorSharingContract, 'Transfer') - .withArgs(ethers.ZeroAddress, addr1.address, collectionTokenId); - - // Check the owner and subscriberWhitelist of the collection - const collectionOwner = await dataProtectorSharingContract.ownerOf(collectionTokenId); - expect(collectionOwner).to.equal(addr1.address); - }); - - it('should mint the first tokenId greater than 0', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(deploySCFixture); - - // _nextCollectionTokenId is stored in the SLOT_2 of the EVM SC storage - const nextTokenId = await ethers.provider.getStorage(await dataProtectorSharingContract.getAddress(), 2); - expect(ethers.toNumber(nextTokenId)).to.be.equal(0); - - const tx = await dataProtectorSharingContract.createCollection(addr1.address); - // Retrieve the collectionTokenId from the transaction receipt - const receipt = await tx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { - strict: true, - }); - const collectionTokenId = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); - - expect(collectionTokenId).to.be.equal(1); - }); - }); - - describe('burn()', () => { - it('should delete a collection', async () => { - const { dataProtectorSharingContract, collectionTokenId, addr1 } = await loadFixture(createCollection); - - const tx1 = dataProtectorSharingContract.connect(addr1).burn(collectionTokenId); - await expect(tx1) - .to.emit(dataProtectorSharingContract, 'Transfer') - .withArgs(addr1.address, ethers.ZeroAddress, collectionTokenId); - - // Check that the collection has been deleted - await expect(dataProtectorSharingContract.ownerOf(collectionTokenId)) - .to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken') - .withArgs(collectionTokenId); - }); - - it('should revert if a collection have available subscription', async () => { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, addr1, addr2 } = - await loadFixture(createCollection); - - const subscriptionParams = { - price: 1, // en nRLC - duration: 1_500, - }; - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.connect(addr2).subscribeToCollection(collectionTokenId, subscriptionParams); - - await expect(dataProtectorSharingContract.connect(addr1).burn(collectionTokenId)).to.be.revertedWithCustomError( - dataProtectorSharingContract, - 'OnGoingCollectionSubscriptions', - ); - }); - - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - collectionTokenId, - addr2: notCollectionOwner, - } = await loadFixture(createCollection); - await expect( - dataProtectorSharingContract.connect(notCollectionOwner).burn(collectionTokenId), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721InsufficientApproval'); - }); - - it('should revert if the collection is not empty', async () => { - const { dataProtectorSharingContract, collectionTokenId, addr1 } = - await loadFixture(addProtectedDataToCollection); - - await expect(dataProtectorSharingContract.connect(addr1).burn(collectionTokenId)).to.be.revertedWithCustomError( - dataProtectorSharingContract, - 'CollectionNotEmpty', - ); - }); - }); - - describe('addProtectedDataToCollection()', () => { - it('should add protectedData to a collection', async () => { - const { - dataProtectorSharingContract, - protectedDataAddress, - collectionTokenId, - addOnlyAppWhitelistContractAddress, - tx, - } = await loadFixture(addProtectedDataToCollection); - - await expect(tx) - .to.emit(dataProtectorSharingContract, 'ProtectedDataTransfer') - .withArgs(protectedDataAddress, collectionTokenId, 0, addOnlyAppWhitelistContractAddress); - }); - - it('Should revert if someone tries to add a protectedData that is not their own to a collection', async () => { - const { - dataProtectorSharingContract, - addOnlyAppWhitelistRegistryContract, - collectionTokenId, - addr1: collectionOwner, - addr2: notCollectionOwner, - } = await loadFixture(createCollection); - - const newAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - notCollectionOwner.address, - ); - const transactionReceipt = await newAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistContractAddress = ethers.getAddress( - ethers.toBeHex(specificEventForPreviousTx.args?.tokenId), - ); - const protectedDataAddress = await createDatasetFor(notCollectionOwner.address, rpcURL); - const registry = await ethers.getContractAt('IRegistry', '0x799daa22654128d0c64d5b79eac9283008158730'); - const protectedDataId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - await registry - .connect(notCollectionOwner) - .approve(await dataProtectorSharingContract.getAddress(), protectedDataId); - await expect( - dataProtectorSharingContract - .connect(collectionOwner) - .addProtectedDataToCollection(collectionTokenId, protectedDataAddress, addOnlyAppWhitelistContractAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotAnOwnerOrApprovedOperator'); - }); - - it('should revert if the user is not the collection owner', async () => { - const { - dataProtectorSharingContract, - addOnlyAppWhitelistRegistryContract, - collectionTokenId, - addr2: notCollectionOwner, - } = await loadFixture(createCollection); - - const newAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( - notCollectionOwner.address, - ); - const transactionReceipt = await newAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistContractAddress = ethers.getAddress( - ethers.toBeHex(specificEventForPreviousTx.args?.tokenId), - ); - const protectedDataAddress = await createDatasetFor(notCollectionOwner.address, rpcURL); - const registry = await ethers.getContractAt('IRegistry', '0x799daa22654128d0c64d5b79eac9283008158730'); - const protectedDataId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - await registry - .connect(notCollectionOwner) - .approve(await dataProtectorSharingContract.getAddress(), protectedDataId); - await expect( - dataProtectorSharingContract - .connect(notCollectionOwner) - .addProtectedDataToCollection(collectionTokenId, protectedDataAddress, addOnlyAppWhitelistContractAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); - - it("should revert if protectedData's owner didn't approve the ProtectedDataSharing contract", async () => { - const { dataProtectorSharingContract, addOnlyAppWhitelistRegistryContract, collectionTokenId, addr1 } = - await loadFixture(createCollection); - - const newAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); - const transactionReceipt = await newAppWhitelistTx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', transactionReceipt.logs, { - strict: true, - }); - const addOnlyAppWhitelistContractAddress = ethers.getAddress( - ethers.toBeHex(specificEventForPreviousTx.args?.tokenId), - ); - - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - const tx = dataProtectorSharingContract - .connect(addr1) - .addProtectedDataToCollection(collectionTokenId, protectedDataAddress, addOnlyAppWhitelistContractAddress); - - // this revert error come from the DatasetRegistry - await expect(tx).to.be.revertedWith('ERC721: transfer caller is not owner nor approved'); + describe('ERC721:safeTransferFrom()', () => { + it('should transfer ownership of the collection', async () => { + const { dataProtectorSharingContract, collectionTokenId, addr1, addr2 } = + await loadFixture(createCollection); + + expect(await dataProtectorSharingContract.ownerOf(collectionTokenId)).to.equal( + addr1.address, + ); + + const tx = dataProtectorSharingContract + .connect(addr1) + .safeTransferFrom(addr1, addr2.address, collectionTokenId); + await expect(tx) + .to.emit(dataProtectorSharingContract, 'Transfer') + .withArgs(addr1.address, addr2.address, collectionTokenId); + + const collectionOwner = await dataProtectorSharingContract.ownerOf(collectionTokenId); + expect(collectionOwner).to.equal(addr2.address); + }); }); - it('should revert if addOnlyAppWhitelist Contract is not registered in the addOnlyAppWhitelistRegistry', async () => { - const { dataProtectorSharingContract, collectionTokenId, addr1 } = await loadFixture(createCollection); - - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - const tx = dataProtectorSharingContract - .connect(addr1) - .addProtectedDataToCollection(collectionTokenId, protectedDataAddress, ethers.ZeroAddress); - - await expect(tx).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + describe('createCollection()', () => { + it('should create a collection and set the owner', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(deploySCFixture); + + const tx = await dataProtectorSharingContract.createCollection(addr1.address); + // Retrieve the collectionTokenId from the transaction receipt + const receipt = await tx.wait(); + const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { + strict: true, + }); + const collectionTokenId = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); + + await expect(tx) + .to.emit(dataProtectorSharingContract, 'Transfer') + .withArgs(ethers.ZeroAddress, addr1.address, collectionTokenId); + + // Check the owner and subscriberWhitelist of the collection + const collectionOwner = await dataProtectorSharingContract.ownerOf(collectionTokenId); + expect(collectionOwner).to.equal(addr1.address); + }); + + it('should mint the first tokenId greater than 0', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(deploySCFixture); + + // _nextCollectionTokenId is stored in the SLOT_2 of the EVM SC storage + const nextTokenId = await ethers.provider.getStorage( + await dataProtectorSharingContract.getAddress(), + 2, + ); + expect(ethers.toNumber(nextTokenId)).to.be.equal(0); + + const tx = await dataProtectorSharingContract.createCollection(addr1.address); + // Retrieve the collectionTokenId from the transaction receipt + const receipt = await tx.wait(); + const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { + strict: true, + }); + const collectionTokenId = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); + + expect(collectionTokenId).to.be.equal(1); + }); }); - }); - - describe('removeProtectedDataFromCollection()', () => { - it('should remove protectedData from a collection', async () => { - const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - const tx = dataProtectorSharingContract.connect(addr1).removeProtectedDataFromCollection(protectedDataAddress); - - await expect(tx) - .to.emit(dataProtectorSharingContract, 'ProtectedDataTransfer') - .withArgs(protectedDataAddress, 0, collectionTokenId, ethers.ZeroAddress); - }); - - it('should revert if the user does not own the collection', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr2 } = - await loadFixture(addProtectedDataToCollection); - - const tx = dataProtectorSharingContract.connect(addr2).removeProtectedDataFromCollection(protectedDataAddress); - - await expect(tx).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); - - it('should revert if protectedData is not in the collection', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - const tx = dataProtectorSharingContract.connect(addr1).removeProtectedDataFromCollection(protectedDataAddress); - await expect(tx).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + describe('burn()', () => { + it('should delete a collection', async () => { + const { dataProtectorSharingContract, collectionTokenId, addr1 } = + await loadFixture(createCollection); + + const tx1 = dataProtectorSharingContract.connect(addr1).burn(collectionTokenId); + await expect(tx1) + .to.emit(dataProtectorSharingContract, 'Transfer') + .withArgs(addr1.address, ethers.ZeroAddress, collectionTokenId); + + // Check that the collection has been deleted + await expect(dataProtectorSharingContract.ownerOf(collectionTokenId)) + .to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ERC721NonexistentToken', + ) + .withArgs(collectionTokenId); + }); + + it('should revert if a collection have available subscription', async () => { + const { dataProtectorSharingContract, pocoContract, collectionTokenId, addr1, addr2 } = + await loadFixture(createCollection); + + const subscriptionParams = { + price: 1, // en nRLC + duration: 1_500, + }; + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + + await expect( + dataProtectorSharingContract.connect(addr1).burn(collectionTokenId), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'OnGoingCollectionSubscriptions', + ); + }); + + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + collectionTokenId, + addr2: notCollectionOwner, + } = await loadFixture(createCollection); + await expect( + dataProtectorSharingContract.connect(notCollectionOwner).burn(collectionTokenId), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ERC721InsufficientApproval', + ); + }); + + it('should revert if the collection is not empty', async () => { + const { dataProtectorSharingContract, collectionTokenId, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + + await expect( + dataProtectorSharingContract.connect(addr1).burn(collectionTokenId), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'CollectionNotEmpty'); + }); }); - it('should revert if protectedData is rented', async () => { - const { dataProtectorSharingContract, pocoContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - const rentingParams = { - price: 1, // in nRLC - duration: 1_500, - }; - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - await pocoContract.approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); - await pocoContract.deposit({ - value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.rentProtectedData(protectedDataAddress, rentingParams); - - await expect( - dataProtectorSharingContract.connect(addr1).removeProtectedDataFromCollection(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataCurrentlyBeingRented'); + describe('addProtectedDataToCollection()', () => { + it('should add protectedData to a collection', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + collectionTokenId, + addOnlyAppWhitelistContractAddress, + tx, + } = await loadFixture(addProtectedDataToCollection); + + await expect(tx) + .to.emit(dataProtectorSharingContract, 'ProtectedDataTransfer') + .withArgs( + protectedDataAddress, + collectionTokenId, + 0, + addOnlyAppWhitelistContractAddress, + ); + }); + + it('Should revert if someone tries to add a protectedData that is not their own to a collection', async () => { + const { + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + collectionTokenId, + addr1: collectionOwner, + addr2: notCollectionOwner, + } = await loadFixture(createCollection); + + const newAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( + notCollectionOwner.address, + ); + const transactionReceipt = await newAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistContractAddress = ethers.getAddress( + ethers.toBeHex(specificEventForPreviousTx.args?.tokenId), + ); + const protectedDataAddress = await createDatasetFor(notCollectionOwner.address, rpcURL); + const registry = await ethers.getContractAt( + 'IRegistry', + '0x799daa22654128d0c64d5b79eac9283008158730', + ); + const protectedDataId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); + await registry + .connect(notCollectionOwner) + .approve(await dataProtectorSharingContract.getAddress(), protectedDataId); + await expect( + dataProtectorSharingContract + .connect(collectionOwner) + .addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'NotAnOwnerOrApprovedOperator', + ); + }); + + it('should revert if the user is not the collection owner', async () => { + const { + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + collectionTokenId, + addr2: notCollectionOwner, + } = await loadFixture(createCollection); + + const newAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist( + notCollectionOwner.address, + ); + const transactionReceipt = await newAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistContractAddress = ethers.getAddress( + ethers.toBeHex(specificEventForPreviousTx.args?.tokenId), + ); + const protectedDataAddress = await createDatasetFor(notCollectionOwner.address, rpcURL); + const registry = await ethers.getContractAt( + 'IRegistry', + '0x799daa22654128d0c64d5b79eac9283008158730', + ); + const protectedDataId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); + await registry + .connect(notCollectionOwner) + .approve(await dataProtectorSharingContract.getAddress(), protectedDataId); + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); + + it("should revert if protectedData's owner didn't approve the ProtectedDataSharing contract", async () => { + const { + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + collectionTokenId, + addr1, + } = await loadFixture(createCollection); + + const newAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAppWhitelistTx.wait(); + const specificEventForPreviousTx = getEventFromLogs( + 'Transfer', + transactionReceipt.logs, + { + strict: true, + }, + ); + const addOnlyAppWhitelistContractAddress = ethers.getAddress( + ethers.toBeHex(specificEventForPreviousTx.args?.tokenId), + ); + + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + const tx = dataProtectorSharingContract + .connect(addr1) + .addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ); + + // this revert error come from the DatasetRegistry + await expect(tx).to.be.revertedWith( + 'ERC721: transfer caller is not owner nor approved', + ); + }); + + it('should revert if addOnlyAppWhitelist Contract is not registered in the addOnlyAppWhitelistRegistry', async () => { + const { dataProtectorSharingContract, collectionTokenId, addr1 } = + await loadFixture(createCollection); + + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + const tx = dataProtectorSharingContract + .connect(addr1) + .addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + ethers.ZeroAddress, + ); + + await expect(tx).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ERC721NonexistentToken', + ); + }); }); - it('should revert if protectedData is in subscription and collection has ongoing subscriptions', async () => { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - const subscriptionParams = { - price: 1, - duration: 15, - }; - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - await dataProtectorSharingContract.connect(addr1).setProtectedDataToSubscription(protectedDataAddress); - await pocoContract.approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.subscribeToCollection(collectionTokenId, subscriptionParams); - - await expect( - dataProtectorSharingContract.connect(addr1).removeProtectedDataFromCollection(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'OnGoingCollectionSubscriptions'); + describe('removeProtectedDataFromCollection()', () => { + it('should remove protectedData from a collection', async () => { + const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = + await loadFixture(addProtectedDataToCollection); + + const tx = dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromCollection(protectedDataAddress); + + await expect(tx) + .to.emit(dataProtectorSharingContract, 'ProtectedDataTransfer') + .withArgs(protectedDataAddress, 0, collectionTokenId, ethers.ZeroAddress); + }); + + it('should revert if the user does not own the collection', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr2 } = await loadFixture( + addProtectedDataToCollection, + ); + + const tx = dataProtectorSharingContract + .connect(addr2) + .removeProtectedDataFromCollection(protectedDataAddress); + + await expect(tx).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'NotCollectionOperator', + ); + }); + + it('should revert if protectedData is not in the collection', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + const tx = dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromCollection(protectedDataAddress); + + await expect(tx).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ERC721NonexistentToken', + ); + }); + + it('should revert if protectedData is rented', async () => { + const { dataProtectorSharingContract, pocoContract, protectedDataAddress, addr1 } = + await loadFixture(addProtectedDataToCollection); + + const rentingParams = { + price: 1, // in nRLC + duration: 1_500, + }; + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + await pocoContract.approve( + await dataProtectorSharingContract.getAddress(), + rentingParams.price, + ); + await pocoContract.deposit({ + value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract.rentProtectedData( + protectedDataAddress, + rentingParams, + ); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromCollection(protectedDataAddress), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ProtectedDataCurrentlyBeingRented', + ); + }); + + it('should revert if protectedData is in subscription and collection has ongoing subscriptions', async () => { + const { + dataProtectorSharingContract, + pocoContract, + collectionTokenId, + protectedDataAddress, + addr1, + } = await loadFixture(addProtectedDataToCollection); + + const subscriptionParams = { + price: 1, + duration: 15, + }; + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToSubscription(protectedDataAddress); + await pocoContract.approve( + await dataProtectorSharingContract.getAddress(), + subscriptionParams.price, + ); + await pocoContract.deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract.subscribeToCollection( + collectionTokenId, + subscriptionParams, + ); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromCollection(protectedDataAddress), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'OnGoingCollectionSubscriptions', + ); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/consumeProtectedData.test.js b/packages/sharing-smart-contract/test/e2e/consumeProtectedData.test.js index 04ce45510..686dc20bf 100644 --- a/packages/sharing-smart-contract/test/e2e/consumeProtectedData.test.js +++ b/packages/sharing-smart-contract/test/e2e/consumeProtectedData.test.js @@ -6,135 +6,177 @@ import { createCollectionWithProtectedDataRatableAndSubscribable } from './utils const { ethers } = pkg; describe('ConsumeProtectedData', () => { - describe('consumeProtectedData()', () => { - it('should create a deal on chain if an end user subscribe to the collection', async () => { - const { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - appAddress, - workerpoolOrder, - collectionTokenId, - subscriptionParams, - addr2, - } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); - - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.connect(addr2).subscribeToCollection(collectionTokenId, subscriptionParams); - - const tx = await dataProtectorSharingContract - .connect(addr2) - .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress); - await tx.wait(); - - expect(tx) - .to.emit(dataProtectorSharingContract, 'ProtectedDataConsumed') - .withArgs((_dealId, _protectedDataAddress, _mode) => { - assert.equal(_dealId.constructor, ethers.Bytes32, 'DealId should be of type bytes32'); - assert.equal(_protectedDataAddress, protectedDataAddress, 'DealId should be of type bytes32'); - assert.equal(_mode, 0, 'Mode should be SUBSCRIPTION (0)'); + describe('consumeProtectedData()', () => { + it('should create a deal on chain if an end user subscribe to the collection', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + collectionTokenId, + subscriptionParams, + addr2, + } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + + const tx = await dataProtectorSharingContract + .connect(addr2) + .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress); + await tx.wait(); + + expect(tx) + .to.emit(dataProtectorSharingContract, 'ProtectedDataConsumed') + .withArgs((_dealId, _protectedDataAddress, _mode) => { + assert.equal( + _dealId.constructor, + ethers.Bytes32, + 'DealId should be of type bytes32', + ); + assert.equal( + _protectedDataAddress, + protectedDataAddress, + 'DealId should be of type bytes32', + ); + assert.equal(_mode, 0, 'Mode should be SUBSCRIPTION (0)'); + }); }); - }); - it('should create a deal on chain if an end user rent a protectedData inside a collection', async () => { - const { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - appAddress, - workerpoolOrder, - rentingParams, - addr2, - } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); - - await pocoContract.connect(addr2).approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, rentingParams); - - const tx = await dataProtectorSharingContract - .connect(addr2) - .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress); - await tx.wait(); - expect(tx) - .to.emit(dataProtectorSharingContract, 'ProtectedDataConsumed') - .withArgs((_dealId, _protectedDataAddress, _mode) => { - assert.equal(_dealId.constructor, ethers.Bytes32, 'DealId should be of type bytes32'); - assert.equal(_protectedDataAddress, protectedDataAddress, 'DealId should be of type bytes32'); - assert.equal(_mode, 1, 'Mode should be RENTING (1)'); + it('should create a deal on chain if an end user rent a protectedData inside a collection', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + rentingParams, + addr2, + } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams); + + const tx = await dataProtectorSharingContract + .connect(addr2) + .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress); + await tx.wait(); + expect(tx) + .to.emit(dataProtectorSharingContract, 'ProtectedDataConsumed') + .withArgs((_dealId, _protectedDataAddress, _mode) => { + assert.equal( + _dealId.constructor, + ethers.Bytes32, + 'DealId should be of type bytes32', + ); + assert.equal( + _protectedDataAddress, + protectedDataAddress, + 'DealId should be of type bytes32', + ); + assert.equal(_mode, 1, 'Mode should be RENTING (1)'); + }); }); - }); - it('should revert if the user does not have an ongoing subscription or rental', async () => { - const { dataProtectorSharingContract, protectedDataAddress, appAddress, workerpoolOrder, addr2 } = - await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); - - await expect( - dataProtectorSharingContract - .connect(addr2) - .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NoValidRentalOrSubscription'); - }); + it('should revert if the user does not have an ongoing subscription or rental', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + addr2, + } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'NoValidRentalOrSubscription', + ); + }); - it('should revert if the user subscription is expired', async () => { - const { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - appAddress, - workerpoolOrder, - collectionTokenId, - subscriptionParams, - addr2, - } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); - - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.connect(addr2).subscribeToCollection(collectionTokenId, subscriptionParams); - // advance time to reach end of subscription and mine a new block - await time.increase(subscriptionParams.duration + 1); - - await expect( - dataProtectorSharingContract - .connect(addr2) - .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NoValidRentalOrSubscription'); - }); + it('should revert if the user subscription is expired', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + collectionTokenId, + subscriptionParams, + addr2, + } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + // advance time to reach end of subscription and mine a new block + await time.increase(subscriptionParams.duration + 1); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'NoValidRentalOrSubscription', + ); + }); - it('should revert if the user rental is expired', async () => { - const { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - appAddress, - workerpoolOrder, - rentingParams, - addr2, - } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); - - await pocoContract.connect(addr2).approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, rentingParams); - // advance time to reach end of renting and mine a new block - await time.increase(rentingParams.duration + 1); - - await expect( - dataProtectorSharingContract - .connect(addr2) - .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NoValidRentalOrSubscription'); + it('should revert if the user rental is expired', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + rentingParams, + addr2, + } = await loadFixture(createCollectionWithProtectedDataRatableAndSubscribable); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams); + // advance time to reach end of renting and mine a new block + await time.increase(rentingParams.duration + 1); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .consumeProtectedData(protectedDataAddress, workerpoolOrder, appAddress), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'NoValidRentalOrSubscription', + ); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/protectedDataSharing.test.js b/packages/sharing-smart-contract/test/e2e/protectedDataSharing.test.js index 6c7b81d40..796bd5d7f 100644 --- a/packages/sharing-smart-contract/test/e2e/protectedDataSharing.test.js +++ b/packages/sharing-smart-contract/test/e2e/protectedDataSharing.test.js @@ -7,12 +7,15 @@ import { deploySCFixture } from './utils/loadFixture.test.js'; const { ethers } = pkg; describe('ProtectedDataSharing', () => { - describe('AccessControl', () => { - it('should set the DEFAULT_ADMIN_ROLE to defaultAdmin', async () => { - const { dataProtectorSharingContract, owner, addr1 } = await loadFixture(deploySCFixture); - const DEFAULT_ADMIN_ROLE = ethers.toBeHex(0, 32); - expect(await dataProtectorSharingContract.hasRole(DEFAULT_ADMIN_ROLE, owner.address)).to.be.true; - expect(await dataProtectorSharingContract.hasRole(DEFAULT_ADMIN_ROLE, addr1.address)).to.be.false; + describe('AccessControl', () => { + it('should set the DEFAULT_ADMIN_ROLE to defaultAdmin', async () => { + const { dataProtectorSharingContract, owner, addr1 } = + await loadFixture(deploySCFixture); + const DEFAULT_ADMIN_ROLE = ethers.toBeHex(0, 32); + expect(await dataProtectorSharingContract.hasRole(DEFAULT_ADMIN_ROLE, owner.address)).to + .be.true; + expect(await dataProtectorSharingContract.hasRole(DEFAULT_ADMIN_ROLE, addr1.address)).to + .be.false; + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/renting.test.js b/packages/sharing-smart-contract/test/e2e/renting.test.js index ae81fc6e7..22540ea69 100644 --- a/packages/sharing-smart-contract/test/e2e/renting.test.js +++ b/packages/sharing-smart-contract/test/e2e/renting.test.js @@ -8,271 +8,355 @@ const { ethers } = pkg; const rpcURL = pkg.network.config.url; describe('Renting', () => { - const rentingParams = { - price: 1, // in nRLC - duration: 1_500, - }; - - describe('setProtectedDataToRenting()', () => { - it('should set protectedData for renting', async () => { - const { dataProtectorSharingContract, addr1, protectedDataAddress } = - await loadFixture(addProtectedDataToCollection); - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - const rentingParamsFromEvent = (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[4]; - expect(rentingParamsFromEvent[1]).to.greaterThan(0); + const rentingParams = { + price: 1, // in nRLC + duration: 1_500, + }; + + describe('setProtectedDataToRenting()', () => { + it('should set protectedData for renting', async () => { + const { dataProtectorSharingContract, addr1, protectedDataAddress } = await loadFixture( + addProtectedDataToCollection, + ); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + const rentingParamsFromEvent = ( + await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress) + )[4]; + expect(rentingParamsFromEvent[1]).to.greaterThan(0); + }); + + it('should emit ProtectedDataAddedForRenting event', async () => { + const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = + await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams), + ) + .to.emit(dataProtectorSharingContract, 'ProtectedDataAddedForRenting') + .withArgs(collectionTokenId, protectedDataAddress, [ + rentingParams.price, + rentingParams.duration, + ]); + }); + + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + addr2: notCollectionOwner, + protectedDataAddress, + } = await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .setProtectedDataToRenting(protectedDataAddress, rentingParams), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); + + it('should revert if the protectedData is not in the collection', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + }); + + it('should revert if the protectedData is available for sale', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, rentingParams.price); + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataForSale'); + }); }); - it('should emit ProtectedDataAddedForRenting event', async () => { - const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams), - ) - .to.emit(dataProtectorSharingContract, 'ProtectedDataAddedForRenting') - .withArgs(collectionTokenId, protectedDataAddress, [rentingParams.price, rentingParams.duration]); - }); - - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - addr2: notCollectionOwner, - protectedDataAddress, - } = await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract - .connect(notCollectionOwner) - .setProtectedDataToRenting(protectedDataAddress, rentingParams), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); - - it('should revert if the protectedData is not in the collection', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); - }); - - it('should revert if the protectedData is available for sale', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract - .connect(addr1) - .setProtectedDataForSale(protectedDataAddress, rentingParams.price); - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataForSale'); - }); - }); - - describe('removeProtectedDataFromRenting()', () => { - it('should remove protectedData from renting', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - await dataProtectorSharingContract.connect(addr1).removeProtectedDataFromRenting(protectedDataAddress); - - const rentingParamsContractState = ( - await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress) - )[4]; - expect(rentingParamsContractState[1]).to.equal(0); - }); - - it('should emit ProtectedDataRemovedFromRenting event', async () => { - const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - await expect(dataProtectorSharingContract.connect(addr1).removeProtectedDataFromRenting(protectedDataAddress)) - .to.emit(dataProtectorSharingContract, 'ProtectedDataRemovedFromRenting') - .withArgs(collectionTokenId, protectedDataAddress); - }); - - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - addr2: notCollectionOwner, - protectedDataAddress, - } = await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract.connect(notCollectionOwner).removeProtectedDataFromRenting(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); - - it('should revert if the protectedData is not in the collection', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - - await expect( - dataProtectorSharingContract.connect(addr1).removeProtectedDataFromRenting(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); - }); - }); - - describe('rentProtectedData()', () => { - it('should emit NewRental event', async () => { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - await pocoContract.connect(addr2).approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), - }); // value sent should be in wei - - const rentalTx = await dataProtectorSharingContract - .connect(addr2) - .rentProtectedData(protectedDataAddress, rentingParams); - const rentalReceipt = await rentalTx.wait(); - const blockTimestamp = (await ethers.provider.getBlock(rentalReceipt.blockNumber)).timestamp; - const expectedEndDate = blockTimestamp + rentingParams.duration; - - await expect(rentalReceipt) - .to.emit(dataProtectorSharingContract, 'NewRental') - .withArgs(collectionTokenId, protectedDataAddress, addr2.address, expectedEndDate); - }); - - it('should extends lastRentalExpiration if the rental ends after previous lastRentalExpiration', async () => { - const { dataProtectorSharingContract, protectedDataAddress, pocoContract, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price * 2); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits((rentingParams.price * 2).toString(), 'gwei'), - }); // value sent should be in wei - const firstRentalTx = await dataProtectorSharingContract - .connect(addr2) - .rentProtectedData(protectedDataAddress, rentingParams); - const firstRentalReceipt = await firstRentalTx.wait(); - const firstRentalBlockTimestamp = (await ethers.provider.getBlock(firstRentalReceipt.blockNumber)).timestamp; - const firstRentalEndDate = firstRentalBlockTimestamp + rentingParams.duration; - expect((await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2]).to.equal( - firstRentalEndDate, - ); - - const secondRentalTx = await dataProtectorSharingContract - .connect(addr2) - .rentProtectedData(protectedDataAddress, rentingParams); - const secondRentalReceipt = await secondRentalTx.wait(); - const secondRentalBlockTimestamp = (await ethers.provider.getBlock(secondRentalReceipt.blockNumber)).timestamp; - const secondRentalEndDate = secondRentalBlockTimestamp + rentingParams.duration; - expect((await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2]).to.equal( - secondRentalEndDate, - ); - }); - - it('should not extend lastRentalExpiration if the rental ends before previous lastRentalExpiration', async () => { - const { dataProtectorSharingContract, protectedDataAddress, pocoContract, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - const rentalDuration = 48 * 60 * 60; // 48h - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, { - price: rentingParams.price, - duration: rentalDuration, - }); - - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price * 2); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits((rentingParams.price * 2).toString(), 'gwei'), - }); // value sent should be in wei - const firstRentalTx = await dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, { - price: rentingParams.price, - duration: rentalDuration, - }); - const firstRentalReceipt = await firstRentalTx.wait(); - const firstRentalBlockTimestamp = (await ethers.provider.getBlock(firstRentalReceipt.blockNumber)).timestamp; - const firstRentalEndDate = firstRentalBlockTimestamp + rentalDuration; - expect((await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2]).to.equal( - firstRentalEndDate, - ); - - // update rental duration for next renters - const newRentalDuration = 24 * 60 * 60; // 24h - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, { - price: rentingParams.price, - duration: newRentalDuration, - }); - const secondRentalTx = await dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, { - price: rentingParams.price, - duration: newRentalDuration, - }); - const secondRentalReceipt = await secondRentalTx.wait(); - const secondRentalBlockTimestamp = (await ethers.provider.getBlock(secondRentalReceipt.blockNumber)).timestamp; - const secondRentalEndDate = secondRentalBlockTimestamp + newRentalDuration; - - // secondRental ends before firstRental - expect(firstRentalEndDate).to.be.greaterThan(secondRentalEndDate); - - expect((await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2]).to.equal( - firstRentalEndDate, - ); - }); - - it('should revert if the protectedData is not available for renting', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, rentingParams), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataNotAvailableForRenting'); - }); - - it('should revert if amount set is not the current protected data price', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - await expect( - dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, { - price: rentingParams.price * 2, - duration: rentingParams.duration, - }), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'InvalidRentingParams'); + describe('removeProtectedDataFromRenting()', () => { + it('should remove protectedData from renting', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + await dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromRenting(protectedDataAddress); + + const rentingParamsContractState = ( + await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress) + )[4]; + expect(rentingParamsContractState[1]).to.equal(0); + }); + + it('should emit ProtectedDataRemovedFromRenting event', async () => { + const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = + await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromRenting(protectedDataAddress), + ) + .to.emit(dataProtectorSharingContract, 'ProtectedDataRemovedFromRenting') + .withArgs(collectionTokenId, protectedDataAddress); + }); + + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + addr2: notCollectionOwner, + protectedDataAddress, + } = await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .removeProtectedDataFromRenting(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); + + it('should revert if the protectedData is not in the collection', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromRenting(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + }); }); - it('should make a rental with an approveAndCall', async () => { - const { - DataProtectorSharingFactory, - dataProtectorSharingContract, - pocoContract, - collectionTokenId, - protectedDataAddress, - addr1, - addr2, - } = await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), - }); // value sent should be in wei - const callData = DataProtectorSharingFactory.interface.encodeFunctionData('rentProtectedData', [ - protectedDataAddress, - rentingParams, - ]); - - const rentalTx = await pocoContract - .connect(addr2) - .approveAndCall(await dataProtectorSharingContract.getAddress(), rentingParams.price, callData); - const rentalReceipt = await rentalTx.wait(); - const blockTimestamp = (await ethers.provider.getBlock(rentalReceipt.blockNumber)).timestamp; - const expectedEndDate = blockTimestamp + rentingParams.duration; - - await expect(rentalReceipt) - .to.emit(dataProtectorSharingContract, 'NewRental') - .withArgs(collectionTokenId, protectedDataAddress, addr2.address, expectedEndDate); + describe('rentProtectedData()', () => { + it('should emit NewRental event', async () => { + const { + dataProtectorSharingContract, + pocoContract, + collectionTokenId, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), + }); // value sent should be in wei + + const rentalTx = await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams); + const rentalReceipt = await rentalTx.wait(); + const blockTimestamp = (await ethers.provider.getBlock(rentalReceipt.blockNumber)) + .timestamp; + const expectedEndDate = blockTimestamp + rentingParams.duration; + + await expect(rentalReceipt) + .to.emit(dataProtectorSharingContract, 'NewRental') + .withArgs(collectionTokenId, protectedDataAddress, addr2.address, expectedEndDate); + }); + + it('should extends lastRentalExpiration if the rental ends after previous lastRentalExpiration', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + pocoContract, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price * 2); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits((rentingParams.price * 2).toString(), 'gwei'), + }); // value sent should be in wei + const firstRentalTx = await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams); + const firstRentalReceipt = await firstRentalTx.wait(); + const firstRentalBlockTimestamp = ( + await ethers.provider.getBlock(firstRentalReceipt.blockNumber) + ).timestamp; + const firstRentalEndDate = firstRentalBlockTimestamp + rentingParams.duration; + expect( + (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2], + ).to.equal(firstRentalEndDate); + + const secondRentalTx = await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams); + const secondRentalReceipt = await secondRentalTx.wait(); + const secondRentalBlockTimestamp = ( + await ethers.provider.getBlock(secondRentalReceipt.blockNumber) + ).timestamp; + const secondRentalEndDate = secondRentalBlockTimestamp + rentingParams.duration; + expect( + (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2], + ).to.equal(secondRentalEndDate); + }); + + it('should not extend lastRentalExpiration if the rental ends before previous lastRentalExpiration', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + pocoContract, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + const rentalDuration = 48 * 60 * 60; // 48h + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, { + price: rentingParams.price, + duration: rentalDuration, + }); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price * 2); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits((rentingParams.price * 2).toString(), 'gwei'), + }); // value sent should be in wei + const firstRentalTx = await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, { + price: rentingParams.price, + duration: rentalDuration, + }); + const firstRentalReceipt = await firstRentalTx.wait(); + const firstRentalBlockTimestamp = ( + await ethers.provider.getBlock(firstRentalReceipt.blockNumber) + ).timestamp; + const firstRentalEndDate = firstRentalBlockTimestamp + rentalDuration; + expect( + (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2], + ).to.equal(firstRentalEndDate); + + // update rental duration for next renters + const newRentalDuration = 24 * 60 * 60; // 24h + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, { + price: rentingParams.price, + duration: newRentalDuration, + }); + const secondRentalTx = await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, { + price: rentingParams.price, + duration: newRentalDuration, + }); + const secondRentalReceipt = await secondRentalTx.wait(); + const secondRentalBlockTimestamp = ( + await ethers.provider.getBlock(secondRentalReceipt.blockNumber) + ).timestamp; + const secondRentalEndDate = secondRentalBlockTimestamp + newRentalDuration; + + // secondRental ends before firstRental + expect(firstRentalEndDate).to.be.greaterThan(secondRentalEndDate); + + expect( + (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[2], + ).to.equal(firstRentalEndDate); + }); + + it('should revert if the protectedData is not available for renting', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr2 } = await loadFixture( + addProtectedDataToCollection, + ); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ProtectedDataNotAvailableForRenting', + ); + }); + + it('should revert if amount set is not the current protected data price', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1, addr2 } = + await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, { + price: rentingParams.price * 2, + duration: rentingParams.duration, + }), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'InvalidRentingParams'); + }); + + it('should make a rental with an approveAndCall', async () => { + const { + DataProtectorSharingFactory, + dataProtectorSharingContract, + pocoContract, + collectionTokenId, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), + }); // value sent should be in wei + const callData = DataProtectorSharingFactory.interface.encodeFunctionData( + 'rentProtectedData', + [protectedDataAddress, rentingParams], + ); + + const rentalTx = await pocoContract + .connect(addr2) + .approveAndCall( + await dataProtectorSharingContract.getAddress(), + rentingParams.price, + callData, + ); + const rentalReceipt = await rentalTx.wait(); + const blockTimestamp = (await ethers.provider.getBlock(rentalReceipt.blockNumber)) + .timestamp; + const expectedEndDate = blockTimestamp + rentingParams.duration; + + await expect(rentalReceipt) + .to.emit(dataProtectorSharingContract, 'NewRental') + .withArgs(collectionTokenId, protectedDataAddress, addr2.address, expectedEndDate); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/sale.test.js b/packages/sharing-smart-contract/test/e2e/sale.test.js index 31aafc422..8cf160f2d 100644 --- a/packages/sharing-smart-contract/test/e2e/sale.test.js +++ b/packages/sharing-smart-contract/test/e2e/sale.test.js @@ -8,231 +8,336 @@ const { ethers } = pkg; const rpcURL = pkg.network.config.url; describe('Sale', () => { - const priceParam = 1; - - describe('setProtectedDataForSale()', () => { - it('should set the protectedData for sale', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); - - const saleParams = (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[5]; - expect(saleParams[0]).to.equal(true); - }); - - it('should emit ProtectedDataAddedForSale event', async () => { - const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam), - ) - .to.emit(dataProtectorSharingContract, 'ProtectedDataAddedForSale') - .withArgs(collectionTokenId, protectedDataAddress, priceParam); - }); - - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - protectedDataAddress, - addr2: notCollectionOwner, - } = await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract - .connect(notCollectionOwner) - .setProtectedDataForSale(protectedDataAddress, priceParam), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); - - it('should revert if the protectedData is not in the collection', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); - }); - - it('should revert if the protectedData is currently available in subscription', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - await dataProtectorSharingContract.connect(addr1).setProtectedDataToSubscription(protectedDataAddress); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataAvailableInSubscription'); - }); - - it('should revert if the protectedData is available for renting', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - const rentingParams = { - price: 1, // in nRLC - duration: 1_500, - }; - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataAvailableForRenting'); - }); - - it('should revert if the protectedData is currently rented', async () => { - const { dataProtectorSharingContract, pocoContract, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - - const rentingParams = { - price: 1, // in nRLC - duration: 1_500, - }; - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - - await pocoContract.connect(addr2).approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), - }); // value sent should be in wei - // start renting - await dataProtectorSharingContract.connect(addr2).rentProtectedData(protectedDataAddress, rentingParams); - - // remove from available for renting (ongoing rental are still valid) - await dataProtectorSharingContract.connect(addr1).removeProtectedDataFromRenting(protectedDataAddress); - - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataCurrentlyBeingRented'); - }); - }); - - describe('removeProtectedDataForSale()', () => { - it('should remove protectedData for sale', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - await dataProtectorSharingContract.connect(addr1).removeProtectedDataForSale(protectedDataAddress); - - const saleParams = (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[5]; - expect(saleParams[0]).to.equal(false); + const priceParam = 1; + + describe('setProtectedDataForSale()', () => { + it('should set the protectedData for sale', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); + + const saleParams = ( + await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress) + )[5]; + expect(saleParams[0]).to.equal(true); + }); + + it('should emit ProtectedDataAddedForSale event', async () => { + const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = + await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam), + ) + .to.emit(dataProtectorSharingContract, 'ProtectedDataAddedForSale') + .withArgs(collectionTokenId, protectedDataAddress, priceParam); + }); + + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + addr2: notCollectionOwner, + } = await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .setProtectedDataForSale(protectedDataAddress, priceParam), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); + + it('should revert if the protectedData is not in the collection', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + }); + + it('should revert if the protectedData is currently available in subscription', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToSubscription(protectedDataAddress); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ProtectedDataAvailableInSubscription', + ); + }); + + it('should revert if the protectedData is available for renting', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + const rentingParams = { + price: 1, // in nRLC + duration: 1_500, + }; + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ProtectedDataAvailableForRenting', + ); + }); + + it('should revert if the protectedData is currently rented', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + + const rentingParams = { + price: 1, // in nRLC + duration: 1_500, + }; + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), rentingParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(rentingParams.price.toString(), 'gwei'), + }); // value sent should be in wei + // start renting + await dataProtectorSharingContract + .connect(addr2) + .rentProtectedData(protectedDataAddress, rentingParams); + + // remove from available for renting (ongoing rental are still valid) + await dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromRenting(protectedDataAddress); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ProtectedDataCurrentlyBeingRented', + ); + }); }); - it('should emit ProtectedDataRemovedFromSale event', async () => { - const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); - - await expect(dataProtectorSharingContract.connect(addr1).removeProtectedDataForSale(protectedDataAddress)) - .to.emit(dataProtectorSharingContract, 'ProtectedDataRemovedFromSale') - .withArgs(collectionTokenId, protectedDataAddress); - }); - - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - protectedDataAddress, - addr2: notCollectionOwner, - } = await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract.connect(notCollectionOwner).removeProtectedDataForSale(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); - - it('should revert if the protectedData is not in the collection', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - - await expect( - dataProtectorSharingContract.connect(addr1).removeProtectedDataForSale(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); - }); - }); - - describe('buyProtectedData()', () => { - it('should transfer the protectedData to the buyer', async () => { - const { dataProtectorSharingContract, pocoContract, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); - await pocoContract.connect(addr2).approve(await dataProtectorSharingContract.getAddress(), priceParam); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(priceParam.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract - .connect(addr2) - .buyProtectedData(protectedDataAddress, addr2.address, priceParam); - const registry = await ethers.getContractAt('IRegistry', '0x799daa22654128d0c64d5b79eac9283008158730'); - const protectedDataTokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - expect(await registry.ownerOf(protectedDataTokenId)).to.equal(addr2.address); - }); - - it('should emit ProtectedDataSold event', async () => { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); - await pocoContract.connect(addr2).approve(await dataProtectorSharingContract.getAddress(), priceParam); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(priceParam.toString(), 'gwei'), - }); // value sent should be in wei - - await expect( - dataProtectorSharingContract.connect(addr2).buyProtectedData(protectedDataAddress, addr2.address, priceParam), - ) - .to.emit(dataProtectorSharingContract, 'ProtectedDataSold') - .withArgs(collectionTokenId, addr2.address, protectedDataAddress); - }); - - it('should revert if the protectedData is not for sale', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract.connect(addr2).buyProtectedData(protectedDataAddress, addr2.address, priceParam), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataNotForSale'); - }); - - it('should revert if amount set is not the current protected data price', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); - - await expect( - dataProtectorSharingContract - .connect(addr2) - .buyProtectedData(protectedDataAddress, addr2.address, priceParam * 2), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'InvalidPriceForPurchase'); + describe('removeProtectedDataForSale()', () => { + it('should remove protectedData for sale', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); + await dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataForSale(protectedDataAddress); + + const saleParams = ( + await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress) + )[5]; + expect(saleParams[0]).to.equal(false); + }); + + it('should emit ProtectedDataRemovedFromSale event', async () => { + const { dataProtectorSharingContract, collectionTokenId, protectedDataAddress, addr1 } = + await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataForSale(protectedDataAddress), + ) + .to.emit(dataProtectorSharingContract, 'ProtectedDataRemovedFromSale') + .withArgs(collectionTokenId, protectedDataAddress); + }); + + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + addr2: notCollectionOwner, + } = await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .removeProtectedDataForSale(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); + + it('should revert if the protectedData is not in the collection', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataForSale(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + }); }); - it('should make a buy with an approveAndCall', async () => { - const { - DataProtectorSharingFactory, - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - addr1, - addr2, - } = await loadFixture(addProtectedDataToCollection); - - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); - - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(priceParam.toString(), 'gwei'), - }); // value sent should be in wei - const callData = DataProtectorSharingFactory.interface.encodeFunctionData('buyProtectedData', [ - protectedDataAddress, - addr2.address, - priceParam, - ]); - - await pocoContract - .connect(addr2) - .approveAndCall(await dataProtectorSharingContract.getAddress(), priceParam, callData); - - const registry = await ethers.getContractAt('IRegistry', '0x799daa22654128d0c64d5b79eac9283008158730'); - const protectedDataTokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - expect(await registry.ownerOf(protectedDataTokenId)).to.equal(addr2.address); + describe('buyProtectedData()', () => { + it('should transfer the protectedData to the buyer', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), priceParam); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(priceParam.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .buyProtectedData(protectedDataAddress, addr2.address, priceParam); + const registry = await ethers.getContractAt( + 'IRegistry', + '0x799daa22654128d0c64d5b79eac9283008158730', + ); + const protectedDataTokenId = ethers + .getBigInt(protectedDataAddress.toLowerCase()) + .toString(); + expect(await registry.ownerOf(protectedDataTokenId)).to.equal(addr2.address); + }); + + it('should emit ProtectedDataSold event', async () => { + const { + dataProtectorSharingContract, + pocoContract, + collectionTokenId, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), priceParam); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(priceParam.toString(), 'gwei'), + }); // value sent should be in wei + + await expect( + dataProtectorSharingContract + .connect(addr2) + .buyProtectedData(protectedDataAddress, addr2.address, priceParam), + ) + .to.emit(dataProtectorSharingContract, 'ProtectedDataSold') + .withArgs(collectionTokenId, addr2.address, protectedDataAddress); + }); + + it('should revert if the protectedData is not for sale', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr2 } = await loadFixture( + addProtectedDataToCollection, + ); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .buyProtectedData(protectedDataAddress, addr2.address, priceParam), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'ProtectedDataNotForSale', + ); + }); + + it('should revert if amount set is not the current protected data price', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1, addr2 } = + await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .buyProtectedData(protectedDataAddress, addr2.address, priceParam * 2), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'InvalidPriceForPurchase', + ); + }); + + it('should make a buy with an approveAndCall', async () => { + const { + DataProtectorSharingFactory, + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); + + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(priceParam.toString(), 'gwei'), + }); // value sent should be in wei + const callData = DataProtectorSharingFactory.interface.encodeFunctionData( + 'buyProtectedData', + [protectedDataAddress, addr2.address, priceParam], + ); + + await pocoContract + .connect(addr2) + .approveAndCall( + await dataProtectorSharingContract.getAddress(), + priceParam, + callData, + ); + + const registry = await ethers.getContractAt( + 'IRegistry', + '0x799daa22654128d0c64d5b79eac9283008158730', + ); + const protectedDataTokenId = ethers + .getBigInt(protectedDataAddress.toLowerCase()) + .toString(); + expect(await registry.ownerOf(protectedDataTokenId)).to.equal(addr2.address); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/subscription.test.js b/packages/sharing-smart-contract/test/e2e/subscription.test.js index 62174a2dc..2fd809799 100644 --- a/packages/sharing-smart-contract/test/e2e/subscription.test.js +++ b/packages/sharing-smart-contract/test/e2e/subscription.test.js @@ -3,390 +3,466 @@ import { expect } from 'chai'; import pkg from 'hardhat'; import { createDatasetFor } from '../../scripts/singleFunction/dataset.js'; import { - addProtectedDataToCollection, - createCollection, - setProtectedDataToSubscription, + addProtectedDataToCollection, + createCollection, + setProtectedDataToSubscription, } from './utils/loadFixture.test.js'; const { ethers } = pkg; const rpcURL = pkg.network.config.url; describe('Subscription', () => { - const subscriptionParams = { - price: 1, // en nRLC - duration: 1_500, - }; - - function subscriptionParamsToArray(params) { - return [params.price, params.duration]; - } - - describe('subscribeToCollection()', () => { - it('should add the user to the subscribers', async () => { - const { dataProtectorSharingContract, pocoContract, addr1, addr2, collectionTokenId } = - await loadFixture(createCollection); - - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - - const collectionTokenIdOwner = await dataProtectorSharingContract.ownerOf(collectionTokenId); - const collectionOwnerBalanceBefore = await pocoContract.balanceOf(collectionTokenIdOwner); - - const subscriberBalanceBefore = await ethers.provider.getBalance(addr2.address); - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - const subscriptionTx = await dataProtectorSharingContract - .connect(addr2) - .subscribeToCollection(collectionTokenId, subscriptionParams); - const subscriptionReceipt = await subscriptionTx.wait(); - - const blockTimestamp = (await ethers.provider.getBlock(subscriptionReceipt.blockNumber)).timestamp; - const expectedEndDate = blockTimestamp + subscriptionParams.duration; - - const subscriptionEndDate = await dataProtectorSharingContract.getCollectionSubscriber( - collectionTokenId, - addr2.address, - ); - const subscriberBalanceAfter = await ethers.provider.getBalance(addr2.address); - - const collectionOwnerBalanceAfter = await pocoContract.balanceOf(collectionTokenIdOwner); - - expect(collectionOwnerBalanceAfter).to.equal( - collectionOwnerBalanceBefore + ethers.getBigInt(subscriptionParams.price), - ); - expect(ethers.toNumber(subscriptionEndDate)).to.equal(expectedEndDate); - // there is no transaction fees on bellecour - expect(subscriberBalanceAfter).to.equal( - subscriberBalanceBefore - ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - ); - await expect(subscriptionReceipt) - .to.emit(dataProtectorSharingContract, 'NewSubscription') - .withArgs(collectionTokenId, addr2.address, expectedEndDate); - }); - - it('should emit NewSubscription event', async () => { - const { dataProtectorSharingContract, pocoContract, addr1, addr2, collectionTokenId } = - await loadFixture(createCollection); - - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - const subscriptionTx = await dataProtectorSharingContract - .connect(addr2) - .subscribeToCollection(collectionTokenId, subscriptionParams); - const subscriptionReceipt = await subscriptionTx.wait(); - - const blockTimestamp = (await ethers.provider.getBlock(subscriptionReceipt.blockNumber)).timestamp; - const expectedEndDate = blockTimestamp + subscriptionParams.duration; - - await expect(subscriptionTx) - .to.emit(dataProtectorSharingContract, 'NewSubscription') - .withArgs(collectionTokenId, addr2.address, expectedEndDate); - }); - - it('should revert if subscription parameters are not set', async () => { - const { dataProtectorSharingContract, addr2, collectionTokenId } = await loadFixture(createCollection); - - await expect( - dataProtectorSharingContract.connect(addr2).subscribeToCollection(collectionTokenId, subscriptionParams), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'InvalidSubscriptionParams'); - }); - - it('should revert if amount set is not the current collection price', async () => { - const { dataProtectorSharingContract, addr1, addr2, collectionTokenId } = await loadFixture(createCollection); - - const SubscriptionOptionsTx = await dataProtectorSharingContract - .connect(addr1) - .setSubscriptionParams(collectionTokenId, subscriptionParams); - await SubscriptionOptionsTx.wait(); - - const subscriberBalanceBefore = await ethers.provider.getBalance(addr1.address); - const subscriptionTx = dataProtectorSharingContract.connect(addr2).subscribeToCollection(collectionTokenId, { - price: subscriptionParams.price * 2, - duration: subscriptionParams.duration, - }); - await expect(subscriptionTx).to.be.revertedWithCustomError( - dataProtectorSharingContract, - 'InvalidSubscriptionParams', - ); - const subscriberBalanceAfter = await ethers.provider.getBalance(addr1.address); - - // there is no transaction fees on bellecour - expect(subscriberBalanceAfter).to.equal(subscriberBalanceBefore); - }); - - it('should extend lastSubscriptionExpiration when a user take a subscription ending after the previous lastSubscriptionExpiration', async () => { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, addr1, addr2 } = - await loadFixture(createCollection); - - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price * 2); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits((subscriptionParams.price * 2).toString(), 'gwei'), - }); // value sent should be in wei - const firstSubscriptionTx = await dataProtectorSharingContract - .connect(addr2) - .subscribeToCollection(collectionTokenId, subscriptionParams); - const firstSubscriptionReceipt = await firstSubscriptionTx.wait(); - const firstSubscriptionBlockTimestamp = (await ethers.provider.getBlock(firstSubscriptionReceipt.blockNumber)) - .timestamp; - // extends lastSubscriptionExpiration - expect((await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1]).to.be.equal( - firstSubscriptionBlockTimestamp + subscriptionParams.duration, - ); - - const secondSubscriptionTx = await dataProtectorSharingContract - .connect(addr2) - .subscribeToCollection(collectionTokenId, subscriptionParams); - const secondSubscriptionReceipt = await secondSubscriptionTx.wait(); - const secondSubscriptionBlockTimestamp = (await ethers.provider.getBlock(secondSubscriptionReceipt.blockNumber)) - .timestamp; - // extends lastSubscriptionExpiration - expect((await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1]).to.be.equal( - secondSubscriptionBlockTimestamp + subscriptionParams.duration, - ); - }); + const subscriptionParams = { + price: 1, // en nRLC + duration: 1_500, + }; + + function subscriptionParamsToArray(params) { + return [params.price, params.duration]; + } + + describe('subscribeToCollection()', () => { + it('should add the user to the subscribers', async () => { + const { dataProtectorSharingContract, pocoContract, addr1, addr2, collectionTokenId } = + await loadFixture(createCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + + const collectionTokenIdOwner = + await dataProtectorSharingContract.ownerOf(collectionTokenId); + const collectionOwnerBalanceBefore = + await pocoContract.balanceOf(collectionTokenIdOwner); + + const subscriberBalanceBefore = await ethers.provider.getBalance(addr2.address); + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + const subscriptionTx = await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + const subscriptionReceipt = await subscriptionTx.wait(); + + const blockTimestamp = (await ethers.provider.getBlock(subscriptionReceipt.blockNumber)) + .timestamp; + const expectedEndDate = blockTimestamp + subscriptionParams.duration; + + const subscriptionEndDate = await dataProtectorSharingContract.getCollectionSubscriber( + collectionTokenId, + addr2.address, + ); + const subscriberBalanceAfter = await ethers.provider.getBalance(addr2.address); + + const collectionOwnerBalanceAfter = + await pocoContract.balanceOf(collectionTokenIdOwner); + + expect(collectionOwnerBalanceAfter).to.equal( + collectionOwnerBalanceBefore + ethers.getBigInt(subscriptionParams.price), + ); + expect(ethers.toNumber(subscriptionEndDate)).to.equal(expectedEndDate); + // there is no transaction fees on bellecour + expect(subscriberBalanceAfter).to.equal( + subscriberBalanceBefore - + ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + ); + await expect(subscriptionReceipt) + .to.emit(dataProtectorSharingContract, 'NewSubscription') + .withArgs(collectionTokenId, addr2.address, expectedEndDate); + }); - it('should not extend lastSubscriptionExpiration when a user take a subscription ending before the previous lastSubscriptionExpiration', async () => { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, addr1, addr2 } = - await loadFixture(createCollection); - - const subscriptionDuration = 48 * 60 * 60; // 48h - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, { - price: subscriptionParams.price, - duration: subscriptionDuration, - }); - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price * 2); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits((subscriptionParams.price * 2).toString(), 'gwei'), - }); // value sent should be in wei - const firstSubscriptionTx = await dataProtectorSharingContract - .connect(addr2) - .subscribeToCollection(collectionTokenId, { - price: subscriptionParams.price, - duration: subscriptionDuration, + it('should emit NewSubscription event', async () => { + const { dataProtectorSharingContract, pocoContract, addr1, addr2, collectionTokenId } = + await loadFixture(createCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + const subscriptionTx = await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + const subscriptionReceipt = await subscriptionTx.wait(); + + const blockTimestamp = (await ethers.provider.getBlock(subscriptionReceipt.blockNumber)) + .timestamp; + const expectedEndDate = blockTimestamp + subscriptionParams.duration; + + await expect(subscriptionTx) + .to.emit(dataProtectorSharingContract, 'NewSubscription') + .withArgs(collectionTokenId, addr2.address, expectedEndDate); }); - const firstSubscriptionReceipt = await firstSubscriptionTx.wait(); - const firstSubscriptionBlockTimestamp = (await ethers.provider.getBlock(firstSubscriptionReceipt.blockNumber)) - .timestamp; - const firstSubscriptionEnd = firstSubscriptionBlockTimestamp + subscriptionDuration; - // extends lastSubscriptionExpiration - expect((await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1]).to.be.equal( - firstSubscriptionEnd, - ); - - // update subscription params for next subscribers - const newSubscriptionDuration = 24 * 60 * 60; // 24h - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, { - price: subscriptionParams.price, - duration: newSubscriptionDuration, - }); - - // subscribe with new subscription params - const secondSubscriptionTx = await dataProtectorSharingContract - .connect(addr2) - .subscribeToCollection(collectionTokenId, { - price: subscriptionParams.price, - duration: newSubscriptionDuration, + + it('should revert if subscription parameters are not set', async () => { + const { dataProtectorSharingContract, addr2, collectionTokenId } = + await loadFixture(createCollection); + + await expect( + dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'InvalidSubscriptionParams', + ); }); - const secondSubscriptionReceipt = await secondSubscriptionTx.wait(); - const secondSubscriptionBlockTimestamp = (await ethers.provider.getBlock(secondSubscriptionReceipt.blockNumber)) - .timestamp; - const secondSubscriptionEnd = secondSubscriptionBlockTimestamp + newSubscriptionDuration; - - // secondSubscription ends before firstSubscription - expect(firstSubscriptionEnd).to.be.greaterThan(secondSubscriptionEnd); - - // secondSubscription does not extend lastSubscriptionExpiration - expect((await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1]).to.be.equal( - firstSubscriptionEnd, - ); - }); - it('should make a subscription with an approveAndCall', async () => { - const { - DataProtectorSharingFactory, - dataProtectorSharingContract, - pocoContract, - addr1, - addr2, - collectionTokenId, - } = await loadFixture(createCollection); - - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - const callData = DataProtectorSharingFactory.interface.encodeFunctionData('subscribeToCollection', [ - collectionTokenId, - subscriptionParams, - ]); - - const subscriptionTx = await pocoContract - .connect(addr2) - .approveAndCall(await dataProtectorSharingContract.getAddress(), subscriptionParams.price, callData); - const subscriptionReceipt = await subscriptionTx.wait(); - const blockTimestamp = (await ethers.provider.getBlock(subscriptionReceipt.blockNumber)).timestamp; - const expectedEndDate = blockTimestamp + subscriptionParams.duration; - - const subscriptionEndDate = await dataProtectorSharingContract.getCollectionSubscriber( - collectionTokenId, - addr2.address, - ); - expect(ethers.toNumber(subscriptionEndDate)).to.equal(expectedEndDate); - await expect(subscriptionReceipt) - .to.emit(dataProtectorSharingContract, 'NewSubscription') - .withArgs(collectionTokenId, addr2.address, expectedEndDate); - }); - }); + it('should revert if amount set is not the current collection price', async () => { + const { dataProtectorSharingContract, addr1, addr2, collectionTokenId } = + await loadFixture(createCollection); + + const SubscriptionOptionsTx = await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + await SubscriptionOptionsTx.wait(); + + const subscriberBalanceBefore = await ethers.provider.getBalance(addr1.address); + const subscriptionTx = dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, { + price: subscriptionParams.price * 2, + duration: subscriptionParams.duration, + }); + await expect(subscriptionTx).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'InvalidSubscriptionParams', + ); + const subscriberBalanceAfter = await ethers.provider.getBalance(addr1.address); + + // there is no transaction fees on bellecour + expect(subscriberBalanceAfter).to.equal(subscriberBalanceBefore); + }); - describe('setSubscriptionParams()', () => { - it('should set subscription parameters', async () => { - const { dataProtectorSharingContract, addr1, collectionTokenId } = await loadFixture(createCollection); + it('should extend lastSubscriptionExpiration when a user take a subscription ending after the previous lastSubscriptionExpiration', async () => { + const { dataProtectorSharingContract, pocoContract, collectionTokenId, addr1, addr2 } = + await loadFixture(createCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + await pocoContract + .connect(addr2) + .approve( + await dataProtectorSharingContract.getAddress(), + subscriptionParams.price * 2, + ); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits((subscriptionParams.price * 2).toString(), 'gwei'), + }); // value sent should be in wei + const firstSubscriptionTx = await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + const firstSubscriptionReceipt = await firstSubscriptionTx.wait(); + const firstSubscriptionBlockTimestamp = ( + await ethers.provider.getBlock(firstSubscriptionReceipt.blockNumber) + ).timestamp; + // extends lastSubscriptionExpiration + expect( + (await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1], + ).to.be.equal(firstSubscriptionBlockTimestamp + subscriptionParams.duration); + + const secondSubscriptionTx = await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + const secondSubscriptionReceipt = await secondSubscriptionTx.wait(); + const secondSubscriptionBlockTimestamp = ( + await ethers.provider.getBlock(secondSubscriptionReceipt.blockNumber) + ).timestamp; + // extends lastSubscriptionExpiration + expect( + (await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1], + ).to.be.equal(secondSubscriptionBlockTimestamp + subscriptionParams.duration); + }); - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - const retrievedParamsArray = (await dataProtectorSharingContract.collectionDetails(collectionTokenId))[2]; + it('should not extend lastSubscriptionExpiration when a user take a subscription ending before the previous lastSubscriptionExpiration', async () => { + const { dataProtectorSharingContract, pocoContract, collectionTokenId, addr1, addr2 } = + await loadFixture(createCollection); + + const subscriptionDuration = 48 * 60 * 60; // 48h + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, { + price: subscriptionParams.price, + duration: subscriptionDuration, + }); + await pocoContract + .connect(addr2) + .approve( + await dataProtectorSharingContract.getAddress(), + subscriptionParams.price * 2, + ); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits((subscriptionParams.price * 2).toString(), 'gwei'), + }); // value sent should be in wei + const firstSubscriptionTx = await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, { + price: subscriptionParams.price, + duration: subscriptionDuration, + }); + const firstSubscriptionReceipt = await firstSubscriptionTx.wait(); + const firstSubscriptionBlockTimestamp = ( + await ethers.provider.getBlock(firstSubscriptionReceipt.blockNumber) + ).timestamp; + const firstSubscriptionEnd = firstSubscriptionBlockTimestamp + subscriptionDuration; + // extends lastSubscriptionExpiration + expect( + (await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1], + ).to.be.equal(firstSubscriptionEnd); + + // update subscription params for next subscribers + const newSubscriptionDuration = 24 * 60 * 60; // 24h + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, { + price: subscriptionParams.price, + duration: newSubscriptionDuration, + }); + + // subscribe with new subscription params + const secondSubscriptionTx = await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, { + price: subscriptionParams.price, + duration: newSubscriptionDuration, + }); + const secondSubscriptionReceipt = await secondSubscriptionTx.wait(); + const secondSubscriptionBlockTimestamp = ( + await ethers.provider.getBlock(secondSubscriptionReceipt.blockNumber) + ).timestamp; + const secondSubscriptionEnd = + secondSubscriptionBlockTimestamp + newSubscriptionDuration; + + // secondSubscription ends before firstSubscription + expect(firstSubscriptionEnd).to.be.greaterThan(secondSubscriptionEnd); + + // secondSubscription does not extend lastSubscriptionExpiration + expect( + (await dataProtectorSharingContract.collectionDetails(collectionTokenId))[1], + ).to.be.equal(firstSubscriptionEnd); + }); - expect(subscriptionParamsToArray(subscriptionParams)).to.deep.equal(retrievedParamsArray); + it('should make a subscription with an approveAndCall', async () => { + const { + DataProtectorSharingFactory, + dataProtectorSharingContract, + pocoContract, + addr1, + addr2, + collectionTokenId, + } = await loadFixture(createCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + const callData = DataProtectorSharingFactory.interface.encodeFunctionData( + 'subscribeToCollection', + [collectionTokenId, subscriptionParams], + ); + + const subscriptionTx = await pocoContract + .connect(addr2) + .approveAndCall( + await dataProtectorSharingContract.getAddress(), + subscriptionParams.price, + callData, + ); + const subscriptionReceipt = await subscriptionTx.wait(); + const blockTimestamp = (await ethers.provider.getBlock(subscriptionReceipt.blockNumber)) + .timestamp; + const expectedEndDate = blockTimestamp + subscriptionParams.duration; + + const subscriptionEndDate = await dataProtectorSharingContract.getCollectionSubscriber( + collectionTokenId, + addr2.address, + ); + expect(ethers.toNumber(subscriptionEndDate)).to.equal(expectedEndDate); + await expect(subscriptionReceipt) + .to.emit(dataProtectorSharingContract, 'NewSubscription') + .withArgs(collectionTokenId, addr2.address, expectedEndDate); + }); }); - it('should emit NewSubscriptionParams event', async () => { - const { dataProtectorSharingContract, addr1, collectionTokenId } = await loadFixture(createCollection); + describe('setSubscriptionParams()', () => { + it('should set subscription parameters', async () => { + const { dataProtectorSharingContract, addr1, collectionTokenId } = + await loadFixture(createCollection); + + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + const retrievedParamsArray = ( + await dataProtectorSharingContract.collectionDetails(collectionTokenId) + )[2]; + + expect(subscriptionParamsToArray(subscriptionParams)).to.deep.equal( + retrievedParamsArray, + ); + }); - await expect( - dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams), - ) - .to.emit(dataProtectorSharingContract, 'NewSubscriptionParams') - .withArgs(collectionTokenId, subscriptionParamsToArray(subscriptionParams)); - }); - }); - - describe('setProtectedDataToSubscription()', () => { - it('should set protectedData to subscription', async () => { - const { - dataProtectorSharingContract, - protectedDataAddress, - collectionTokenId, - setProtectedDataToSubscriptionReceipt, - } = await loadFixture(setProtectedDataToSubscription); - - expect(setProtectedDataToSubscriptionReceipt) - .to.emit(dataProtectorSharingContract, 'ProtectedDataAddedForSubscription') - .withArgs(collectionTokenId, protectedDataAddress); - - const subscriptionDuration = (await dataProtectorSharingContract.collectionDetails(collectionTokenId))[2][1]; // duration should be greater than 0 - expect(ethers.toNumber(subscriptionDuration)).to.greaterThan(0); + it('should emit NewSubscriptionParams event', async () => { + const { dataProtectorSharingContract, addr1, collectionTokenId } = + await loadFixture(createCollection); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams), + ) + .to.emit(dataProtectorSharingContract, 'NewSubscriptionParams') + .withArgs(collectionTokenId, subscriptionParamsToArray(subscriptionParams)); + }); }); - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - protectedDataAddress, - addr2: notCollectionOwner, - } = await loadFixture(addProtectedDataToCollection); + describe('setProtectedDataToSubscription()', () => { + it('should set protectedData to subscription', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + collectionTokenId, + setProtectedDataToSubscriptionReceipt, + } = await loadFixture(setProtectedDataToSubscription); + + expect(setProtectedDataToSubscriptionReceipt) + .to.emit(dataProtectorSharingContract, 'ProtectedDataAddedForSubscription') + .withArgs(collectionTokenId, protectedDataAddress); + + const subscriptionDuration = ( + await dataProtectorSharingContract.collectionDetails(collectionTokenId) + )[2][1]; // duration should be greater than 0 + expect(ethers.toNumber(subscriptionDuration)).to.greaterThan(0); + }); - await expect( - dataProtectorSharingContract.connect(notCollectionOwner).setProtectedDataToSubscription(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + addr2: notCollectionOwner, + } = await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .setProtectedDataToSubscription(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); - it('should revert if trying to set protectedData not own by the collection contract', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + it('should revert if trying to set protectedData not own by the collection contract', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataToSubscription(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); - }); + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToSubscription(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + }); - it('should revert if trying to set protectedData to Subscription available for sale', async () => { - const { dataProtectorSharingContract, protectedDataAddress, addr1 } = - await loadFixture(addProtectedDataToCollection); + it('should revert if trying to set protectedData to Subscription available for sale', async () => { + const { dataProtectorSharingContract, protectedDataAddress, addr1 } = await loadFixture( + addProtectedDataToCollection, + ); - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, 1); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, 1); - await expect( - dataProtectorSharingContract.connect(addr1).setProtectedDataToSubscription(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataForSale'); + await expect( + dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToSubscription(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ProtectedDataForSale'); + }); }); - }); - - describe('removeProtectedDataFromSubscription()', () => { - it('should remove protectedData from subscription', async () => { - const { dataProtectorSharingContract, protectedDataAddress, collectionTokenId, addr1 } = - await loadFixture(setProtectedDataToSubscription); - const removeProtectedDataToSubscriptionTx = await dataProtectorSharingContract - .connect(addr1) - .removeProtectedDataFromSubscription(protectedDataAddress); - const removeProtectedDataToSubscriptionReceipt = await removeProtectedDataToSubscriptionTx.wait(); - - expect(removeProtectedDataToSubscriptionReceipt) - .to.emit(dataProtectorSharingContract, 'ProtectedDataRemovedFromSubscription') - .withArgs(collectionTokenId, protectedDataAddress); - - const isInSubscription = (await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress))[3]; - expect(isInSubscription).to.be.false; - }); + describe('removeProtectedDataFromSubscription()', () => { + it('should remove protectedData from subscription', async () => { + const { dataProtectorSharingContract, protectedDataAddress, collectionTokenId, addr1 } = + await loadFixture(setProtectedDataToSubscription); + + const removeProtectedDataToSubscriptionTx = await dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromSubscription(protectedDataAddress); + const removeProtectedDataToSubscriptionReceipt = + await removeProtectedDataToSubscriptionTx.wait(); + + expect(removeProtectedDataToSubscriptionReceipt) + .to.emit(dataProtectorSharingContract, 'ProtectedDataRemovedFromSubscription') + .withArgs(collectionTokenId, protectedDataAddress); + + const isInSubscription = ( + await dataProtectorSharingContract.protectedDataDetails(protectedDataAddress) + )[3]; + expect(isInSubscription).to.be.false; + }); - it('should revert if the user does not own the collection', async () => { - const { - dataProtectorSharingContract, - protectedDataAddress, - addr2: notCollectionOwner, - } = await loadFixture(addProtectedDataToCollection); - - await expect( - dataProtectorSharingContract - .connect(notCollectionOwner) - .removeProtectedDataFromSubscription(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); - }); + it('should revert if the user does not own the collection', async () => { + const { + dataProtectorSharingContract, + protectedDataAddress, + addr2: notCollectionOwner, + } = await loadFixture(addProtectedDataToCollection); + + await expect( + dataProtectorSharingContract + .connect(notCollectionOwner) + .removeProtectedDataFromSubscription(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'NotCollectionOperator'); + }); - it('should revert if the protectedData is not in the collection', async () => { - const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + it('should revert if the protectedData is not in the collection', async () => { + const { dataProtectorSharingContract, addr1 } = await loadFixture(createCollection); + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - await expect( - dataProtectorSharingContract.connect(addr1).removeProtectedDataFromSubscription(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); - }); + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromSubscription(protectedDataAddress), + ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'ERC721NonexistentToken'); + }); - it('should revert if trying to remove protectedData with ongoing subscriptions for the collection', async () => { - const { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - collectionTokenId, - subscriptionParams, - addr1, - addr2, - } = await loadFixture(setProtectedDataToSubscription); - - await pocoContract - .connect(addr2) - .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); - await pocoContract.connect(addr2).deposit({ - value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), - }); // value sent should be in wei - await dataProtectorSharingContract.connect(addr2).subscribeToCollection(collectionTokenId, subscriptionParams); - - await expect( - dataProtectorSharingContract.connect(addr1).removeProtectedDataFromSubscription(protectedDataAddress), - ).to.be.revertedWithCustomError(dataProtectorSharingContract, 'OnGoingCollectionSubscriptions'); + it('should revert if trying to remove protectedData with ongoing subscriptions for the collection', async () => { + const { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + collectionTokenId, + subscriptionParams, + addr1, + addr2, + } = await loadFixture(setProtectedDataToSubscription); + + await pocoContract + .connect(addr2) + .approve(await dataProtectorSharingContract.getAddress(), subscriptionParams.price); + await pocoContract.connect(addr2).deposit({ + value: ethers.parseUnits(subscriptionParams.price.toString(), 'gwei'), + }); // value sent should be in wei + await dataProtectorSharingContract + .connect(addr2) + .subscribeToCollection(collectionTokenId, subscriptionParams); + + await expect( + dataProtectorSharingContract + .connect(addr1) + .removeProtectedDataFromSubscription(protectedDataAddress), + ).to.be.revertedWithCustomError( + dataProtectorSharingContract, + 'OnGoingCollectionSubscriptions', + ); + }); }); - }); }); diff --git a/packages/sharing-smart-contract/test/e2e/utils/loadFixture.test.js b/packages/sharing-smart-contract/test/e2e/utils/loadFixture.test.js index 400103628..d0e668262 100644 --- a/packages/sharing-smart-contract/test/e2e/utils/loadFixture.test.js +++ b/packages/sharing-smart-contract/test/e2e/utils/loadFixture.test.js @@ -4,259 +4,307 @@ import pkg from 'hardhat'; import { DATASET_REGISTRY_ADDRESS, POCO_ADDRESS } from '../../../config/config.js'; import { createAppFor } from '../../../scripts/singleFunction/app.js'; import { createDatasetFor } from '../../../scripts/singleFunction/dataset.js'; -import { createWorkerpool, createWorkerpoolOrder } from '../../../scripts/singleFunction/workerpool.js'; +import { + createWorkerpool, + createWorkerpoolOrder, +} from '../../../scripts/singleFunction/workerpool.js'; import { getEventFromLogs } from './utils.js'; const { ethers, upgrades } = pkg; const rpcURL = pkg.network.config.url; export async function deploySCFixture() { - const [owner, addr1, addr2, addr3] = await ethers.getSigners(); + const [owner, addr1, addr2, addr3] = await ethers.getSigners(); - // AddOnlyAppWhitelist - const AddOnlyAppWhitelistRegistryFactory = await ethers.getContractFactory('AddOnlyAppWhitelistRegistry'); - const addOnlyAppWhitelistRegistryContract = await upgrades.deployProxy(AddOnlyAppWhitelistRegistryFactory, { - kind: 'transparent', - }); - await addOnlyAppWhitelistRegistryContract.waitForDeployment(); - const addOnlyAppWhitelistRegistryAddress = await addOnlyAppWhitelistRegistryContract.getAddress(); + // AddOnlyAppWhitelist + const AddOnlyAppWhitelistRegistryFactory = await ethers.getContractFactory( + 'AddOnlyAppWhitelistRegistry', + ); + const addOnlyAppWhitelistRegistryContract = await upgrades.deployProxy( + AddOnlyAppWhitelistRegistryFactory, + { + kind: 'transparent', + }, + ); + await addOnlyAppWhitelistRegistryContract.waitForDeployment(); + const addOnlyAppWhitelistRegistryAddress = + await addOnlyAppWhitelistRegistryContract.getAddress(); - // DataProtectorSharing - const DataProtectorSharingFactory = await ethers.getContractFactory('DataProtectorSharing'); - const dataProtectorSharingContract = await upgrades.deployProxy(DataProtectorSharingFactory, { - kind: 'transparent', - constructorArgs: [POCO_ADDRESS, DATASET_REGISTRY_ADDRESS, addOnlyAppWhitelistRegistryAddress], - }); - await dataProtectorSharingContract.waitForDeployment(); + // DataProtectorSharing + const DataProtectorSharingFactory = await ethers.getContractFactory('DataProtectorSharing'); + const dataProtectorSharingContract = await upgrades.deployProxy(DataProtectorSharingFactory, { + kind: 'transparent', + constructorArgs: [ + POCO_ADDRESS, + DATASET_REGISTRY_ADDRESS, + addOnlyAppWhitelistRegistryAddress, + ], + }); + await dataProtectorSharingContract.waitForDeployment(); - // Poco - const pocoContract = await ethers.getContractAt('IExecPocoDelegate', POCO_ADDRESS); + // Poco + const pocoContract = await ethers.getContractAt('IPoCo', POCO_ADDRESS); - return { - DataProtectorSharingFactory, - dataProtectorSharingContract, - addOnlyAppWhitelistRegistryContract, - pocoContract, - owner, - addr1, - addr2, - addr3, - }; + return { + DataProtectorSharingFactory, + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + pocoContract, + owner, + addr1, + addr2, + addr3, + }; } async function createAssets(dataProtectorSharingContract, addr1) { - const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); - const appAddress = await createAppFor(await dataProtectorSharingContract.getAddress(), rpcURL); - const { iexecWorkerpoolOwner, workerpoolAddress } = await createWorkerpool(rpcURL); - const workerpoolOrder = await createWorkerpoolOrder(iexecWorkerpoolOwner, workerpoolAddress); - return { - dataProtectorSharingContract, - protectedDataAddress, - appAddress, - workerpoolOrder, - addr1, - }; + const protectedDataAddress = await createDatasetFor(addr1.address, rpcURL); + const appAddress = await createAppFor(await dataProtectorSharingContract.getAddress(), rpcURL); + const { iexecWorkerpoolOwner, workerpoolAddress } = await createWorkerpool(rpcURL); + const workerpoolOrder = await createWorkerpoolOrder(iexecWorkerpoolOwner, workerpoolAddress); + return { + dataProtectorSharingContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + addr1, + }; } export async function createCollection() { - const { - DataProtectorSharingFactory, - dataProtectorSharingContract, - addOnlyAppWhitelistRegistryContract, - pocoContract, - addr1, - addr2, - addr3, - } = await loadFixture(deploySCFixture); + const { + DataProtectorSharingFactory, + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + pocoContract, + addr1, + addr2, + addr3, + } = await loadFixture(deploySCFixture); - const tx = await dataProtectorSharingContract.createCollection(addr1.address); - const receipt = await tx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { - strict: true, - }); - const collectionTokenId = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); + const tx = await dataProtectorSharingContract.createCollection(addr1.address); + const receipt = await tx.wait(); + const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { + strict: true, + }); + const collectionTokenId = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); - return { - DataProtectorSharingFactory, - dataProtectorSharingContract, - addOnlyAppWhitelistRegistryContract, - pocoContract, - collectionTokenId, - addr1, - addr2, - addr3, - }; + return { + DataProtectorSharingFactory, + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + pocoContract, + collectionTokenId, + addr1, + addr2, + addr3, + }; } export async function createTwoCollection() { - const { dataProtectorSharingContract, addr1, addr2 } = await loadFixture(deploySCFixture); - // First one - const tx1 = await dataProtectorSharingContract.createCollection(addr1.address); - const receipt1 = await tx1.wait(); - const specificEventForTx1 = getEventFromLogs('Transfer', receipt1.logs, { - strict: true, - }); - const collectionTokenIdFrom = ethers.toNumber(specificEventForTx1.args?.tokenId); + const { dataProtectorSharingContract, addr1, addr2 } = await loadFixture(deploySCFixture); + // First one + const tx1 = await dataProtectorSharingContract.createCollection(addr1.address); + const receipt1 = await tx1.wait(); + const specificEventForTx1 = getEventFromLogs('Transfer', receipt1.logs, { + strict: true, + }); + const collectionTokenIdFrom = ethers.toNumber(specificEventForTx1.args?.tokenId); - // Second one - const tx2 = await dataProtectorSharingContract.createCollection(addr2.address); - const receipt2 = await tx2.wait(); - const specificEventForTx2 = getEventFromLogs('Transfer', receipt2.logs, { - strict: true, - }); - const collectionTokenIdTo = ethers.toNumber(specificEventForTx2.args?.tokenId); - return { - dataProtectorSharingContract, - collectionTokenIdFrom, - collectionTokenIdTo, - addr1, - addr2, - }; + // Second one + const tx2 = await dataProtectorSharingContract.createCollection(addr2.address); + const receipt2 = await tx2.wait(); + const specificEventForTx2 = getEventFromLogs('Transfer', receipt2.logs, { + strict: true, + }); + const collectionTokenIdTo = ethers.toNumber(specificEventForTx2.args?.tokenId); + return { + dataProtectorSharingContract, + collectionTokenIdFrom, + collectionTokenIdTo, + addr1, + addr2, + }; } export async function addProtectedDataToCollection() { - const { - DataProtectorSharingFactory, - dataProtectorSharingContract, - addOnlyAppWhitelistRegistryContract, - pocoContract, - collectionTokenId, - addr1, - addr2, - addr3, - } = await loadFixture(createCollection); - const { protectedDataAddress, appAddress, workerpoolOrder } = await createAssets(dataProtectorSharingContract, addr1); + const { + DataProtectorSharingFactory, + dataProtectorSharingContract, + addOnlyAppWhitelistRegistryContract, + pocoContract, + collectionTokenId, + addr1, + addr2, + addr3, + } = await loadFixture(createCollection); + const { protectedDataAddress, appAddress, workerpoolOrder } = await createAssets( + dataProtectorSharingContract, + addr1, + ); - const registry = await ethers.getContractAt('IRegistry', '0x799daa22654128d0c64d5b79eac9283008158730'); + const registry = await ethers.getContractAt( + 'IRegistry', + '0x799daa22654128d0c64d5b79eac9283008158730', + ); - const protectedDataTokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); - await registry.connect(addr1).approve(await dataProtectorSharingContract.getAddress(), protectedDataTokenId); + const protectedDataTokenId = ethers.getBigInt(protectedDataAddress.toLowerCase()).toString(); + await registry + .connect(addr1) + .approve(await dataProtectorSharingContract.getAddress(), protectedDataTokenId); - const newAddOnlyAppWhitelistTx = await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); - const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); - const addOnlyAppWhitelistTokenId = transactionReceipt.logs.find(({ eventName }) => eventName === 'Transfer')?.args - .tokenId; - const addOnlyAppWhitelistContractAddress = ethers.getAddress(ethers.toBeHex(addOnlyAppWhitelistTokenId)); + const newAddOnlyAppWhitelistTx = + await addOnlyAppWhitelistRegistryContract.createAddOnlyAppWhitelist(addr1.address); + const transactionReceipt = await newAddOnlyAppWhitelistTx.wait(); + const addOnlyAppWhitelistTokenId = transactionReceipt.logs.find( + ({ eventName }) => eventName === 'Transfer', + )?.args.tokenId; + const addOnlyAppWhitelistContractAddress = ethers.getAddress( + ethers.toBeHex(addOnlyAppWhitelistTokenId), + ); - // load new addOnlyAppWhitelistContract & whitelist an app - const addOnlyAppWhitelistContractFactory = await ethers.getContractFactory('AddOnlyAppWhitelist'); - const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach(addOnlyAppWhitelistContractAddress); - await addOnlyAppWhitelistContract.connect(addr1).addApp(appAddress); + // load new addOnlyAppWhitelistContract & whitelist an app + const addOnlyAppWhitelistContractFactory = + await ethers.getContractFactory('AddOnlyAppWhitelist'); + const addOnlyAppWhitelistContract = addOnlyAppWhitelistContractFactory.attach( + addOnlyAppWhitelistContractAddress, + ); + await addOnlyAppWhitelistContract.connect(addr1).addApp(appAddress); - const tx = await dataProtectorSharingContract - .connect(addr1) - .addProtectedDataToCollection(collectionTokenId, protectedDataAddress, addOnlyAppWhitelistContractAddress); - return { - DataProtectorSharingFactory, - dataProtectorSharingContract, - addOnlyAppWhitelistContractAddress, - pocoContract, - collectionTokenId, - protectedDataAddress, - appAddress, - workerpoolOrder, - addr1, - addr2, - addr3, - tx, - }; + const tx = await dataProtectorSharingContract + .connect(addr1) + .addProtectedDataToCollection( + collectionTokenId, + protectedDataAddress, + addOnlyAppWhitelistContractAddress, + ); + return { + DataProtectorSharingFactory, + dataProtectorSharingContract, + addOnlyAppWhitelistContractAddress, + pocoContract, + collectionTokenId, + protectedDataAddress, + appAddress, + workerpoolOrder, + addr1, + addr2, + addr3, + tx, + }; } export async function createCollectionWithProtectedDataRatableAndSubscribable() { - const { - dataProtectorSharingContract, - pocoContract, - collectionTokenId, - protectedDataAddress, - appAddress, - workerpoolOrder, - addr1, - addr2, - } = await loadFixture(addProtectedDataToCollection); + const { + dataProtectorSharingContract, + pocoContract, + collectionTokenId, + protectedDataAddress, + appAddress, + workerpoolOrder, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); - // TODO: set as param - // set up subscription - const subscriptionParams = { - price: 1, // in nRLC - duration: 2_592_000, // 30 days - }; - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); - await dataProtectorSharingContract.connect(addr1).setProtectedDataToSubscription(protectedDataAddress); + // TODO: set as param + // set up subscription + const subscriptionParams = { + price: 1, // in nRLC + duration: 2_592_000, // 30 days + }; + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToSubscription(protectedDataAddress); - // TODO: set as param - // set up renting - const rentingParams = { - price: 1, // in nRLC - duration: 172_800, // 2 days - }; - await dataProtectorSharingContract.connect(addr1).setProtectedDataToRenting(protectedDataAddress, rentingParams); - return { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - appAddress, - workerpoolOrder, - collectionTokenId, - subscriptionParams, - rentingParams, - addr2, - }; + // TODO: set as param + // set up renting + const rentingParams = { + price: 1, // in nRLC + duration: 172_800, // 2 days + }; + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToRenting(protectedDataAddress, rentingParams); + return { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + appAddress, + workerpoolOrder, + collectionTokenId, + subscriptionParams, + rentingParams, + addr2, + }; } export async function setProtectedDataForSale() { - const { - dataProtectorSharingContract, - addOnlyAppWhitelistContractAddress, - collectionTokenId: collectionTokenIdFrom, - protectedDataAddress, - addr1, - addr2, - } = await loadFixture(addProtectedDataToCollection); - const priceParam = 1; + const { + dataProtectorSharingContract, + addOnlyAppWhitelistContractAddress, + collectionTokenId: collectionTokenIdFrom, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); + const priceParam = 1; - // Create a recipient collection - const tx = await dataProtectorSharingContract.createCollection(addr2.address); - const receipt = await tx.wait(); - const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { - strict: true, - }); - const collectionTokenIdTo = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); + // Create a recipient collection + const tx = await dataProtectorSharingContract.createCollection(addr2.address); + const receipt = await tx.wait(); + const specificEventForPreviousTx = getEventFromLogs('Transfer', receipt.logs, { + strict: true, + }); + const collectionTokenIdTo = ethers.toNumber(specificEventForPreviousTx.args?.tokenId); - await dataProtectorSharingContract.connect(addr1).setProtectedDataForSale(protectedDataAddress, priceParam); + await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataForSale(protectedDataAddress, priceParam); - return { - dataProtectorSharingContract, - addOnlyAppWhitelistContractAddress, - collectionTokenIdFrom, - collectionTokenIdTo, - protectedDataAddress, - addr2, - }; + return { + dataProtectorSharingContract, + addOnlyAppWhitelistContractAddress, + collectionTokenIdFrom, + collectionTokenIdTo, + protectedDataAddress, + addr2, + }; } export async function setProtectedDataToSubscription() { - const { dataProtectorSharingContract, pocoContract, collectionTokenId, protectedDataAddress, addr1, addr2 } = - await loadFixture(addProtectedDataToCollection); + const { + dataProtectorSharingContract, + pocoContract, + collectionTokenId, + protectedDataAddress, + addr1, + addr2, + } = await loadFixture(addProtectedDataToCollection); - // TODO: set as param - const subscriptionParams = { - price: 1, // in nRLC - duration: 1_500, - }; - await dataProtectorSharingContract.connect(addr1).setSubscriptionParams(collectionTokenId, subscriptionParams); + // TODO: set as param + const subscriptionParams = { + price: 1, // in nRLC + duration: 1_500, + }; + await dataProtectorSharingContract + .connect(addr1) + .setSubscriptionParams(collectionTokenId, subscriptionParams); - const setProtectedDataToSubscriptionTx = await dataProtectorSharingContract - .connect(addr1) - .setProtectedDataToSubscription(protectedDataAddress); - const setProtectedDataToSubscriptionReceipt = await setProtectedDataToSubscriptionTx.wait(); - return { - dataProtectorSharingContract, - pocoContract, - protectedDataAddress, - setProtectedDataToSubscriptionReceipt, - collectionTokenId, - subscriptionParams, - addr1, - addr2, - }; + const setProtectedDataToSubscriptionTx = await dataProtectorSharingContract + .connect(addr1) + .setProtectedDataToSubscription(protectedDataAddress); + const setProtectedDataToSubscriptionReceipt = await setProtectedDataToSubscriptionTx.wait(); + return { + dataProtectorSharingContract, + pocoContract, + protectedDataAddress, + setProtectedDataToSubscriptionReceipt, + collectionTokenId, + subscriptionParams, + addr1, + addr2, + }; } diff --git a/packages/sharing-smart-contract/test/e2e/utils/utils.js b/packages/sharing-smart-contract/test/e2e/utils/utils.js index 7eee3c6d3..271664c58 100644 --- a/packages/sharing-smart-contract/test/e2e/utils/utils.js +++ b/packages/sharing-smart-contract/test/e2e/utils/utils.js @@ -1,8 +1,8 @@ export const getEventFromLogs = (eventName, logs, { strict = true }) => { - const eventFound = logs.find(log => log.eventName === eventName); - if (!eventFound) { - if (strict) throw new Error(`Unknown event ${eventName}`); - return undefined; - } - return eventFound; + const eventFound = logs.find((log) => log.eventName === eventName); + if (!eventFound) { + if (strict) throw new Error(`Unknown event ${eventName}`); + return undefined; + } + return eventFound; }; diff --git a/packages/sharing-smart-contract/test/invariant/Invariant.t.sol b/packages/sharing-smart-contract/test/invariant/Invariant.t.sol index d2f29cb14..551b4d7db 100644 --- a/packages/sharing-smart-contract/test/invariant/Invariant.t.sol +++ b/packages/sharing-smart-contract/test/invariant/Invariant.t.sol @@ -10,14 +10,15 @@ import {HandlerRenting} from "./handlers/HandlerRenting.sol"; import {HandlerGlobal} from "./handlers/HandlerGlobal.sol"; import {IAppRegistry, IApp} from "./interfaces/IAppRegistry.sol"; import {IWorkerpoolRegistry, IWorkerpool} from "./interfaces/IWorkerpoolRegistry.sol"; -import {IexecLibOrders_v5} from "../../contracts/libs/IexecLibOrders_v5.sol"; +import {IexecLibOrders_v5} from "../../contracts/interfaces/IPoCo.sol"; import {DataProtectorSharing} from "../../contracts/DataProtectorSharing.sol"; import {IAddOnlyAppWhitelist} from "../../contracts/registry/AddOnlyAppWhitelistRegistry.sol"; contract Invariant is StdInvariant, Test { DataProtectorSharing private dataProtectorSharing; HandlerGlobal private handlerGlobal; - bytes32 internal constant TAG = 0x0000000000000000000000000000000000000000000000000000000000000003; // [tee,scone] + bytes32 internal constant TAG = + 0x0000000000000000000000000000000000000000000000000000000000000003; // [tee,scone] uint256 internal constant TRUST = 0; // No replication uint256 private _salt; @@ -41,7 +42,9 @@ contract Invariant is StdInvariant, Test { // Test the consume work dor all protectedDataInCollection function invariant_alwaysTrue() external { - uint256 userNo = (uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao, msg.sender))) % 5) + 1; + uint256 userNo = (uint256( + keccak256(abi.encodePacked(block.timestamp, block.prevrandao, msg.sender)) + ) % 5) + 1; uint256 length = handlerGlobal.protectedDatasInCollectionLength(); address consumer = address(uint160(userNo % 5) + 1); @@ -57,10 +60,15 @@ contract Invariant is StdInvariant, Test { ); //create a fake workerpool & workerpoolOrder - IWorkerpoolRegistry workerpoolRegistry = IWorkerpoolRegistry(0xC76A18c78B7e530A165c5683CB1aB134E21938B4); - IWorkerpool workerpool = workerpoolRegistry.createWorkerpool(address(this), "Workerpool Test"); - IexecLibOrders_v5.WorkerpoolOrderOperation memory workerpoolOrderOperation = IexecLibOrders_v5 - .WorkerpoolOrderOperation({ + IWorkerpoolRegistry workerpoolRegistry = IWorkerpoolRegistry( + 0xC76A18c78B7e530A165c5683CB1aB134E21938B4 + ); + IWorkerpool workerpool = workerpoolRegistry.createWorkerpool( + address(this), + "Workerpool Test" + ); + IexecLibOrders_v5.WorkerpoolOrderOperation + memory workerpoolOrderOperation = IexecLibOrders_v5.WorkerpoolOrderOperation({ order: IexecLibOrders_v5.WorkerpoolOrder({ workerpool: address(workerpool), workerpoolprice: 0, @@ -84,12 +92,17 @@ contract Invariant is StdInvariant, Test { (uint256 collection, , , bool inSubscription, , ) = handlerGlobal .dataProtectorSharing() .protectedDataDetails(protectedData); - uint48 renterEndDate = dataProtectorSharing.getProtectedDataRenter(protectedData, consumer); - uint48 subscriberEndDate = dataProtectorSharing.getCollectionSubscriber(collection, consumer); - - (, IAddOnlyAppWhitelist addOnlyAppWhitelist, , , , ) = dataProtectorSharing.protectedDataDetails( - protectedData + uint48 renterEndDate = dataProtectorSharing.getProtectedDataRenter( + protectedData, + consumer ); + uint48 subscriberEndDate = dataProtectorSharing.getCollectionSubscriber( + collection, + consumer + ); + + (, IAddOnlyAppWhitelist addOnlyAppWhitelist, , , , ) = dataProtectorSharing + .protectedDataDetails(protectedData); // get the owner of the addOnlyAppWhitelist to add a App address whitelistOwner = addOnlyAppWhitelist.owner(); vm.startPrank(whitelistOwner); @@ -100,7 +113,11 @@ contract Invariant is StdInvariant, Test { (collection != 0 && inSubscription && subscriberEndDate >= block.timestamp) ) { vm.startPrank(consumer); - dataProtectorSharing.consumeProtectedData(protectedData, workerpoolOrderOperation.order, address(app)); + dataProtectorSharing.consumeProtectedData( + protectedData, + workerpoolOrderOperation.order, + address(app) + ); } } } diff --git a/packages/sharing-smart-contract/test/invariant/handlers/HandlerCollection.sol b/packages/sharing-smart-contract/test/invariant/handlers/HandlerCollection.sol index 9b5e18d5d..06e99032f 100644 --- a/packages/sharing-smart-contract/test/invariant/handlers/HandlerCollection.sol +++ b/packages/sharing-smart-contract/test/invariant/handlers/HandlerCollection.sol @@ -57,15 +57,23 @@ contract HandlerCollection is Test { uint256 collection = handlerGlobal.collectionsAt(collectionIdx); address from = IERC721(address(dataProtectorSharing)).ownerOf(collection); - (uint256 size, uint48 lastSubscriptionExpiration, ) = dataProtectorSharing.collectionDetails(collection); + (uint256 size, uint48 lastSubscriptionExpiration, ) = dataProtectorSharing + .collectionDetails(collection); if (size > 0) { vm.startPrank(from); // After calling expectRevert, calls to other cheatcodes before the reverting call are ignored. - vm.expectRevert(abi.encodeWithSelector(ICollection.CollectionNotEmpty.selector, collection)); + vm.expectRevert( + abi.encodeWithSelector(ICollection.CollectionNotEmpty.selector, collection) + ); dataProtectorSharing.burn(collection); } else if (lastSubscriptionExpiration > block.timestamp) { vm.startPrank(from); // After calling expectRevert, calls to other cheatcodes before the reverting call are ignored. - vm.expectRevert(abi.encodeWithSelector(ISubscription.OnGoingCollectionSubscriptions.selector, collection)); + vm.expectRevert( + abi.encodeWithSelector( + ISubscription.OnGoingCollectionSubscriptions.selector, + collection + ) + ); dataProtectorSharing.burn(collection); } else { vm.startPrank(from); @@ -92,7 +100,9 @@ contract HandlerCollection is Test { collectionIdx = protectedDataIdx % lengthC; // tokenIdx = random 0 ... length - 1 uint256 collectionTokenId = handlerGlobal.collectionsAt(collectionIdx); - address _collectionOwner = IERC721(address(dataProtectorSharing)).ownerOf(collectionTokenId); + address _collectionOwner = IERC721(address(dataProtectorSharing)).ownerOf( + collectionTokenId + ); if (_collectionOwner != _protectedDataOwner) { return; @@ -104,10 +114,14 @@ contract HandlerCollection is Test { uint256(uint160(_protectedData)) ); // create AppWhitelist - IAddOnlyAppWhitelist _appWhitelist = handlerGlobal.addOnlyAppWhitelistRegistry().createAddOnlyAppWhitelist( - _collectionOwner + IAddOnlyAppWhitelist _appWhitelist = handlerGlobal + .addOnlyAppWhitelistRegistry() + .createAddOnlyAppWhitelist(_collectionOwner); + dataProtectorSharing.addProtectedDataToCollection( + collectionTokenId, + _protectedData, + _appWhitelist ); - dataProtectorSharing.addProtectedDataToCollection(collectionTokenId, _protectedData, _appWhitelist); // we created "collectionTokenId" for "from" handlerGlobal.protectedDatasInCollectionAdd(_protectedData); @@ -123,14 +137,17 @@ contract HandlerCollection is Test { protectedDataIdx = protectedDataIdx % length; // tokenIdx = random 0 ... length - 1 address protectedData = handlerGlobal.protectedDatasInCollectionAt(protectedDataIdx); - (uint256 collection, , uint48 lastRentalExpiration, , , ) = dataProtectorSharing.protectedDataDetails( - protectedData - ); + (uint256 collection, , uint48 lastRentalExpiration, , , ) = dataProtectorSharing + .protectedDataDetails(protectedData); address from = IERC721(address(dataProtectorSharing)).ownerOf(collection); - (, uint48 lastSubscriptionExpiration, ) = dataProtectorSharing.collectionDetails(collection); + (, uint48 lastSubscriptionExpiration, ) = dataProtectorSharing.collectionDetails( + collection + ); - if (lastSubscriptionExpiration >= block.timestamp || lastRentalExpiration >= block.timestamp) { + if ( + lastSubscriptionExpiration >= block.timestamp || lastRentalExpiration >= block.timestamp + ) { return; } diff --git a/packages/sharing-smart-contract/test/invariant/handlers/HandlerGlobal.sol b/packages/sharing-smart-contract/test/invariant/handlers/HandlerGlobal.sol index be669da8e..e3804386f 100644 --- a/packages/sharing-smart-contract/test/invariant/handlers/HandlerGlobal.sol +++ b/packages/sharing-smart-contract/test/invariant/handlers/HandlerGlobal.sol @@ -5,16 +5,19 @@ import {Test} from "forge-std/Test.sol"; import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; import {DataProtectorSharing} from "../../../contracts/DataProtectorSharing.sol"; import {AddOnlyAppWhitelistRegistry} from "../../../contracts/registry/AddOnlyAppWhitelistRegistry.sol"; -import {IExecPocoDelegate} from "../../../contracts/interfaces/IExecPocoDelegate.sol"; +import {IPoCo} from "../../../contracts/interfaces/IPoCo.sol"; import {IDataProtector} from "../../../contracts/interfaces/IDataProtector.sol"; import {IRegistry} from "../../../contracts/interfaces/IRegistry.sol"; import {GhostStorage} from "./GhostStorage.sol"; contract HandlerGlobal is Test, GhostStorage { // ---------------------State Variables------------------------------------ - IExecPocoDelegate public constant POCO_DELEGATE = IExecPocoDelegate(0x3eca1B216A7DF1C7689aEb259fFB83ADFB894E7f); - IRegistry public constant POCO_PROTECTED_DATA_REGISTRY = IRegistry(0x799DAa22654128d0C64d5b79eac9283008158730); - IDataProtector public constant DATA_PROTECTOR_CORE = IDataProtector(0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59); + // TODO remove hardcoded values to make tests compatible with any chain. + IPoCo public constant POCO_DELEGATE = IPoCo(0x3eca1B216A7DF1C7689aEb259fFB83ADFB894E7f); + IRegistry public constant POCO_PROTECTED_DATA_REGISTRY = + IRegistry(0x799DAa22654128d0C64d5b79eac9283008158730); + IDataProtector public constant DATA_PROTECTOR_CORE = + IDataProtector(0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59); // ---------------------Contract Instance------------------------------------ DataProtectorSharing public dataProtectorSharing; @@ -27,17 +30,21 @@ contract HandlerGlobal is Test, GhostStorage { vm.label(address(POCO_PROTECTED_DATA_REGISTRY), "protectedDataRegistry"); AddOnlyAppWhitelistRegistry appWhitelistImpl = new AddOnlyAppWhitelistRegistry(); - addOnlyAppWhitelistRegistry = AddOnlyAppWhitelistRegistry(Clones.clone(address(appWhitelistImpl))); + addOnlyAppWhitelistRegistry = AddOnlyAppWhitelistRegistry( + Clones.clone(address(appWhitelistImpl)) + ); vm.label(address(addOnlyAppWhitelistRegistry), "appWhitelistRegistry"); addOnlyAppWhitelistRegistry.initialize(); DataProtectorSharing dataProtectorSharingImpl = new DataProtectorSharing( - POCO_DELEGATE, + address(POCO_DELEGATE), POCO_PROTECTED_DATA_REGISTRY, addOnlyAppWhitelistRegistry ); - dataProtectorSharing = DataProtectorSharing(Clones.clone(address(dataProtectorSharingImpl))); + dataProtectorSharing = DataProtectorSharing( + Clones.clone(address(dataProtectorSharingImpl)) + ); vm.label(address(dataProtectorSharing), "dataProtectorSharing"); vm.prank(admin); diff --git a/packages/sharing-smart-contract/test/invariant/handlers/HandlerRenting.sol b/packages/sharing-smart-contract/test/invariant/handlers/HandlerRenting.sol index d9d1bb4d6..9ea1b8abc 100644 --- a/packages/sharing-smart-contract/test/invariant/handlers/HandlerRenting.sol +++ b/packages/sharing-smart-contract/test/invariant/handlers/HandlerRenting.sol @@ -22,7 +22,11 @@ contract HandlerRenting is Test { dataProtectorSharing = _handlerGlobal.dataProtectorSharing(); } - function setProtectedDataToRenting(uint256 protectedDataIdx, uint72 price, uint40 duration) public { + function setProtectedDataToRenting( + uint256 protectedDataIdx, + uint72 price, + uint40 duration + ) public { uint256 length = handlerGlobal.protectedDatasInCollectionLength(); price = price % (1 gwei); @@ -48,7 +52,10 @@ contract HandlerRenting is Test { } vm.startPrank(from); - dataProtectorSharing.setProtectedDataToRenting(protectedData, IRental.RentingParams(price, duration)); + dataProtectorSharing.setProtectedDataToRenting( + protectedData, + IRental.RentingParams(price, duration) + ); } function removeProtectedDataFromRenting(uint256 protectedDataIdx) public { @@ -79,9 +86,8 @@ contract HandlerRenting is Test { protectedDataIdx = protectedDataIdx % length; // tokenIdx = random 0 ... length - 1 address protectedData = handlerGlobal.protectedDatasInCollectionAt(protectedDataIdx); - (, , , , IRental.RentingParams memory rentingParams, ) = dataProtectorSharing.protectedDataDetails( - protectedData - ); + (, , , , IRental.RentingParams memory rentingParams, ) = dataProtectorSharing + .protectedDataDetails(protectedData); if (rentingParams.duration == 0) { // Not available for renting diff --git a/packages/sharing-smart-contract/test/invariant/handlers/HandlerSale.sol b/packages/sharing-smart-contract/test/invariant/handlers/HandlerSale.sol index 9e8534e38..42bd54d01 100644 --- a/packages/sharing-smart-contract/test/invariant/handlers/HandlerSale.sol +++ b/packages/sharing-smart-contract/test/invariant/handlers/HandlerSale.sol @@ -45,7 +45,9 @@ contract HandlerSale is Test { address from = IERC721(address(dataProtectorSharing)).ownerOf(collection); // check if the protectedData is already in subscription or rented - if (inSubscription || rentingParams.duration > 0 || lastRentalExpiration >= block.timestamp) { + if ( + inSubscription || rentingParams.duration > 0 || lastRentalExpiration >= block.timestamp + ) { return; } @@ -64,7 +66,8 @@ contract HandlerSale is Test { protectedDataIdx = protectedDataIdx % length; // tokenIdx = random 0 ... length - 1 address protectedData = handlerGlobal.protectedDatasInCollectionAt(protectedDataIdx); - (, , , , , ISale.SellingParams memory sellingParams) = dataProtectorSharing.protectedDataDetails(protectedData); + (, , , , , ISale.SellingParams memory sellingParams) = dataProtectorSharing + .protectedDataDetails(protectedData); if (!sellingParams.isForSale) { return; diff --git a/packages/sharing-smart-contract/test/invariant/handlers/HandlerSubscription.sol b/packages/sharing-smart-contract/test/invariant/handlers/HandlerSubscription.sol index 9963c90be..ded1aee91 100644 --- a/packages/sharing-smart-contract/test/invariant/handlers/HandlerSubscription.sol +++ b/packages/sharing-smart-contract/test/invariant/handlers/HandlerSubscription.sol @@ -33,7 +33,10 @@ contract HandlerSubscription is Test { address from = IERC721(address(dataProtectorSharing)).ownerOf(collection); vm.startPrank(from); - dataProtectorSharing.setSubscriptionParams(collection, ISubscription.SubscriptionParams(price, duration)); + dataProtectorSharing.setSubscriptionParams( + collection, + ISubscription.SubscriptionParams(price, duration) + ); } function setProtectedDataToSubscription(uint256 protectedDataIdx) public { @@ -43,8 +46,14 @@ contract HandlerSubscription is Test { } protectedDataIdx = protectedDataIdx % length; // tokenIdx = random 0 ... length - 1 address protectedData = handlerGlobal.protectedDatasInCollectionAt(protectedDataIdx); - (uint256 collection, , , , , ISale.SellingParams memory sellingParams) = dataProtectorSharing - .protectedDataDetails(protectedData); + ( + uint256 collection, + , + , + , + , + ISale.SellingParams memory sellingParams + ) = dataProtectorSharing.protectedDataDetails(protectedData); address from = IERC721(address(dataProtectorSharing)).ownerOf(collection); if (sellingParams.isForSale) { @@ -64,7 +73,9 @@ contract HandlerSubscription is Test { address protectedData = handlerGlobal.protectedDatasInCollectionAt(protectedDataIdx); (uint256 collection, , , , , ) = dataProtectorSharing.protectedDataDetails(protectedData); address from = IERC721(address(dataProtectorSharing)).ownerOf(collection); - (, uint48 lastSubscriptionExpiration, ) = dataProtectorSharing.collectionDetails(collection); + (, uint48 lastSubscriptionExpiration, ) = dataProtectorSharing.collectionDetails( + collection + ); if (lastSubscriptionExpiration >= block.timestamp) { return; @@ -82,12 +93,14 @@ contract HandlerSubscription is Test { } collectionIdx = collectionIdx % length; // tokenIdx = random 0 ... length - 1 uint256 collection = handlerGlobal.collectionsAt(collectionIdx); - (, , ISubscription.SubscriptionParams memory subscriptionParams) = dataProtectorSharing.collectionDetails( - collection - ); + (, , ISubscription.SubscriptionParams memory subscriptionParams) = dataProtectorSharing + .collectionDetails(collection); vm.startPrank(subscriber); vm.deal(subscriber, subscriptionParams.price * (1 gwei)); - handlerGlobal.POCO_DELEGATE().approve(address(dataProtectorSharing), subscriptionParams.price); + handlerGlobal.POCO_DELEGATE().approve( + address(dataProtectorSharing), + subscriptionParams.price + ); handlerGlobal.POCO_DELEGATE().deposit{value: subscriptionParams.price * 1e9}(); // if (endDate = uint48(block.timestamp) + _collectionDetails.subscriptionParams.duration)> type(uint48).max => it will revert dataProtectorSharing.subscribeToCollection(collection, subscriptionParams); diff --git a/packages/sharing-smart-contract/tools/storage-to-diagrams.js b/packages/sharing-smart-contract/tools/storage-to-diagrams.js index f2768ec41..3c12b02ec 100644 --- a/packages/sharing-smart-contract/tools/storage-to-diagrams.js +++ b/packages/sharing-smart-contract/tools/storage-to-diagrams.js @@ -9,6 +9,7 @@ $.verbose = false; // Disable bash commands logging. * Generate storage diagram of a given contract. * @param contractName */ +// eslint-disable-next-line no-unused-vars async function generateStorageDiagram(contractName) { console.log(`Generating storage diagram for contract : ${contractName}`); await $`sol2uml storage contracts,node_modules/@openzeppelin -c ${contractName} -o docs/uml/storage-${contractName}.svg .`; diff --git a/packages/smart-contract/.env.template b/packages/smart-contract/.env.template index 6821fbba7..545ad5de0 100644 --- a/packages/smart-contract/.env.template +++ b/packages/smart-contract/.env.template @@ -1,8 +1,14 @@ # wallet used for transactions -WALLET_PRIVATE_KEY=... - -# environment to use for configuration (prod/staging) -ENV=prod +WALLET_PRIVATE_KEY= # DatasetRegistry contract address override (deploy script only) -# DATASET_REGISTRY_ADDRESS=0x... \ No newline at end of file +DATASET_REGISTRY_ADDRESS= + +## RPC URL for the network +RPC_URL= + +## Mnemonic for the network +MNEMONIC= + +## Arbiscan API key to verify contracts +ARBISCAN_API_KEY= diff --git a/packages/smart-contract/.eslintignore b/packages/smart-contract/.eslintignore deleted file mode 100644 index fb9142c81..000000000 --- a/packages/smart-contract/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -**/node_modules/ -**/coverage/ -**/build/ -**/typechain-types/ \ No newline at end of file diff --git a/packages/smart-contract/.eslintrc.json b/packages/smart-contract/.eslintrc.json deleted file mode 100644 index f93b1dc3c..000000000 --- a/packages/smart-contract/.eslintrc.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint", "import"], - "parserOptions": { - "project": "./tsconfig.json", - "ecmaVersion": "latest" - }, - "extends": [ - "airbnb-typescript/base", - "plugin:@typescript-eslint/recommended", - "prettier" - ], - "overrides": [ - { - "files": ["scripts/**/*.ts", "test/**/*.ts", "hardhat.config.ts"], - "rules": { - "import/no-extraneous-dependencies": [ - "error", - { - "devDependencies": true - } - ] - } - } - ] -} diff --git a/packages/smart-contract/.gitignore b/packages/smart-contract/.gitignore index 84a3c88c4..3ff8c794c 100644 --- a/packages/smart-contract/.gitignore +++ b/packages/smart-contract/.gitignore @@ -1,4 +1,4 @@ -n# Hardhat files +# Hardhat files cache artifacts @@ -10,6 +10,5 @@ typechain-types coverage coverage.json -#smart contract -.smart-contract-address -.constructor-args-params \ No newline at end of file +# Deployment files +**/deployments/chain-31337 diff --git a/packages/smart-contract/.prettierignore b/packages/smart-contract/.prettierignore new file mode 100644 index 000000000..31bf3dceb --- /dev/null +++ b/packages/smart-contract/.prettierignore @@ -0,0 +1,3 @@ +*.yml +*json +*.md diff --git a/packages/smart-contract/.prettierrc b/packages/smart-contract/.prettierrc index d95ee7c91..2e962a551 100644 --- a/packages/smart-contract/.prettierrc +++ b/packages/smart-contract/.prettierrc @@ -1,23 +1,19 @@ { - "printWidth": 80, - "tabWidth": 2, - "useTabs": false, - "semi": true, + "printWidth": 100, "singleQuote": true, - "trailingComma": "es5", - "bracketSpacing": true, - "arrowParens": "always", - "endOfLine": "lf", + "tabWidth": 4, + "trailingComma": "all", + "endOfLine": "auto", + "plugins": [ + "prettier-plugin-organize-imports", + "prettier-plugin-solidity" + ], "overrides": [ - { - "files": "*.sol", - "options": { - "printWidth": 80, - "tabWidth": 4, - "useTabs": false, - "singleQuote": false, - "bracketSpacing": false - } - } + { + "files": "*.sol", + "options": { + "singleQuote": false + } + } ] } diff --git a/packages/smart-contract/.solhint.json b/packages/smart-contract/.solhint.json index fb89c4eaa..728ddc901 100644 --- a/packages/smart-contract/.solhint.json +++ b/packages/smart-contract/.solhint.json @@ -1,4 +1,22 @@ { - "extends": ["solhint:recommended"], - "plugins": [] + "extends": [ + "solhint:recommended" + ], + "plugins": [], + "rules": { + "compiler-version": [ + "error", + "^0.8.19" + ], + "func-visibility": [ + "warn", + { + "ignoreConstructors": true + } + ], + "quotes": [ + "error", + "double" + ] + } } diff --git a/packages/smart-contract/CHANGELOG.md b/packages/smart-contract/CHANGELOG.md index fb4109509..491e98087 100644 --- a/packages/smart-contract/CHANGELOG.md +++ b/packages/smart-contract/CHANGELOG.md @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file. ## Next +### Added + +- Support for Arbitrum and Avalanche Fuji testnets (#429). + +### Changed + +- Integrated Hardhat Ignition for CREATE2 deployment using the CreateX factory for new chain deployments (#429). + ### Changed - update blockscout url diff --git a/packages/smart-contract/README.md b/packages/smart-contract/README.md index 17998fdc1..68ac6150b 100644 --- a/packages/smart-contract/README.md +++ b/packages/smart-contract/README.md @@ -1,10 +1,37 @@ -#Contract Name: DataProtector +# Contract Name: DataProtector -####Description: -This contract is use to attach schema on the dataset and publish it as an event. +## Description -#####Contract deployed Address: +The `DataProtector` contract is designed to attach schemas to datasets and publish them as events. -```bash -0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59 +## Deploying the Contract + +To deploy the contract, run the following command: + +```sh +npm run deploy -- --network avalancheFuji +``` + +If no network is specified, the local Hardhat network will be used by default. + +**Note:** This deployment uses the `createX` factory through Hardhat Ignition. To modify the deployment address, update the `salt` value in the `hardhat.config.json` file. + +## Verifying the Contract + +To verify the contract during deployment, include the `--verify` option in the deployment command: + +```sh +npm run deploy -- --network avalancheFuji --verify +``` + +If the contract has already been deployed, you can verify it separately using the following command: + +```sh +npx hardhat ignition verify chain-43113 ``` + +This ensures the contract's source code is verified on the blockchain explorer for the specified network. + +## Deployed Contract Address + +Refer to the `../../environments/environments.json` file to find the deployed contract address for the respective environment. diff --git a/packages/smart-contract/config/config.ts b/packages/smart-contract/config/config.ts index 07b059774..46137d49f 100644 --- a/packages/smart-contract/config/config.ts +++ b/packages/smart-contract/config/config.ts @@ -1,2 +1 @@ -export const DATASET_REGISTRY_ADDRESS = - '0x799DAa22654128d0C64d5b79eac9283008158730'; +export const DATASET_REGISTRY_ADDRESS = '0x799DAa22654128d0C64d5b79eac9283008158730'; diff --git a/packages/smart-contract/config/env.ts b/packages/smart-contract/config/env.ts new file mode 100644 index 000000000..0e36d86af --- /dev/null +++ b/packages/smart-contract/config/env.ts @@ -0,0 +1,32 @@ +import 'dotenv/config'; +import { z } from 'zod'; + +const addressRegex = /(^|\b)(0x)?[0-9a-fA-F]{40}(\b|$)/; +const privateKeyRegex = /(^|\b)(0x)?[0-9a-fA-F]{64}(\b|$)/; + +const envSchema = z.object({ + // Private key of the wallet used for transactions + WALLET_PRIVATE_KEY: z + .string() + .regex(privateKeyRegex, 'Invalid private key format') + .optional() + .or(z.literal('')), + + // DatasetRegistry address (override) + DATASET_REGISTRY_ADDRESS: z + .string() + .regex(addressRegex, 'Invalid Ethereum address format') + .optional() + .or(z.literal('')), + + // RPC URL used for network connection + RPC_URL: z.string().url('RPC_URL must be a valid URL').optional().or(z.literal('')), + + // Mnemonic for deployment or network interaction + MNEMONIC: z.string().min(1, 'MNEMONIC cannot be empty').optional().or(z.literal('')), + + // Arbiscan API key + ARBISCAN_API_KEY: z.string().optional().or(z.literal('')), +}); + +export const env = envSchema.parse(process.env); diff --git a/packages/smart-contract/eslint.config.mjs b/packages/smart-contract/eslint.config.mjs new file mode 100644 index 000000000..bedd866a6 --- /dev/null +++ b/packages/smart-contract/eslint.config.mjs @@ -0,0 +1,28 @@ +import eslint from '@eslint/js'; +import tsEslint from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import importPlugin from 'eslint-plugin-import'; + +export default [ + { + ...eslint.configs.recommended, + ignores: [ + './tools/**', + '**/node_modules/', + '**/coverage/', + '**/build/', + '**/typechain-types/', + ], + languageOptions: { + parser: tsParser, + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + }, + plugins: { + '@typescript-eslint': tsEslint, + import: importPlugin, + }, + }, +]; diff --git a/packages/smart-contract/hardhat.config.ts b/packages/smart-contract/hardhat.config.ts index 636aec965..96b5a20be 100644 --- a/packages/smart-contract/hardhat.config.ts +++ b/packages/smart-contract/hardhat.config.ts @@ -1,54 +1,104 @@ -import { HardhatUserConfig } from 'hardhat/config'; import '@nomicfoundation/hardhat-toolbox'; -import '@nomiclabs/hardhat-etherscan'; +import { HardhatUserConfig } from 'hardhat/config'; +import { env } from './config/env'; -const { WALLET_PRIVATE_KEY } = process.env; +const privateKey = env.WALLET_PRIVATE_KEY; + +// Avalanche Fuji specific configuration +const fujiBaseConfig = { + blockGasLimit: 8_000_000, + chainId: 43113, +}; + +// Arbitrum Sepolia specific configuration +const arbitrumSepoliaBaseConfig = { + blockGasLimit: 30_000_000, // Arbitrum has higher block gas limits + chainId: 421614, +}; const config: HardhatUserConfig = { - defaultNetwork: 'hardhat', - networks: { - hardhat: {}, - // modify with the dev network when the environment is ready - bellecour: { - url: 'https://bellecour.iex.ec', - gasPrice: 0, - accounts: WALLET_PRIVATE_KEY ? [WALLET_PRIVATE_KEY] : [], - }, - // poco-chain native config - 'dev-native': { - chainId: 65535, - url: process.env.RPC_URL ?? 'http://localhost:8545', - accounts: { - mnemonic: process.env.MNEMONIC ?? '', - }, - gasPrice: 0, + networks: { + hardhat: { + forking: { + enabled: true, + url: 'https://bellecour.iex.ec', + }, + }, + // modify with the dev network when the environment is ready + bellecour: { + url: 'https://bellecour.iex.ec', + gasPrice: 0, + accounts: privateKey ? [privateKey] : [], + }, + // Add Fuji as a network + avalancheFuji: { + url: env.RPC_URL || 'https://api.avax-test.network/ext/bc/C/rpc', + accounts: privateKey ? [privateKey] : [], + ...fujiBaseConfig, + }, + // Add Arbitrum Sepolia as a network + arbitrumSepolia: { + url: env.RPC_URL || 'https://sepolia-rollup.arbitrum.io/rpc', + accounts: privateKey ? [privateKey] : [], + ...arbitrumSepoliaBaseConfig, + }, + // poco-chain native config + 'dev-native': { + chainId: 65535, + url: env.RPC_URL ?? 'http://localhost:8545', + accounts: { + mnemonic: env.MNEMONIC ?? '', + }, + gasPrice: 0, + }, }, - }, - //to verify contract on Blockscout - etherscan: { - apiKey: { - bellecour: 'abc', + //to verify contract on Blockscout + etherscan: { + apiKey: { + bellecour: 'nothing', // a non-empty string is needed by the plugin. + avalancheFuji: 'nothing', // a non-empty string is needed by the plugin. + arbitrumSepolia: env.ARBISCAN_API_KEY || '', + }, + customChains: [ + { + network: 'bellecour', + chainId: 134, + urls: { + apiURL: 'https://blockscout.bellecour.iex.ec/api', + browserURL: 'https://blockscout.bellecour.iex.ec', + }, + }, + { + network: 'avalancheFuji', + chainId: 43113, + urls: { + // Snowtrace explorer. + apiURL: 'https://api.routescan.io/v2/network/testnet/evm/43113/etherscan/api', + browserURL: 'https://testnet.snowtrace.io/', + }, + }, + ], }, - customChains: [ - { - network: 'bellecour', - chainId: 134, - urls: { - apiURL: 'https://blockscout.bellecour.iex.ec/api', - browserURL: 'https://blockscout.bellecour.iex.ec', - }, - }, - ], - }, - //compiler version - solidity: { - version: '0.8.19', - settings: { - optimizer: { + sourcify: { enabled: true, - runs: 200, - }, }, - }, + // Create2 deployments: it use crateX factory to deploy the contract + ignition: { + strategyConfig: { + create2: { + salt: '0x0000000000000000000000000000000000000000000000000000000000000000', + }, + }, + }, + //compiler version + solidity: { + version: '0.8.29', + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, }; export default config; diff --git a/packages/smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorModule#DataProtector.json b/packages/smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorModule#DataProtector.json new file mode 100644 index 000000000..4b05a4dcc --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-421614/artifacts/DataProtectorModule#DataProtector.json @@ -0,0 +1,93 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DataProtector", + "sourceName": "contracts/DataProtector.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IDataset", + "name": "dataset", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "schema", + "type": "string" + } + ], + "name": "DatasetSchema", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a0604052348015600f57600080fd5b50604051610415380380610415833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b60805161038b61008a60003960008181606f01526096015261038b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/smart-contract/ignition/deployments/chain-421614/build-info/c2a62fb472c97ae3cd4cd0844546de5a.json b/packages/smart-contract/ignition/deployments/chain-421614/build-info/c2a62fb472c97ae3cd4cd0844546de5a.json new file mode 100644 index 000000000..24c12423d --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-421614/build-info/c2a62fb472c97ae3cd4cd0844546de5a.json @@ -0,0 +1,7015 @@ +{ + "id": "c2a62fb472c97ae3cd4cd0844546de5a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.29", + "solcLongVersion": "0.8.29+commit.ab55807c", + "input": { + "language": "Solidity", + "sources": { + "contracts/DataProtector.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\nimport \"./interfaces/IDataProtector.sol\";\n\ncontract DataProtector is IDataProtector {\n IDatasetRegistry public immutable registry;\n\n constructor(IDatasetRegistry _registry) {\n registry = _registry;\n }\n\n function createDatasetWithSchema(\n address _datasetOwner,\n string calldata _datasetName,\n string calldata _datasetSchema,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset) {\n IDataset dataset = registry.createDataset(\n _datasetOwner,\n _datasetName,\n _datasetMultiaddr,\n _datasetChecksum\n );\n emit DatasetSchema(dataset, _datasetSchema);\n return dataset;\n }\n}\n" + }, + "contracts/DatasetRegistryMock.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\nimport \"./interfaces/IDatasetRegistry.sol\";\n\ncontract DatasetRegistryMock is IDatasetRegistry {\n function createDataset(\n address _datasetOwner,\n string calldata _datasetName,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset) {}\n}\n" + }, + "contracts/interfaces/IDataProtector.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\nimport \"./IDatasetRegistry.sol\";\n\ninterface IDataProtector {\n /**\n * Event emitted when new ProtectedData is created.\n *\n * @param dataset - The ID of ProtectedData (ERC721).\n * @param schema - The schema of the data containing in the ProtectedData created.\n */\n event DatasetSchema(IDataset indexed dataset, string schema);\n\n /**\n * Create a new protectedData.\n *\n * @param _datasetOwner - The owner of the ProtectedData.\n * @param _datasetName - The name of the ProtectedData (metadata).\n * @param _datasetSchema - The schema of the data containing in the ProtectedData\n * @param _datasetMultiaddr - The multiaddress of the ProtectedData.\n * @param _datasetChecksum -The checksum of the ProtectedData.\n * @return IDataset - The ProtcetedData instance created.\n */\n function createDatasetWithSchema(\n address _datasetOwner,\n string calldata _datasetName,\n string calldata _datasetSchema,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset);\n}\n" + }, + "contracts/interfaces/IDataset.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\ninterface IDataset {}\n" + }, + "contracts/interfaces/IDatasetRegistry.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\nimport \"./IDataset.sol\";\n\ninterface IDatasetRegistry {\n function createDataset(\n address _datasetOwner,\n string calldata _datasetName,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset);\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "contracts/DataProtector.sol": { + "ast": { + "absolutePath": "contracts/DataProtector.sol", + "exportedSymbols": { + "DataProtector": [ + 54 + ], + "IDataProtector": [ + 104 + ], + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 55, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:0" + }, + { + "absolutePath": "contracts/interfaces/IDataProtector.sol", + "file": "./interfaces/IDataProtector.sol", + "id": 2, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 55, + "sourceUnit": 105, + "src": "1267:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3, + "name": "IDataProtector", + "nameLocations": [ + "1336:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 104, + "src": "1336:14:0" + }, + "id": 4, + "nodeType": "InheritanceSpecifier", + "src": "1336:14:0" + } + ], + "canonicalName": "DataProtector", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 54, + "linearizedBaseContracts": [ + 54, + 104 + ], + "name": "DataProtector", + "nameLocation": "1319:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7b103999", + "id": 7, + "mutability": "immutable", + "name": "registry", + "nameLocation": "1391:8:0", + "nodeType": "VariableDeclaration", + "scope": 54, + "src": "1357:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + }, + "typeName": { + "id": 6, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5, + "name": "IDatasetRegistry", + "nameLocations": [ + "1357:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1357:16:0" + }, + "referencedDeclaration": 125, + "src": "1357:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 17, + "nodeType": "Block", + "src": "1446:37:0", + "statements": [ + { + "expression": { + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1456:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10, + "src": "1467:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "src": "1456:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "1456:20:0" + } + ] + }, + "id": 18, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10, + "mutability": "mutable", + "name": "_registry", + "nameLocation": "1435:9:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "1418:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + }, + "typeName": { + "id": 9, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8, + "name": "IDatasetRegistry", + "nameLocations": [ + "1418:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1418:16:0" + }, + "referencedDeclaration": 125, + "src": "1418:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "visibility": "internal" + } + ], + "src": "1417:28:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "1446:0:0" + }, + "scope": 54, + "src": "1406:77:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 103 + ], + "body": { + "id": 52, + "nodeType": "Block", + "src": "1741:259:0", + "statements": [ + { + "assignments": [ + 36 + ], + "declarations": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "dataset", + "nameLocation": "1760:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "1751:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 35, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34, + "name": "IDataset", + "nameLocations": [ + "1751:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1751:8:0" + }, + "referencedDeclaration": 107, + "src": "1751:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "id": 44, + "initialValue": { + "arguments": [ + { + "id": 39, + "name": "_datasetOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "1806:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 40, + "name": "_datasetName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "1833:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 41, + "name": "_datasetMultiaddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "1859:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "id": 42, + "name": "_datasetChecksum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "1890:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 37, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1770:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1779:13:0", + "memberName": "createDataset", + "nodeType": "MemberAccess", + "referencedDeclaration": 124, + "src": "1770:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_contract$_IDataset_$107_$", + "typeString": "function (address,string memory,bytes memory,bytes32) external returns (contract IDataset)" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1770:146:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1751:165:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 46, + "name": "dataset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "1945:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + { + "id": 47, + "name": "_datasetSchema", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "1954:14:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 45, + "name": "DatasetSchema", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 86, + "src": "1931:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IDataset_$107_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (contract IDataset,string memory)" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "EmitStatement", + "src": "1926:43:0" + }, + { + "expression": { + "id": 50, + "name": "dataset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "1986:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "functionReturnParameters": 33, + "id": 51, + "nodeType": "Return", + "src": "1979:14:0" + } + ] + }, + "functionSelector": "167fbf5f", + "id": 53, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createDatasetWithSchema", + "nameLocation": "1498:23:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1539:13:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1531:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1531:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1578:12:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1562:28:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 21, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1562:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "_datasetSchema", + "nameLocation": "1616:14:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1600:30:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1655:17:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1640:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 25, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1640:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1690:16:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1682:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1521:191:0" + }, + "returnParameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1731:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 31, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 30, + "name": "IDataset", + "nameLocations": [ + "1731:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1731:8:0" + }, + "referencedDeclaration": 107, + "src": "1731:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "1730:10:0" + }, + "scope": 54, + "src": "1489:511:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 55, + "src": "1310:692:0", + "usedErrors": [], + "usedEvents": [ + 86 + ] + } + ], + "src": "1242:761:0" + }, + "id": 0 + }, + "contracts/DatasetRegistryMock.sol": { + "ast": { + "absolutePath": "contracts/DatasetRegistryMock.sol", + "exportedSymbols": { + "DatasetRegistryMock": [ + 75 + ], + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 76, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 56, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:1" + }, + { + "absolutePath": "contracts/interfaces/IDatasetRegistry.sol", + "file": "./interfaces/IDatasetRegistry.sol", + "id": 57, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 76, + "sourceUnit": 126, + "src": "1268:43:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 58, + "name": "IDatasetRegistry", + "nameLocations": [ + "1345:16:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1345:16:1" + }, + "id": 59, + "nodeType": "InheritanceSpecifier", + "src": "1345:16:1" + } + ], + "canonicalName": "DatasetRegistryMock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 75, + "linearizedBaseContracts": [ + 75, + 125 + ], + "name": "DatasetRegistryMock", + "nameLocation": "1322:19:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 124 + ], + "body": { + "id": 73, + "nodeType": "Block", + "src": "1570:2:1", + "statements": [] + }, + "functionSelector": "3354bcdb", + "id": 74, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createDataset", + "nameLocation": "1377:13:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1408:13:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1400:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1447:12:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1431:28:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 62, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1431:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1484:17:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1469:32:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 64, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1519:16:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1511:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 66, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1390:151:1" + }, + "returnParameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1560:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 70, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 69, + "name": "IDataset", + "nameLocations": [ + "1560:8:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1560:8:1" + }, + "referencedDeclaration": 107, + "src": "1560:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "1559:10:1" + }, + "scope": 75, + "src": "1368:204:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 76, + "src": "1313:261:1", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:333:1" + }, + "id": 1 + }, + "contracts/interfaces/IDataProtector.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDataProtector.sol", + "exportedSymbols": { + "IDataProtector": [ + 104 + ], + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 105, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 77, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:2" + }, + { + "absolutePath": "contracts/interfaces/IDatasetRegistry.sol", + "file": "./IDatasetRegistry.sol", + "id": 78, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 105, + "sourceUnit": 126, + "src": "1268:32:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDataProtector", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 104, + "linearizedBaseContracts": [ + 104 + ], + "name": "IDataProtector", + "nameLocation": "1312:14:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "1333:219:2", + "text": " Event emitted when new ProtectedData is created.\n @param dataset - The ID of ProtectedData (ERC721).\n @param schema - The schema of the data containing in the ProtectedData created." + }, + "eventSelector": "37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d", + "id": 86, + "name": "DatasetSchema", + "nameLocation": "1563:13:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 82, + "indexed": true, + "mutability": "mutable", + "name": "dataset", + "nameLocation": "1594:7:2", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "1577:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 81, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 80, + "name": "IDataset", + "nameLocations": [ + "1577:8:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1577:8:2" + }, + "referencedDeclaration": 107, + "src": "1577:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "indexed": false, + "mutability": "mutable", + "name": "schema", + "nameLocation": "1610:6:2", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "1603:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 83, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1603:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1576:41:2" + }, + "src": "1557:61:2" + }, + { + "documentation": { + "id": 87, + "nodeType": "StructuredDocumentation", + "src": "1624:474:2", + "text": " Create a new protectedData.\n @param _datasetOwner - The owner of the ProtectedData.\n @param _datasetName - The name of the ProtectedData (metadata).\n @param _datasetSchema - The schema of the data containing in the ProtectedData\n @param _datasetMultiaddr - The multiaddress of the ProtectedData.\n @param _datasetChecksum -The checksum of the ProtectedData.\n @return IDataset - The ProtcetedData instance created." + }, + "functionSelector": "167fbf5f", + "id": 103, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createDatasetWithSchema", + "nameLocation": "2112:23:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 98, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "2153:13:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2145:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "2192:12:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2176:28:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 90, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2176:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "_datasetSchema", + "nameLocation": "2230:14:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2214:30:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 92, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2214:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "2269:17:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2254:32:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 94, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2254:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "2304:16:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2296:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 96, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2296:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2135:191:2" + }, + "returnParameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2345:8:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 100, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 99, + "name": "IDataset", + "nameLocations": [ + "2345:8:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "2345:8:2" + }, + "referencedDeclaration": 107, + "src": "2345:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "2344:10:2" + }, + "scope": 104, + "src": "2103:252:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 105, + "src": "1302:1055:2", + "usedErrors": [], + "usedEvents": [ + 86 + ] + } + ], + "src": "1242:1116:2" + }, + "id": 2 + }, + "contracts/interfaces/IDataset.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDataset.sol", + "exportedSymbols": { + "IDataset": [ + 107 + ] + }, + "id": 108, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 106, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDataset", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": true, + "id": 107, + "linearizedBaseContracts": [ + 107 + ], + "name": "IDataset", + "nameLocation": "1278:8:3", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 108, + "src": "1268:21:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:48:3" + }, + "id": 3 + }, + "contracts/interfaces/IDatasetRegistry.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDatasetRegistry.sol", + "exportedSymbols": { + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 126, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 109, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:4" + }, + { + "absolutePath": "contracts/interfaces/IDataset.sol", + "file": "./IDataset.sol", + "id": 110, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 126, + "sourceUnit": 108, + "src": "1268:24:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDatasetRegistry", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 125, + "linearizedBaseContracts": [ + 125 + ], + "name": "IDatasetRegistry", + "nameLocation": "1304:16:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "3354bcdb", + "id": 124, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createDataset", + "nameLocation": "1336:13:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1367:13:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1359:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1359:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1406:12:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1390:28:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 113, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1390:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1443:17:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1428:32:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 115, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1428:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 118, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1478:16:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1470:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1470:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1349:151:4" + }, + "returnParameters": { + "id": 123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 122, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1519:8:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 121, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 120, + "name": "IDataset", + "nameLocations": [ + "1519:8:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1519:8:4" + }, + "referencedDeclaration": 107, + "src": "1519:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "1518:10:4" + }, + "scope": 125, + "src": "1327:202:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 126, + "src": "1294:237:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:290:4" + }, + "id": 4 + } + }, + "contracts": { + "contracts/DataProtector.sol": { + "DataProtector": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IDataset", + "name": "dataset", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "schema", + "type": "string" + } + ], + "name": "DatasetSchema", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_18": { + "entryPoint": null, + "id": 18, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_tuple_t_contract$_IDatasetRegistry_$125_fromMemory": { + "entryPoint": 60, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:330:5", + "nodeType": "YulBlock", + "src": "0:330:5", + "statements": [ + { + "nativeSrc": "6:3:5", + "nodeType": "YulBlock", + "src": "6:3:5", + "statements": [] + }, + { + "body": { + "nativeSrc": "119:209:5", + "nodeType": "YulBlock", + "src": "119:209:5", + "statements": [ + { + "body": { + "nativeSrc": "165:16:5", + "nodeType": "YulBlock", + "src": "165:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "174:1:5", + "nodeType": "YulLiteral", + "src": "174:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "177:1:5", + "nodeType": "YulLiteral", + "src": "177:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "167:6:5", + "nodeType": "YulIdentifier", + "src": "167:6:5" + }, + "nativeSrc": "167:12:5", + "nodeType": "YulFunctionCall", + "src": "167:12:5" + }, + "nativeSrc": "167:12:5", + "nodeType": "YulExpressionStatement", + "src": "167:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "140:7:5", + "nodeType": "YulIdentifier", + "src": "140:7:5" + }, + { + "name": "headStart", + "nativeSrc": "149:9:5", + "nodeType": "YulIdentifier", + "src": "149:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "136:3:5", + "nodeType": "YulIdentifier", + "src": "136:3:5" + }, + "nativeSrc": "136:23:5", + "nodeType": "YulFunctionCall", + "src": "136:23:5" + }, + { + "kind": "number", + "nativeSrc": "161:2:5", + "nodeType": "YulLiteral", + "src": "161:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "132:3:5", + "nodeType": "YulIdentifier", + "src": "132:3:5" + }, + "nativeSrc": "132:32:5", + "nodeType": "YulFunctionCall", + "src": "132:32:5" + }, + "nativeSrc": "129:52:5", + "nodeType": "YulIf", + "src": "129:52:5" + }, + { + "nativeSrc": "190:29:5", + "nodeType": "YulVariableDeclaration", + "src": "190:29:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "209:9:5", + "nodeType": "YulIdentifier", + "src": "209:9:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "203:5:5", + "nodeType": "YulIdentifier", + "src": "203:5:5" + }, + "nativeSrc": "203:16:5", + "nodeType": "YulFunctionCall", + "src": "203:16:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "194:5:5", + "nodeType": "YulTypedName", + "src": "194:5:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "282:16:5", + "nodeType": "YulBlock", + "src": "282:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "291:1:5", + "nodeType": "YulLiteral", + "src": "291:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "294:1:5", + "nodeType": "YulLiteral", + "src": "294:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "284:6:5", + "nodeType": "YulIdentifier", + "src": "284:6:5" + }, + "nativeSrc": "284:12:5", + "nodeType": "YulFunctionCall", + "src": "284:12:5" + }, + "nativeSrc": "284:12:5", + "nodeType": "YulExpressionStatement", + "src": "284:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "241:5:5", + "nodeType": "YulIdentifier", + "src": "241:5:5" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "252:5:5", + "nodeType": "YulIdentifier", + "src": "252:5:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "267:3:5", + "nodeType": "YulLiteral", + "src": "267:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "272:1:5", + "nodeType": "YulLiteral", + "src": "272:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "263:3:5", + "nodeType": "YulIdentifier", + "src": "263:3:5" + }, + "nativeSrc": "263:11:5", + "nodeType": "YulFunctionCall", + "src": "263:11:5" + }, + { + "kind": "number", + "nativeSrc": "276:1:5", + "nodeType": "YulLiteral", + "src": "276:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "259:3:5", + "nodeType": "YulIdentifier", + "src": "259:3:5" + }, + "nativeSrc": "259:19:5", + "nodeType": "YulFunctionCall", + "src": "259:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "248:3:5", + "nodeType": "YulIdentifier", + "src": "248:3:5" + }, + "nativeSrc": "248:31:5", + "nodeType": "YulFunctionCall", + "src": "248:31:5" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "238:2:5", + "nodeType": "YulIdentifier", + "src": "238:2:5" + }, + "nativeSrc": "238:42:5", + "nodeType": "YulFunctionCall", + "src": "238:42:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "231:6:5", + "nodeType": "YulIdentifier", + "src": "231:6:5" + }, + "nativeSrc": "231:50:5", + "nodeType": "YulFunctionCall", + "src": "231:50:5" + }, + "nativeSrc": "228:70:5", + "nodeType": "YulIf", + "src": "228:70:5" + }, + { + "nativeSrc": "307:15:5", + "nodeType": "YulAssignment", + "src": "307:15:5", + "value": { + "name": "value", + "nativeSrc": "317:5:5", + "nodeType": "YulIdentifier", + "src": "317:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "307:6:5", + "nodeType": "YulIdentifier", + "src": "307:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_IDatasetRegistry_$125_fromMemory", + "nativeSrc": "14:314:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "85:9:5", + "nodeType": "YulTypedName", + "src": "85:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "96:7:5", + "nodeType": "YulTypedName", + "src": "96:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "108:6:5", + "nodeType": "YulTypedName", + "src": "108:6:5", + "type": "" + } + ], + "src": "14:314:5" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_contract$_IDatasetRegistry_$125_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}", + "id": 5, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a0604052348015600f57600080fd5b50604051610415380380610415833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b60805161038b61008a60003960008181606f01526096015261038b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x415 CODESIZE SUB DUP1 PUSH2 0x415 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x6A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x38B PUSH2 0x8A PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x6F ADD MSTORE PUSH1 0x96 ADD MSTORE PUSH2 0x38B 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x167FBF5F EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0 JUMP JUMPDEST PUSH2 0x91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3354BCDB DUP12 DUP12 DUP12 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x109 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 0x12D SWAP2 SWAP1 PUSH2 0x315 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x37B19B8900A9B045473748167F459FA16828F33C13D71473BCA4B5E52E5F4D5D DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x16A SWAP3 SWAP2 SWAP1 PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x207 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x287 DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2EE SWAP1 DUP4 ADD DUP8 DUP10 PUSH2 0x2A0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x301 DUP2 DUP7 DUP9 PUSH2 0x2A0 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x332 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x34D PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL PUSH25 0x247810E731B2C7A76FCEFAD2CA335779409B90779F5DBE730D SWAP15 0xAC ADD PUSH17 0x9164736F6C634300081D00330000000000 ", + "sourceMap": "1310:692:0:-:0;;;1406:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1456:20:0;;;1310:692;;14:314:5;108:6;161:2;149:9;140:7;136:23;132:32;129:52;;;177:1;174;167:12;129:52;203:16;;-1:-1:-1;;;;;248:31:5;;238:42;;228:70;;294:1;291;284:12;228:70;317:5;14:314;-1:-1:-1;;;14:314:5:o;:::-;1310:692:0;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@createDatasetWithSchema_53": { + "entryPoint": 145, + "id": 53, + "parameterSlots": 8, + "returnSlots": 1 + }, + "@registry_7": { + "entryPoint": null, + "id": 7, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_string_calldata": { + "entryPoint": 407, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_string_calldata_ptrt_string_calldata_ptrt_bytes_calldata_ptrt_bytes32": { + "entryPoint": 480, + "id": null, + "parameterSlots": 2, + "returnSlots": 8 + }, + "abi_decode_tuple_t_contract$_IDataset_$107_fromMemory": { + "entryPoint": 789, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_string_calldata": { + "entryPoint": 672, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_string_calldata_ptr_t_bytes_calldata_ptr_t_bytes32__to_t_address_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes32__fromStack_reversed": { + "entryPoint": 713, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IDatasetRegistry_$125__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 825, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "validator_revert_address": { + "entryPoint": 383, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:3592:5", + "nodeType": "YulBlock", + "src": "0:3592:5", + "statements": [ + { + "nativeSrc": "6:3:5", + "nodeType": "YulBlock", + "src": "6:3:5", + "statements": [] + }, + { + "body": { + "nativeSrc": "59:86:5", + "nodeType": "YulBlock", + "src": "59:86:5", + "statements": [ + { + "body": { + "nativeSrc": "123:16:5", + "nodeType": "YulBlock", + "src": "123:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "132:1:5", + "nodeType": "YulLiteral", + "src": "132:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "135:1:5", + "nodeType": "YulLiteral", + "src": "135:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "125:6:5", + "nodeType": "YulIdentifier", + "src": "125:6:5" + }, + "nativeSrc": "125:12:5", + "nodeType": "YulFunctionCall", + "src": "125:12:5" + }, + "nativeSrc": "125:12:5", + "nodeType": "YulExpressionStatement", + "src": "125:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "82:5:5", + "nodeType": "YulIdentifier", + "src": "82:5:5" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:5", + "nodeType": "YulIdentifier", + "src": "93:5:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "108:3:5", + "nodeType": "YulLiteral", + "src": "108:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "113:1:5", + "nodeType": "YulLiteral", + "src": "113:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "104:3:5", + "nodeType": "YulIdentifier", + "src": "104:3:5" + }, + "nativeSrc": "104:11:5", + "nodeType": "YulFunctionCall", + "src": "104:11:5" + }, + { + "kind": "number", + "nativeSrc": "117:1:5", + "nodeType": "YulLiteral", + "src": "117:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "100:3:5", + "nodeType": "YulIdentifier", + "src": "100:3:5" + }, + "nativeSrc": "100:19:5", + "nodeType": "YulFunctionCall", + "src": "100:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "89:3:5", + "nodeType": "YulIdentifier", + "src": "89:3:5" + }, + "nativeSrc": "89:31:5", + "nodeType": "YulFunctionCall", + "src": "89:31:5" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "79:2:5", + "nodeType": "YulIdentifier", + "src": "79:2:5" + }, + "nativeSrc": "79:42:5", + "nodeType": "YulFunctionCall", + "src": "79:42:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "72:6:5", + "nodeType": "YulIdentifier", + "src": "72:6:5" + }, + "nativeSrc": "72:50:5", + "nodeType": "YulFunctionCall", + "src": "72:50:5" + }, + "nativeSrc": "69:70:5", + "nodeType": "YulIf", + "src": "69:70:5" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "14:131:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "48:5:5", + "nodeType": "YulTypedName", + "src": "48:5:5", + "type": "" + } + ], + "src": "14:131:5" + }, + { + "body": { + "nativeSrc": "223:275:5", + "nodeType": "YulBlock", + "src": "223:275:5", + "statements": [ + { + "body": { + "nativeSrc": "272:16:5", + "nodeType": "YulBlock", + "src": "272:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "281:1:5", + "nodeType": "YulLiteral", + "src": "281:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "284:1:5", + "nodeType": "YulLiteral", + "src": "284:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "274:6:5", + "nodeType": "YulIdentifier", + "src": "274:6:5" + }, + "nativeSrc": "274:12:5", + "nodeType": "YulFunctionCall", + "src": "274:12:5" + }, + "nativeSrc": "274:12:5", + "nodeType": "YulExpressionStatement", + "src": "274:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "251:6:5", + "nodeType": "YulIdentifier", + "src": "251:6:5" + }, + { + "kind": "number", + "nativeSrc": "259:4:5", + "nodeType": "YulLiteral", + "src": "259:4:5", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "247:3:5", + "nodeType": "YulIdentifier", + "src": "247:3:5" + }, + "nativeSrc": "247:17:5", + "nodeType": "YulFunctionCall", + "src": "247:17:5" + }, + { + "name": "end", + "nativeSrc": "266:3:5", + "nodeType": "YulIdentifier", + "src": "266:3:5" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "243:3:5", + "nodeType": "YulIdentifier", + "src": "243:3:5" + }, + "nativeSrc": "243:27:5", + "nodeType": "YulFunctionCall", + "src": "243:27:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "236:6:5", + "nodeType": "YulIdentifier", + "src": "236:6:5" + }, + "nativeSrc": "236:35:5", + "nodeType": "YulFunctionCall", + "src": "236:35:5" + }, + "nativeSrc": "233:55:5", + "nodeType": "YulIf", + "src": "233:55:5" + }, + { + "nativeSrc": "297:30:5", + "nodeType": "YulAssignment", + "src": "297:30:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "320:6:5", + "nodeType": "YulIdentifier", + "src": "320:6:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "307:12:5", + "nodeType": "YulIdentifier", + "src": "307:12:5" + }, + "nativeSrc": "307:20:5", + "nodeType": "YulFunctionCall", + "src": "307:20:5" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "297:6:5", + "nodeType": "YulIdentifier", + "src": "297:6:5" + } + ] + }, + { + "body": { + "nativeSrc": "370:16:5", + "nodeType": "YulBlock", + "src": "370:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "379:1:5", + "nodeType": "YulLiteral", + "src": "379:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "382:1:5", + "nodeType": "YulLiteral", + "src": "382:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "372:6:5", + "nodeType": "YulIdentifier", + "src": "372:6:5" + }, + "nativeSrc": "372:12:5", + "nodeType": "YulFunctionCall", + "src": "372:12:5" + }, + "nativeSrc": "372:12:5", + "nodeType": "YulExpressionStatement", + "src": "372:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "342:6:5", + "nodeType": "YulIdentifier", + "src": "342:6:5" + }, + { + "kind": "number", + "nativeSrc": "350:18:5", + "nodeType": "YulLiteral", + "src": "350:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "339:2:5", + "nodeType": "YulIdentifier", + "src": "339:2:5" + }, + "nativeSrc": "339:30:5", + "nodeType": "YulFunctionCall", + "src": "339:30:5" + }, + "nativeSrc": "336:50:5", + "nodeType": "YulIf", + "src": "336:50:5" + }, + { + "nativeSrc": "395:29:5", + "nodeType": "YulAssignment", + "src": "395:29:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "411:6:5", + "nodeType": "YulIdentifier", + "src": "411:6:5" + }, + { + "kind": "number", + "nativeSrc": "419:4:5", + "nodeType": "YulLiteral", + "src": "419:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "407:3:5", + "nodeType": "YulIdentifier", + "src": "407:3:5" + }, + "nativeSrc": "407:17:5", + "nodeType": "YulFunctionCall", + "src": "407:17:5" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "395:8:5", + "nodeType": "YulIdentifier", + "src": "395:8:5" + } + ] + }, + { + "body": { + "nativeSrc": "476:16:5", + "nodeType": "YulBlock", + "src": "476:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "485:1:5", + "nodeType": "YulLiteral", + "src": "485:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "488:1:5", + "nodeType": "YulLiteral", + "src": "488:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "478:6:5", + "nodeType": "YulIdentifier", + "src": "478:6:5" + }, + "nativeSrc": "478:12:5", + "nodeType": "YulFunctionCall", + "src": "478:12:5" + }, + "nativeSrc": "478:12:5", + "nodeType": "YulExpressionStatement", + "src": "478:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "447:6:5", + "nodeType": "YulIdentifier", + "src": "447:6:5" + }, + { + "name": "length", + "nativeSrc": "455:6:5", + "nodeType": "YulIdentifier", + "src": "455:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "443:3:5", + "nodeType": "YulIdentifier", + "src": "443:3:5" + }, + "nativeSrc": "443:19:5", + "nodeType": "YulFunctionCall", + "src": "443:19:5" + }, + { + "kind": "number", + "nativeSrc": "464:4:5", + "nodeType": "YulLiteral", + "src": "464:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "439:3:5", + "nodeType": "YulIdentifier", + "src": "439:3:5" + }, + "nativeSrc": "439:30:5", + "nodeType": "YulFunctionCall", + "src": "439:30:5" + }, + { + "name": "end", + "nativeSrc": "471:3:5", + "nodeType": "YulIdentifier", + "src": "471:3:5" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "436:2:5", + "nodeType": "YulIdentifier", + "src": "436:2:5" + }, + "nativeSrc": "436:39:5", + "nodeType": "YulFunctionCall", + "src": "436:39:5" + }, + "nativeSrc": "433:59:5", + "nodeType": "YulIf", + "src": "433:59:5" + } + ] + }, + "name": "abi_decode_string_calldata", + "nativeSrc": "150:348:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "186:6:5", + "nodeType": "YulTypedName", + "src": "186:6:5", + "type": "" + }, + { + "name": "end", + "nativeSrc": "194:3:5", + "nodeType": "YulTypedName", + "src": "194:3:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "202:8:5", + "nodeType": "YulTypedName", + "src": "202:8:5", + "type": "" + }, + { + "name": "length", + "nativeSrc": "212:6:5", + "nodeType": "YulTypedName", + "src": "212:6:5", + "type": "" + } + ], + "src": "150:348:5" + }, + { + "body": { + "nativeSrc": "700:1028:5", + "nodeType": "YulBlock", + "src": "700:1028:5", + "statements": [ + { + "body": { + "nativeSrc": "747:16:5", + "nodeType": "YulBlock", + "src": "747:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "756:1:5", + "nodeType": "YulLiteral", + "src": "756:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "759:1:5", + "nodeType": "YulLiteral", + "src": "759:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "749:6:5", + "nodeType": "YulIdentifier", + "src": "749:6:5" + }, + "nativeSrc": "749:12:5", + "nodeType": "YulFunctionCall", + "src": "749:12:5" + }, + "nativeSrc": "749:12:5", + "nodeType": "YulExpressionStatement", + "src": "749:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "721:7:5", + "nodeType": "YulIdentifier", + "src": "721:7:5" + }, + { + "name": "headStart", + "nativeSrc": "730:9:5", + "nodeType": "YulIdentifier", + "src": "730:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "717:3:5", + "nodeType": "YulIdentifier", + "src": "717:3:5" + }, + "nativeSrc": "717:23:5", + "nodeType": "YulFunctionCall", + "src": "717:23:5" + }, + { + "kind": "number", + "nativeSrc": "742:3:5", + "nodeType": "YulLiteral", + "src": "742:3:5", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "713:3:5", + "nodeType": "YulIdentifier", + "src": "713:3:5" + }, + "nativeSrc": "713:33:5", + "nodeType": "YulFunctionCall", + "src": "713:33:5" + }, + "nativeSrc": "710:53:5", + "nodeType": "YulIf", + "src": "710:53:5" + }, + { + "nativeSrc": "772:36:5", + "nodeType": "YulVariableDeclaration", + "src": "772:36:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "798:9:5", + "nodeType": "YulIdentifier", + "src": "798:9:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "785:12:5", + "nodeType": "YulIdentifier", + "src": "785:12:5" + }, + "nativeSrc": "785:23:5", + "nodeType": "YulFunctionCall", + "src": "785:23:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "776:5:5", + "nodeType": "YulTypedName", + "src": "776:5:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "842:5:5", + "nodeType": "YulIdentifier", + "src": "842:5:5" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "817:24:5", + "nodeType": "YulIdentifier", + "src": "817:24:5" + }, + "nativeSrc": "817:31:5", + "nodeType": "YulFunctionCall", + "src": "817:31:5" + }, + "nativeSrc": "817:31:5", + "nodeType": "YulExpressionStatement", + "src": "817:31:5" + }, + { + "nativeSrc": "857:15:5", + "nodeType": "YulAssignment", + "src": "857:15:5", + "value": { + "name": "value", + "nativeSrc": "867:5:5", + "nodeType": "YulIdentifier", + "src": "867:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "857:6:5", + "nodeType": "YulIdentifier", + "src": "857:6:5" + } + ] + }, + { + "nativeSrc": "881:46:5", + "nodeType": "YulVariableDeclaration", + "src": "881:46:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "912:9:5", + "nodeType": "YulIdentifier", + "src": "912:9:5" + }, + { + "kind": "number", + "nativeSrc": "923:2:5", + "nodeType": "YulLiteral", + "src": "923:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "908:3:5", + "nodeType": "YulIdentifier", + "src": "908:3:5" + }, + "nativeSrc": "908:18:5", + "nodeType": "YulFunctionCall", + "src": "908:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "895:12:5", + "nodeType": "YulIdentifier", + "src": "895:12:5" + }, + "nativeSrc": "895:32:5", + "nodeType": "YulFunctionCall", + "src": "895:32:5" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "885:6:5", + "nodeType": "YulTypedName", + "src": "885:6:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "970:16:5", + "nodeType": "YulBlock", + "src": "970:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "979:1:5", + "nodeType": "YulLiteral", + "src": "979:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "982:1:5", + "nodeType": "YulLiteral", + "src": "982:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "972:6:5", + "nodeType": "YulIdentifier", + "src": "972:6:5" + }, + "nativeSrc": "972:12:5", + "nodeType": "YulFunctionCall", + "src": "972:12:5" + }, + "nativeSrc": "972:12:5", + "nodeType": "YulExpressionStatement", + "src": "972:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "942:6:5", + "nodeType": "YulIdentifier", + "src": "942:6:5" + }, + { + "kind": "number", + "nativeSrc": "950:18:5", + "nodeType": "YulLiteral", + "src": "950:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "939:2:5", + "nodeType": "YulIdentifier", + "src": "939:2:5" + }, + "nativeSrc": "939:30:5", + "nodeType": "YulFunctionCall", + "src": "939:30:5" + }, + "nativeSrc": "936:50:5", + "nodeType": "YulIf", + "src": "936:50:5" + }, + { + "nativeSrc": "995:85:5", + "nodeType": "YulVariableDeclaration", + "src": "995:85:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1052:9:5", + "nodeType": "YulIdentifier", + "src": "1052:9:5" + }, + { + "name": "offset", + "nativeSrc": "1063:6:5", + "nodeType": "YulIdentifier", + "src": "1063:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1048:3:5", + "nodeType": "YulIdentifier", + "src": "1048:3:5" + }, + "nativeSrc": "1048:22:5", + "nodeType": "YulFunctionCall", + "src": "1048:22:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1072:7:5", + "nodeType": "YulIdentifier", + "src": "1072:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1021:26:5", + "nodeType": "YulIdentifier", + "src": "1021:26:5" + }, + "nativeSrc": "1021:59:5", + "nodeType": "YulFunctionCall", + "src": "1021:59:5" + }, + "variables": [ + { + "name": "value1_1", + "nativeSrc": "999:8:5", + "nodeType": "YulTypedName", + "src": "999:8:5", + "type": "" + }, + { + "name": "value2_1", + "nativeSrc": "1009:8:5", + "nodeType": "YulTypedName", + "src": "1009:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1089:18:5", + "nodeType": "YulAssignment", + "src": "1089:18:5", + "value": { + "name": "value1_1", + "nativeSrc": "1099:8:5", + "nodeType": "YulIdentifier", + "src": "1099:8:5" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1089:6:5", + "nodeType": "YulIdentifier", + "src": "1089:6:5" + } + ] + }, + { + "nativeSrc": "1116:18:5", + "nodeType": "YulAssignment", + "src": "1116:18:5", + "value": { + "name": "value2_1", + "nativeSrc": "1126:8:5", + "nodeType": "YulIdentifier", + "src": "1126:8:5" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1116:6:5", + "nodeType": "YulIdentifier", + "src": "1116:6:5" + } + ] + }, + { + "nativeSrc": "1143:48:5", + "nodeType": "YulVariableDeclaration", + "src": "1143:48:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1176:9:5", + "nodeType": "YulIdentifier", + "src": "1176:9:5" + }, + { + "kind": "number", + "nativeSrc": "1187:2:5", + "nodeType": "YulLiteral", + "src": "1187:2:5", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1172:3:5", + "nodeType": "YulIdentifier", + "src": "1172:3:5" + }, + "nativeSrc": "1172:18:5", + "nodeType": "YulFunctionCall", + "src": "1172:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1159:12:5", + "nodeType": "YulIdentifier", + "src": "1159:12:5" + }, + "nativeSrc": "1159:32:5", + "nodeType": "YulFunctionCall", + "src": "1159:32:5" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "1147:8:5", + "nodeType": "YulTypedName", + "src": "1147:8:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1236:16:5", + "nodeType": "YulBlock", + "src": "1236:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1245:1:5", + "nodeType": "YulLiteral", + "src": "1245:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1248:1:5", + "nodeType": "YulLiteral", + "src": "1248:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1238:6:5", + "nodeType": "YulIdentifier", + "src": "1238:6:5" + }, + "nativeSrc": "1238:12:5", + "nodeType": "YulFunctionCall", + "src": "1238:12:5" + }, + "nativeSrc": "1238:12:5", + "nodeType": "YulExpressionStatement", + "src": "1238:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "1206:8:5", + "nodeType": "YulIdentifier", + "src": "1206:8:5" + }, + { + "kind": "number", + "nativeSrc": "1216:18:5", + "nodeType": "YulLiteral", + "src": "1216:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1203:2:5", + "nodeType": "YulIdentifier", + "src": "1203:2:5" + }, + "nativeSrc": "1203:32:5", + "nodeType": "YulFunctionCall", + "src": "1203:32:5" + }, + "nativeSrc": "1200:52:5", + "nodeType": "YulIf", + "src": "1200:52:5" + }, + { + "nativeSrc": "1261:87:5", + "nodeType": "YulVariableDeclaration", + "src": "1261:87:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1318:9:5", + "nodeType": "YulIdentifier", + "src": "1318:9:5" + }, + { + "name": "offset_1", + "nativeSrc": "1329:8:5", + "nodeType": "YulIdentifier", + "src": "1329:8:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1314:3:5", + "nodeType": "YulIdentifier", + "src": "1314:3:5" + }, + "nativeSrc": "1314:24:5", + "nodeType": "YulFunctionCall", + "src": "1314:24:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1340:7:5", + "nodeType": "YulIdentifier", + "src": "1340:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1287:26:5", + "nodeType": "YulIdentifier", + "src": "1287:26:5" + }, + "nativeSrc": "1287:61:5", + "nodeType": "YulFunctionCall", + "src": "1287:61:5" + }, + "variables": [ + { + "name": "value3_1", + "nativeSrc": "1265:8:5", + "nodeType": "YulTypedName", + "src": "1265:8:5", + "type": "" + }, + { + "name": "value4_1", + "nativeSrc": "1275:8:5", + "nodeType": "YulTypedName", + "src": "1275:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1357:18:5", + "nodeType": "YulAssignment", + "src": "1357:18:5", + "value": { + "name": "value3_1", + "nativeSrc": "1367:8:5", + "nodeType": "YulIdentifier", + "src": "1367:8:5" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "1357:6:5", + "nodeType": "YulIdentifier", + "src": "1357:6:5" + } + ] + }, + { + "nativeSrc": "1384:18:5", + "nodeType": "YulAssignment", + "src": "1384:18:5", + "value": { + "name": "value4_1", + "nativeSrc": "1394:8:5", + "nodeType": "YulIdentifier", + "src": "1394:8:5" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "1384:6:5", + "nodeType": "YulIdentifier", + "src": "1384:6:5" + } + ] + }, + { + "nativeSrc": "1411:48:5", + "nodeType": "YulVariableDeclaration", + "src": "1411:48:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1444:9:5", + "nodeType": "YulIdentifier", + "src": "1444:9:5" + }, + { + "kind": "number", + "nativeSrc": "1455:2:5", + "nodeType": "YulLiteral", + "src": "1455:2:5", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1440:3:5", + "nodeType": "YulIdentifier", + "src": "1440:3:5" + }, + "nativeSrc": "1440:18:5", + "nodeType": "YulFunctionCall", + "src": "1440:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1427:12:5", + "nodeType": "YulIdentifier", + "src": "1427:12:5" + }, + "nativeSrc": "1427:32:5", + "nodeType": "YulFunctionCall", + "src": "1427:32:5" + }, + "variables": [ + { + "name": "offset_2", + "nativeSrc": "1415:8:5", + "nodeType": "YulTypedName", + "src": "1415:8:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1504:16:5", + "nodeType": "YulBlock", + "src": "1504:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1513:1:5", + "nodeType": "YulLiteral", + "src": "1513:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1516:1:5", + "nodeType": "YulLiteral", + "src": "1516:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1506:6:5", + "nodeType": "YulIdentifier", + "src": "1506:6:5" + }, + "nativeSrc": "1506:12:5", + "nodeType": "YulFunctionCall", + "src": "1506:12:5" + }, + "nativeSrc": "1506:12:5", + "nodeType": "YulExpressionStatement", + "src": "1506:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_2", + "nativeSrc": "1474:8:5", + "nodeType": "YulIdentifier", + "src": "1474:8:5" + }, + { + "kind": "number", + "nativeSrc": "1484:18:5", + "nodeType": "YulLiteral", + "src": "1484:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1471:2:5", + "nodeType": "YulIdentifier", + "src": "1471:2:5" + }, + "nativeSrc": "1471:32:5", + "nodeType": "YulFunctionCall", + "src": "1471:32:5" + }, + "nativeSrc": "1468:52:5", + "nodeType": "YulIf", + "src": "1468:52:5" + }, + { + "nativeSrc": "1529:87:5", + "nodeType": "YulVariableDeclaration", + "src": "1529:87:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1586:9:5", + "nodeType": "YulIdentifier", + "src": "1586:9:5" + }, + { + "name": "offset_2", + "nativeSrc": "1597:8:5", + "nodeType": "YulIdentifier", + "src": "1597:8:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:5", + "nodeType": "YulIdentifier", + "src": "1582:3:5" + }, + "nativeSrc": "1582:24:5", + "nodeType": "YulFunctionCall", + "src": "1582:24:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1608:7:5", + "nodeType": "YulIdentifier", + "src": "1608:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1555:26:5", + "nodeType": "YulIdentifier", + "src": "1555:26:5" + }, + "nativeSrc": "1555:61:5", + "nodeType": "YulFunctionCall", + "src": "1555:61:5" + }, + "variables": [ + { + "name": "value5_1", + "nativeSrc": "1533:8:5", + "nodeType": "YulTypedName", + "src": "1533:8:5", + "type": "" + }, + { + "name": "value6_1", + "nativeSrc": "1543:8:5", + "nodeType": "YulTypedName", + "src": "1543:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1625:18:5", + "nodeType": "YulAssignment", + "src": "1625:18:5", + "value": { + "name": "value5_1", + "nativeSrc": "1635:8:5", + "nodeType": "YulIdentifier", + "src": "1635:8:5" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "1625:6:5", + "nodeType": "YulIdentifier", + "src": "1625:6:5" + } + ] + }, + { + "nativeSrc": "1652:18:5", + "nodeType": "YulAssignment", + "src": "1652:18:5", + "value": { + "name": "value6_1", + "nativeSrc": "1662:8:5", + "nodeType": "YulIdentifier", + "src": "1662:8:5" + }, + "variableNames": [ + { + "name": "value6", + "nativeSrc": "1652:6:5", + "nodeType": "YulIdentifier", + "src": "1652:6:5" + } + ] + }, + { + "nativeSrc": "1679:43:5", + "nodeType": "YulAssignment", + "src": "1679:43:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1706:9:5", + "nodeType": "YulIdentifier", + "src": "1706:9:5" + }, + { + "kind": "number", + "nativeSrc": "1717:3:5", + "nodeType": "YulLiteral", + "src": "1717:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1702:3:5", + "nodeType": "YulIdentifier", + "src": "1702:3:5" + }, + "nativeSrc": "1702:19:5", + "nodeType": "YulFunctionCall", + "src": "1702:19:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1689:12:5", + "nodeType": "YulIdentifier", + "src": "1689:12:5" + }, + "nativeSrc": "1689:33:5", + "nodeType": "YulFunctionCall", + "src": "1689:33:5" + }, + "variableNames": [ + { + "name": "value7", + "nativeSrc": "1679:6:5", + "nodeType": "YulIdentifier", + "src": "1679:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_string_calldata_ptrt_bytes_calldata_ptrt_bytes32", + "nativeSrc": "503:1225:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "610:9:5", + "nodeType": "YulTypedName", + "src": "610:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "621:7:5", + "nodeType": "YulTypedName", + "src": "621:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "633:6:5", + "nodeType": "YulTypedName", + "src": "633:6:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "641:6:5", + "nodeType": "YulTypedName", + "src": "641:6:5", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "649:6:5", + "nodeType": "YulTypedName", + "src": "649:6:5", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "657:6:5", + "nodeType": "YulTypedName", + "src": "657:6:5", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "665:6:5", + "nodeType": "YulTypedName", + "src": "665:6:5", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "673:6:5", + "nodeType": "YulTypedName", + "src": "673:6:5", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "681:6:5", + "nodeType": "YulTypedName", + "src": "681:6:5", + "type": "" + }, + { + "name": "value7", + "nativeSrc": "689:6:5", + "nodeType": "YulTypedName", + "src": "689:6:5", + "type": "" + } + ], + "src": "503:1225:5" + }, + { + "body": { + "nativeSrc": "1850:102:5", + "nodeType": "YulBlock", + "src": "1850:102:5", + "statements": [ + { + "nativeSrc": "1860:26:5", + "nodeType": "YulAssignment", + "src": "1860:26:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1872:9:5", + "nodeType": "YulIdentifier", + "src": "1872:9:5" + }, + { + "kind": "number", + "nativeSrc": "1883:2:5", + "nodeType": "YulLiteral", + "src": "1883:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1868:3:5", + "nodeType": "YulIdentifier", + "src": "1868:3:5" + }, + "nativeSrc": "1868:18:5", + "nodeType": "YulFunctionCall", + "src": "1868:18:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1860:4:5", + "nodeType": "YulIdentifier", + "src": "1860:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1902:9:5", + "nodeType": "YulIdentifier", + "src": "1902:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1917:6:5", + "nodeType": "YulIdentifier", + "src": "1917:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1933:3:5", + "nodeType": "YulLiteral", + "src": "1933:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1938:1:5", + "nodeType": "YulLiteral", + "src": "1938:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1929:3:5", + "nodeType": "YulIdentifier", + "src": "1929:3:5" + }, + "nativeSrc": "1929:11:5", + "nodeType": "YulFunctionCall", + "src": "1929:11:5" + }, + { + "kind": "number", + "nativeSrc": "1942:1:5", + "nodeType": "YulLiteral", + "src": "1942:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1925:3:5", + "nodeType": "YulIdentifier", + "src": "1925:3:5" + }, + "nativeSrc": "1925:19:5", + "nodeType": "YulFunctionCall", + "src": "1925:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1913:3:5", + "nodeType": "YulIdentifier", + "src": "1913:3:5" + }, + "nativeSrc": "1913:32:5", + "nodeType": "YulFunctionCall", + "src": "1913:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1895:6:5", + "nodeType": "YulIdentifier", + "src": "1895:6:5" + }, + "nativeSrc": "1895:51:5", + "nodeType": "YulFunctionCall", + "src": "1895:51:5" + }, + "nativeSrc": "1895:51:5", + "nodeType": "YulExpressionStatement", + "src": "1895:51:5" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed", + "nativeSrc": "1733:219:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1819:9:5", + "nodeType": "YulTypedName", + "src": "1819:9:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1830:6:5", + "nodeType": "YulTypedName", + "src": "1830:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1841:4:5", + "nodeType": "YulTypedName", + "src": "1841:4:5", + "type": "" + } + ], + "src": "1733:219:5" + }, + { + "body": { + "nativeSrc": "2082:102:5", + "nodeType": "YulBlock", + "src": "2082:102:5", + "statements": [ + { + "nativeSrc": "2092:26:5", + "nodeType": "YulAssignment", + "src": "2092:26:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2104:9:5", + "nodeType": "YulIdentifier", + "src": "2104:9:5" + }, + { + "kind": "number", + "nativeSrc": "2115:2:5", + "nodeType": "YulLiteral", + "src": "2115:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2100:3:5", + "nodeType": "YulIdentifier", + "src": "2100:3:5" + }, + "nativeSrc": "2100:18:5", + "nodeType": "YulFunctionCall", + "src": "2100:18:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2092:4:5", + "nodeType": "YulIdentifier", + "src": "2092:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2134:9:5", + "nodeType": "YulIdentifier", + "src": "2134:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2149:6:5", + "nodeType": "YulIdentifier", + "src": "2149:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2165:3:5", + "nodeType": "YulLiteral", + "src": "2165:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2170:1:5", + "nodeType": "YulLiteral", + "src": "2170:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2161:3:5", + "nodeType": "YulIdentifier", + "src": "2161:3:5" + }, + "nativeSrc": "2161:11:5", + "nodeType": "YulFunctionCall", + "src": "2161:11:5" + }, + { + "kind": "number", + "nativeSrc": "2174:1:5", + "nodeType": "YulLiteral", + "src": "2174:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2157:3:5", + "nodeType": "YulIdentifier", + "src": "2157:3:5" + }, + "nativeSrc": "2157:19:5", + "nodeType": "YulFunctionCall", + "src": "2157:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2145:3:5", + "nodeType": "YulIdentifier", + "src": "2145:3:5" + }, + "nativeSrc": "2145:32:5", + "nodeType": "YulFunctionCall", + "src": "2145:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2127:6:5", + "nodeType": "YulIdentifier", + "src": "2127:6:5" + }, + "nativeSrc": "2127:51:5", + "nodeType": "YulFunctionCall", + "src": "2127:51:5" + }, + "nativeSrc": "2127:51:5", + "nodeType": "YulExpressionStatement", + "src": "2127:51:5" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IDatasetRegistry_$125__to_t_address__fromStack_reversed", + "nativeSrc": "1957:227:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2051:9:5", + "nodeType": "YulTypedName", + "src": "2051:9:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2062:6:5", + "nodeType": "YulTypedName", + "src": "2062:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2073:4:5", + "nodeType": "YulTypedName", + "src": "2073:4:5", + "type": "" + } + ], + "src": "1957:227:5" + }, + { + "body": { + "nativeSrc": "2256:200:5", + "nodeType": "YulBlock", + "src": "2256:200:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2273:3:5", + "nodeType": "YulIdentifier", + "src": "2273:3:5" + }, + { + "name": "length", + "nativeSrc": "2278:6:5", + "nodeType": "YulIdentifier", + "src": "2278:6:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2266:6:5", + "nodeType": "YulIdentifier", + "src": "2266:6:5" + }, + "nativeSrc": "2266:19:5", + "nodeType": "YulFunctionCall", + "src": "2266:19:5" + }, + "nativeSrc": "2266:19:5", + "nodeType": "YulExpressionStatement", + "src": "2266:19:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2311:3:5", + "nodeType": "YulIdentifier", + "src": "2311:3:5" + }, + { + "kind": "number", + "nativeSrc": "2316:4:5", + "nodeType": "YulLiteral", + "src": "2316:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2307:3:5", + "nodeType": "YulIdentifier", + "src": "2307:3:5" + }, + "nativeSrc": "2307:14:5", + "nodeType": "YulFunctionCall", + "src": "2307:14:5" + }, + { + "name": "start", + "nativeSrc": "2323:5:5", + "nodeType": "YulIdentifier", + "src": "2323:5:5" + }, + { + "name": "length", + "nativeSrc": "2330:6:5", + "nodeType": "YulIdentifier", + "src": "2330:6:5" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "2294:12:5", + "nodeType": "YulIdentifier", + "src": "2294:12:5" + }, + "nativeSrc": "2294:43:5", + "nodeType": "YulFunctionCall", + "src": "2294:43:5" + }, + "nativeSrc": "2294:43:5", + "nodeType": "YulExpressionStatement", + "src": "2294:43:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2361:3:5", + "nodeType": "YulIdentifier", + "src": "2361:3:5" + }, + { + "name": "length", + "nativeSrc": "2366:6:5", + "nodeType": "YulIdentifier", + "src": "2366:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2357:3:5", + "nodeType": "YulIdentifier", + "src": "2357:3:5" + }, + "nativeSrc": "2357:16:5", + "nodeType": "YulFunctionCall", + "src": "2357:16:5" + }, + { + "kind": "number", + "nativeSrc": "2375:4:5", + "nodeType": "YulLiteral", + "src": "2375:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2353:3:5", + "nodeType": "YulIdentifier", + "src": "2353:3:5" + }, + "nativeSrc": "2353:27:5", + "nodeType": "YulFunctionCall", + "src": "2353:27:5" + }, + { + "kind": "number", + "nativeSrc": "2382:1:5", + "nodeType": "YulLiteral", + "src": "2382:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2346:6:5", + "nodeType": "YulIdentifier", + "src": "2346:6:5" + }, + "nativeSrc": "2346:38:5", + "nodeType": "YulFunctionCall", + "src": "2346:38:5" + }, + "nativeSrc": "2346:38:5", + "nodeType": "YulExpressionStatement", + "src": "2346:38:5" + }, + { + "nativeSrc": "2393:57:5", + "nodeType": "YulAssignment", + "src": "2393:57:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2408:3:5", + "nodeType": "YulIdentifier", + "src": "2408:3:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2421:6:5", + "nodeType": "YulIdentifier", + "src": "2421:6:5" + }, + { + "kind": "number", + "nativeSrc": "2429:2:5", + "nodeType": "YulLiteral", + "src": "2429:2:5", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2417:3:5", + "nodeType": "YulIdentifier", + "src": "2417:3:5" + }, + "nativeSrc": "2417:15:5", + "nodeType": "YulFunctionCall", + "src": "2417:15:5" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2438:2:5", + "nodeType": "YulLiteral", + "src": "2438:2:5", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2434:3:5", + "nodeType": "YulIdentifier", + "src": "2434:3:5" + }, + "nativeSrc": "2434:7:5", + "nodeType": "YulFunctionCall", + "src": "2434:7:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2413:3:5", + "nodeType": "YulIdentifier", + "src": "2413:3:5" + }, + "nativeSrc": "2413:29:5", + "nodeType": "YulFunctionCall", + "src": "2413:29:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2404:3:5", + "nodeType": "YulIdentifier", + "src": "2404:3:5" + }, + "nativeSrc": "2404:39:5", + "nodeType": "YulFunctionCall", + "src": "2404:39:5" + }, + { + "kind": "number", + "nativeSrc": "2445:4:5", + "nodeType": "YulLiteral", + "src": "2445:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2400:3:5", + "nodeType": "YulIdentifier", + "src": "2400:3:5" + }, + "nativeSrc": "2400:50:5", + "nodeType": "YulFunctionCall", + "src": "2400:50:5" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2393:3:5", + "nodeType": "YulIdentifier", + "src": "2393:3:5" + } + ] + } + ] + }, + "name": "abi_encode_string_calldata", + "nativeSrc": "2189:267:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "2225:5:5", + "nodeType": "YulTypedName", + "src": "2225:5:5", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2232:6:5", + "nodeType": "YulTypedName", + "src": "2232:6:5", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2240:3:5", + "nodeType": "YulTypedName", + "src": "2240:3:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2248:3:5", + "nodeType": "YulTypedName", + "src": "2248:3:5", + "type": "" + } + ], + "src": "2189:267:5" + }, + { + "body": { + "nativeSrc": "2704:362:5", + "nodeType": "YulBlock", + "src": "2704:362:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2721:9:5", + "nodeType": "YulIdentifier", + "src": "2721:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2736:6:5", + "nodeType": "YulIdentifier", + "src": "2736:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2752:3:5", + "nodeType": "YulLiteral", + "src": "2752:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2757:1:5", + "nodeType": "YulLiteral", + "src": "2757:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2748:3:5", + "nodeType": "YulIdentifier", + "src": "2748:3:5" + }, + "nativeSrc": "2748:11:5", + "nodeType": "YulFunctionCall", + "src": "2748:11:5" + }, + { + "kind": "number", + "nativeSrc": "2761:1:5", + "nodeType": "YulLiteral", + "src": "2761:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2744:3:5", + "nodeType": "YulIdentifier", + "src": "2744:3:5" + }, + "nativeSrc": "2744:19:5", + "nodeType": "YulFunctionCall", + "src": "2744:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2732:3:5", + "nodeType": "YulIdentifier", + "src": "2732:3:5" + }, + "nativeSrc": "2732:32:5", + "nodeType": "YulFunctionCall", + "src": "2732:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2714:6:5", + "nodeType": "YulIdentifier", + "src": "2714:6:5" + }, + "nativeSrc": "2714:51:5", + "nodeType": "YulFunctionCall", + "src": "2714:51:5" + }, + "nativeSrc": "2714:51:5", + "nodeType": "YulExpressionStatement", + "src": "2714:51:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2785:9:5", + "nodeType": "YulIdentifier", + "src": "2785:9:5" + }, + { + "kind": "number", + "nativeSrc": "2796:2:5", + "nodeType": "YulLiteral", + "src": "2796:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2781:3:5", + "nodeType": "YulIdentifier", + "src": "2781:3:5" + }, + "nativeSrc": "2781:18:5", + "nodeType": "YulFunctionCall", + "src": "2781:18:5" + }, + { + "kind": "number", + "nativeSrc": "2801:3:5", + "nodeType": "YulLiteral", + "src": "2801:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2774:6:5", + "nodeType": "YulIdentifier", + "src": "2774:6:5" + }, + "nativeSrc": "2774:31:5", + "nodeType": "YulFunctionCall", + "src": "2774:31:5" + }, + "nativeSrc": "2774:31:5", + "nodeType": "YulExpressionStatement", + "src": "2774:31:5" + }, + { + "nativeSrc": "2814:77:5", + "nodeType": "YulVariableDeclaration", + "src": "2814:77:5", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2855:6:5", + "nodeType": "YulIdentifier", + "src": "2855:6:5" + }, + { + "name": "value2", + "nativeSrc": "2863:6:5", + "nodeType": "YulIdentifier", + "src": "2863:6:5" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2875:9:5", + "nodeType": "YulIdentifier", + "src": "2875:9:5" + }, + { + "kind": "number", + "nativeSrc": "2886:3:5", + "nodeType": "YulLiteral", + "src": "2886:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2871:3:5", + "nodeType": "YulIdentifier", + "src": "2871:3:5" + }, + "nativeSrc": "2871:19:5", + "nodeType": "YulFunctionCall", + "src": "2871:19:5" + } + ], + "functionName": { + "name": "abi_encode_string_calldata", + "nativeSrc": "2828:26:5", + "nodeType": "YulIdentifier", + "src": "2828:26:5" + }, + "nativeSrc": "2828:63:5", + "nodeType": "YulFunctionCall", + "src": "2828:63:5" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "2818:6:5", + "nodeType": "YulTypedName", + "src": "2818:6:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2911:9:5", + "nodeType": "YulIdentifier", + "src": "2911:9:5" + }, + { + "kind": "number", + "nativeSrc": "2922:2:5", + "nodeType": "YulLiteral", + "src": "2922:2:5", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2907:3:5", + "nodeType": "YulIdentifier", + "src": "2907:3:5" + }, + "nativeSrc": "2907:18:5", + "nodeType": "YulFunctionCall", + "src": "2907:18:5" + }, + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "2931:6:5", + "nodeType": "YulIdentifier", + "src": "2931:6:5" + }, + { + "name": "headStart", + "nativeSrc": "2939:9:5", + "nodeType": "YulIdentifier", + "src": "2939:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2927:3:5", + "nodeType": "YulIdentifier", + "src": "2927:3:5" + }, + "nativeSrc": "2927:22:5", + "nodeType": "YulFunctionCall", + "src": "2927:22:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2900:6:5", + "nodeType": "YulIdentifier", + "src": "2900:6:5" + }, + "nativeSrc": "2900:50:5", + "nodeType": "YulFunctionCall", + "src": "2900:50:5" + }, + "nativeSrc": "2900:50:5", + "nodeType": "YulExpressionStatement", + "src": "2900:50:5" + }, + { + "nativeSrc": "2959:58:5", + "nodeType": "YulAssignment", + "src": "2959:58:5", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "2994:6:5", + "nodeType": "YulIdentifier", + "src": "2994:6:5" + }, + { + "name": "value4", + "nativeSrc": "3002:6:5", + "nodeType": "YulIdentifier", + "src": "3002:6:5" + }, + { + "name": "tail_1", + "nativeSrc": "3010:6:5", + "nodeType": "YulIdentifier", + "src": "3010:6:5" + } + ], + "functionName": { + "name": "abi_encode_string_calldata", + "nativeSrc": "2967:26:5", + "nodeType": "YulIdentifier", + "src": "2967:26:5" + }, + "nativeSrc": "2967:50:5", + "nodeType": "YulFunctionCall", + "src": "2967:50:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2959:4:5", + "nodeType": "YulIdentifier", + "src": "2959:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3037:9:5", + "nodeType": "YulIdentifier", + "src": "3037:9:5" + }, + { + "kind": "number", + "nativeSrc": "3048:2:5", + "nodeType": "YulLiteral", + "src": "3048:2:5", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3033:3:5", + "nodeType": "YulIdentifier", + "src": "3033:3:5" + }, + "nativeSrc": "3033:18:5", + "nodeType": "YulFunctionCall", + "src": "3033:18:5" + }, + { + "name": "value5", + "nativeSrc": "3053:6:5", + "nodeType": "YulIdentifier", + "src": "3053:6:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3026:6:5", + "nodeType": "YulIdentifier", + "src": "3026:6:5" + }, + "nativeSrc": "3026:34:5", + "nodeType": "YulFunctionCall", + "src": "3026:34:5" + }, + "nativeSrc": "3026:34:5", + "nodeType": "YulExpressionStatement", + "src": "3026:34:5" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_string_calldata_ptr_t_bytes_calldata_ptr_t_bytes32__to_t_address_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes32__fromStack_reversed", + "nativeSrc": "2461:605:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2633:9:5", + "nodeType": "YulTypedName", + "src": "2633:9:5", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "2644:6:5", + "nodeType": "YulTypedName", + "src": "2644:6:5", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "2652:6:5", + "nodeType": "YulTypedName", + "src": "2652:6:5", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "2660:6:5", + "nodeType": "YulTypedName", + "src": "2660:6:5", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2668:6:5", + "nodeType": "YulTypedName", + "src": "2668:6:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2676:6:5", + "nodeType": "YulTypedName", + "src": "2676:6:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2684:6:5", + "nodeType": "YulTypedName", + "src": "2684:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2695:4:5", + "nodeType": "YulTypedName", + "src": "2695:4:5", + "type": "" + } + ], + "src": "2461:605:5" + }, + { + "body": { + "nativeSrc": "3168:170:5", + "nodeType": "YulBlock", + "src": "3168:170:5", + "statements": [ + { + "body": { + "nativeSrc": "3214:16:5", + "nodeType": "YulBlock", + "src": "3214:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3223:1:5", + "nodeType": "YulLiteral", + "src": "3223:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3226:1:5", + "nodeType": "YulLiteral", + "src": "3226:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3216:6:5", + "nodeType": "YulIdentifier", + "src": "3216:6:5" + }, + "nativeSrc": "3216:12:5", + "nodeType": "YulFunctionCall", + "src": "3216:12:5" + }, + "nativeSrc": "3216:12:5", + "nodeType": "YulExpressionStatement", + "src": "3216:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3189:7:5", + "nodeType": "YulIdentifier", + "src": "3189:7:5" + }, + { + "name": "headStart", + "nativeSrc": "3198:9:5", + "nodeType": "YulIdentifier", + "src": "3198:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3185:3:5", + "nodeType": "YulIdentifier", + "src": "3185:3:5" + }, + "nativeSrc": "3185:23:5", + "nodeType": "YulFunctionCall", + "src": "3185:23:5" + }, + { + "kind": "number", + "nativeSrc": "3210:2:5", + "nodeType": "YulLiteral", + "src": "3210:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3181:3:5", + "nodeType": "YulIdentifier", + "src": "3181:3:5" + }, + "nativeSrc": "3181:32:5", + "nodeType": "YulFunctionCall", + "src": "3181:32:5" + }, + "nativeSrc": "3178:52:5", + "nodeType": "YulIf", + "src": "3178:52:5" + }, + { + "nativeSrc": "3239:29:5", + "nodeType": "YulVariableDeclaration", + "src": "3239:29:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3258:9:5", + "nodeType": "YulIdentifier", + "src": "3258:9:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3252:5:5", + "nodeType": "YulIdentifier", + "src": "3252:5:5" + }, + "nativeSrc": "3252:16:5", + "nodeType": "YulFunctionCall", + "src": "3252:16:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3243:5:5", + "nodeType": "YulTypedName", + "src": "3243:5:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3302:5:5", + "nodeType": "YulIdentifier", + "src": "3302:5:5" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "3277:24:5", + "nodeType": "YulIdentifier", + "src": "3277:24:5" + }, + "nativeSrc": "3277:31:5", + "nodeType": "YulFunctionCall", + "src": "3277:31:5" + }, + "nativeSrc": "3277:31:5", + "nodeType": "YulExpressionStatement", + "src": "3277:31:5" + }, + { + "nativeSrc": "3317:15:5", + "nodeType": "YulAssignment", + "src": "3317:15:5", + "value": { + "name": "value", + "nativeSrc": "3327:5:5", + "nodeType": "YulIdentifier", + "src": "3327:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3317:6:5", + "nodeType": "YulIdentifier", + "src": "3317:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_IDataset_$107_fromMemory", + "nativeSrc": "3071:267:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3134:9:5", + "nodeType": "YulTypedName", + "src": "3134:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3145:7:5", + "nodeType": "YulTypedName", + "src": "3145:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3157:6:5", + "nodeType": "YulTypedName", + "src": "3157:6:5", + "type": "" + } + ], + "src": "3071:267:5" + }, + { + "body": { + "nativeSrc": "3474:116:5", + "nodeType": "YulBlock", + "src": "3474:116:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3491:9:5", + "nodeType": "YulIdentifier", + "src": "3491:9:5" + }, + { + "kind": "number", + "nativeSrc": "3502:2:5", + "nodeType": "YulLiteral", + "src": "3502:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3484:6:5", + "nodeType": "YulIdentifier", + "src": "3484:6:5" + }, + "nativeSrc": "3484:21:5", + "nodeType": "YulFunctionCall", + "src": "3484:21:5" + }, + "nativeSrc": "3484:21:5", + "nodeType": "YulExpressionStatement", + "src": "3484:21:5" + }, + { + "nativeSrc": "3514:70:5", + "nodeType": "YulAssignment", + "src": "3514:70:5", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3549:6:5", + "nodeType": "YulIdentifier", + "src": "3549:6:5" + }, + { + "name": "value1", + "nativeSrc": "3557:6:5", + "nodeType": "YulIdentifier", + "src": "3557:6:5" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3569:9:5", + "nodeType": "YulIdentifier", + "src": "3569:9:5" + }, + { + "kind": "number", + "nativeSrc": "3580:2:5", + "nodeType": "YulLiteral", + "src": "3580:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3565:3:5", + "nodeType": "YulIdentifier", + "src": "3565:3:5" + }, + "nativeSrc": "3565:18:5", + "nodeType": "YulFunctionCall", + "src": "3565:18:5" + } + ], + "functionName": { + "name": "abi_encode_string_calldata", + "nativeSrc": "3522:26:5", + "nodeType": "YulIdentifier", + "src": "3522:26:5" + }, + "nativeSrc": "3522:62:5", + "nodeType": "YulFunctionCall", + "src": "3522:62:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3514:4:5", + "nodeType": "YulIdentifier", + "src": "3514:4:5" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "3343:247:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3435:9:5", + "nodeType": "YulTypedName", + "src": "3435:9:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3446:6:5", + "nodeType": "YulTypedName", + "src": "3446:6:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3454:6:5", + "nodeType": "YulTypedName", + "src": "3454:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3465:4:5", + "nodeType": "YulTypedName", + "src": "3465:4:5", + "type": "" + } + ], + "src": "3343:247:5" + } + ] + }, + "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_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_string_calldata_ptrt_string_calldata_ptrt_bytes_calldata_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n let value5_1, value6_1 := abi_decode_string_calldata(add(headStart, offset_2), dataEnd)\n value5 := value5_1\n value6 := value6_1\n value7 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_contract$_IDataset_$107__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_contract$_IDatasetRegistry_$125__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_string_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\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_string_calldata_ptr_t_bytes_calldata_ptr_t_bytes32__to_t_address_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_string_calldata(value3, value4, tail_1)\n mstore(add(headStart, 96), value5)\n }\n function abi_decode_tuple_t_contract$_IDataset_$107_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string_calldata(value0, value1, add(headStart, 32))\n }\n}", + "id": 5, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "7": [ + { + "length": 32, + "start": 111 + }, + { + "length": 32, + "start": 150 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x167FBF5F EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0 JUMP JUMPDEST PUSH2 0x91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3354BCDB DUP12 DUP12 DUP12 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x109 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 0x12D SWAP2 SWAP1 PUSH2 0x315 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x37B19B8900A9B045473748167F459FA16828F33C13D71473BCA4B5E52E5F4D5D DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x16A SWAP3 SWAP2 SWAP1 PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x207 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x287 DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2EE SWAP1 DUP4 ADD DUP8 DUP10 PUSH2 0x2A0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x301 DUP2 DUP7 DUP9 PUSH2 0x2A0 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x332 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x34D PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL PUSH25 0x247810E731B2C7A76FCEFAD2CA335779409B90779F5DBE730D SWAP15 0xAC ADD PUSH17 0x9164736F6C634300081D00330000000000 ", + "sourceMap": "1310:692:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1489:511;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1913:32:5;;;1895:51;;1883:2;1868:18;1489:511:0;;;;;;;1357:42;;;;;1489:511;1731:8;1751:16;1770:8;-1:-1:-1;;;;;1770:22:0;;1806:13;1833:12;;1859:17;;1890:16;1770:146;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1751:165;;1945:7;-1:-1:-1;;;;;1931:38:0;;1954:14;;1931:38;;;;;;;:::i;:::-;;;;;;;;1986:7;1489:511;-1:-1:-1;;;;;;;;;1489:511:0:o;14:131:5:-;-1:-1:-1;;;;;89:31:5;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:348::-;202:8;212:6;266:3;259:4;251:6;247:17;243:27;233:55;;284:1;281;274:12;233:55;-1:-1:-1;307:20:5;;350:18;339:30;;336:50;;;382:1;379;372:12;336:50;419:4;411:6;407:17;395:29;;471:3;464:4;455:6;447;443:19;439:30;436:39;433:59;;;488:1;485;478:12;433:59;150:348;;;;;:::o;503:1225::-;633:6;641;649;657;665;673;681;689;742:3;730:9;721:7;717:23;713:33;710:53;;;759:1;756;749:12;710:53;798:9;785:23;817:31;842:5;817:31;:::i;:::-;867:5;-1:-1:-1;923:2:5;908:18;;895:32;950:18;939:30;;936:50;;;982:1;979;972:12;936:50;1021:59;1072:7;1063:6;1052:9;1048:22;1021:59;:::i;:::-;1099:8;;-1:-1:-1;995:85:5;-1:-1:-1;;1187:2:5;1172:18;;1159:32;1216:18;1203:32;;1200:52;;;1248:1;1245;1238:12;1200:52;1287:61;1340:7;1329:8;1318:9;1314:24;1287:61;:::i;:::-;1367:8;;-1:-1:-1;1261:87:5;-1:-1:-1;;1455:2:5;1440:18;;1427:32;1484:18;1471:32;;1468:52;;;1516:1;1513;1506:12;1468:52;1555:61;1608:7;1597:8;1586:9;1582:24;1555:61;:::i;:::-;503:1225;;;;-1:-1:-1;503:1225:5;;;;;;1529:87;;1717:3;1702:19;1689:33;;503:1225;-1:-1:-1;;;;503:1225:5:o;2189:267::-;2278:6;2273:3;2266:19;2330:6;2323:5;2316:4;2311:3;2307:14;2294:43;-1:-1:-1;2382:1:5;2357:16;;;2375:4;2353:27;;;2346:38;;;;2438:2;2417:15;;;-1:-1:-1;;2413:29:5;2404:39;;;2400:50;;2189:267::o;2461:605::-;-1:-1:-1;;;;;2732:32:5;;2714:51;;2801:3;2796:2;2781:18;;2774:31;;;-1:-1:-1;;2828:63:5;;2871:19;;2863:6;2855;2828:63;:::i;:::-;2939:9;2931:6;2927:22;2922:2;2911:9;2907:18;2900:50;2967;3010:6;3002;2994;2967:50;:::i;:::-;2959:58;;;3053:6;3048:2;3037:9;3033:18;3026:34;2461:605;;;;;;;;;:::o;3071:267::-;3157:6;3210:2;3198:9;3189:7;3185:23;3181:32;3178:52;;;3226:1;3223;3216:12;3178:52;3258:9;3252:16;3277:31;3302:5;3277:31;:::i;:::-;3327:5;3071:267;-1:-1:-1;;;3071:267:5:o;3343:247::-;3502:2;3491:9;3484:21;3465:4;3522:62;3580:2;3569:9;3565:18;3557:6;3549;3522:62;:::i;:::-;3514:70;3343:247;-1:-1:-1;;;;3343:247:5:o" + }, + "methodIdentifiers": { + "createDatasetWithSchema(address,string,string,bytes,bytes32)": "167fbf5f", + "registry()": "7b103999" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IDatasetRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IDataset\",\"name\":\"dataset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"name\":\"DatasetSchema\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_datasetSchema\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDatasetWithSchema\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IDatasetRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"params\":{\"dataset\":\"- The ID of ProtectedData (ERC721).\",\"schema\":\"- The schema of the data containing in the ProtectedData created.\"}}},\"kind\":\"dev\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"params\":{\"_datasetChecksum\":\"-The checksum of the ProtectedData.\",\"_datasetMultiaddr\":\"- The multiaddress of the ProtectedData.\",\"_datasetName\":\"- The name of the ProtectedData (metadata).\",\"_datasetOwner\":\"- The owner of the ProtectedData.\",\"_datasetSchema\":\"- The schema of the data containing in the ProtectedData\"},\"returns\":{\"_0\":\"IDataset - The ProtcetedData instance created.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"notice\":\"Event emitted when new ProtectedData is created.\"}},\"kind\":\"user\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"notice\":\"Create a new protectedData.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DataProtector.sol\":\"DataProtector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DataProtector.sol\":{\"keccak256\":\"0x69fe709c00e3502354e377936e95ce4c632b9c8f37e666da9fb3f43e44e54980\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d40c7ecec8cedb328bee981b282f44a02b5288ccbd7c9bd6bd666c161ce76bbc\",\"dweb:/ipfs/Qmbft3iMDa4beKHqasdRnZvJHf7CMxDq2mBy42addiFgDL\"]},\"contracts/interfaces/IDataProtector.sol\":{\"keccak256\":\"0xdcf3be7045fa35fa3e7bc1bbde488f8cc1419482da4a222b29a91346486405d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f7c53ed6549cc000f801b3c059870b0304558341ff972185f04f905f35a5a17e\",\"dweb:/ipfs/QmNT8NkrdWhmpUAwG9YE8mTuUVpdB46JtFsQeoNJiyNov4\"]},\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + }, + "contracts/DatasetRegistryMock.sol": { + "DatasetRegistryMock": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDataset", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506101818061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80633354bcdb14610030575b600080fd5b61004a61003e3660046100af565b60009695505050505050565b6040516001600160a01b03909116815260200160405180910390f35b60008083601f84011261007857600080fd5b50813567ffffffffffffffff81111561009057600080fd5b6020830191508360208285010111156100a857600080fd5b9250929050565b600080600080600080608087890312156100c857600080fd5b86356001600160a01b03811681146100df57600080fd5b9550602087013567ffffffffffffffff8111156100fb57600080fd5b61010789828a01610066565b909650945050604087013567ffffffffffffffff81111561012757600080fd5b61013389828a01610066565b979a969950949794969560609095013594935050505056fea26469706673582212202309c854e67905caf462e5bb05fd1aff01ecf016be257d1b9de3af328543c70464736f6c634300081d0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3354BCDB EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xAF JUMP JUMPDEST PUSH1 0x0 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x107 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x133 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP5 SWAP7 SWAP6 PUSH1 0x60 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x23 MULMOD 0xC8 SLOAD DUPN 0x79 SDIV 0xCA DELEGATECALL PUSH3 0xE5BB05 REVERT BYTE SELFDESTRUCT ADD EOFCREATE 0xF0 AND 0xBE 0x25 PUSH30 0x1B9DE3AF328543C70464736F6C634300081D003300000000000000000000 ", + "sourceMap": "1313:261:1:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@createDataset_74": { + "entryPoint": null, + "id": 74, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_decode_string_calldata": { + "entryPoint": 102, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_string_calldata_ptrt_bytes_calldata_ptrt_bytes32": { + "entryPoint": 175, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1551:5", + "nodeType": "YulBlock", + "src": "0:1551:5", + "statements": [ + { + "nativeSrc": "6:3:5", + "nodeType": "YulBlock", + "src": "6:3:5", + "statements": [] + }, + { + "body": { + "nativeSrc": "87:275:5", + "nodeType": "YulBlock", + "src": "87:275:5", + "statements": [ + { + "body": { + "nativeSrc": "136:16:5", + "nodeType": "YulBlock", + "src": "136:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "145:1:5", + "nodeType": "YulLiteral", + "src": "145:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "148:1:5", + "nodeType": "YulLiteral", + "src": "148:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "138:6:5", + "nodeType": "YulIdentifier", + "src": "138:6:5" + }, + "nativeSrc": "138:12:5", + "nodeType": "YulFunctionCall", + "src": "138:12:5" + }, + "nativeSrc": "138:12:5", + "nodeType": "YulExpressionStatement", + "src": "138:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "115:6:5", + "nodeType": "YulIdentifier", + "src": "115:6:5" + }, + { + "kind": "number", + "nativeSrc": "123:4:5", + "nodeType": "YulLiteral", + "src": "123:4:5", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "111:3:5", + "nodeType": "YulIdentifier", + "src": "111:3:5" + }, + "nativeSrc": "111:17:5", + "nodeType": "YulFunctionCall", + "src": "111:17:5" + }, + { + "name": "end", + "nativeSrc": "130:3:5", + "nodeType": "YulIdentifier", + "src": "130:3:5" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "107:3:5", + "nodeType": "YulIdentifier", + "src": "107:3:5" + }, + "nativeSrc": "107:27:5", + "nodeType": "YulFunctionCall", + "src": "107:27:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "100:6:5", + "nodeType": "YulIdentifier", + "src": "100:6:5" + }, + "nativeSrc": "100:35:5", + "nodeType": "YulFunctionCall", + "src": "100:35:5" + }, + "nativeSrc": "97:55:5", + "nodeType": "YulIf", + "src": "97:55:5" + }, + { + "nativeSrc": "161:30:5", + "nodeType": "YulAssignment", + "src": "161:30:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "184:6:5", + "nodeType": "YulIdentifier", + "src": "184:6:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "171:12:5", + "nodeType": "YulIdentifier", + "src": "171:12:5" + }, + "nativeSrc": "171:20:5", + "nodeType": "YulFunctionCall", + "src": "171:20:5" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "161:6:5", + "nodeType": "YulIdentifier", + "src": "161:6:5" + } + ] + }, + { + "body": { + "nativeSrc": "234:16:5", + "nodeType": "YulBlock", + "src": "234:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "243:1:5", + "nodeType": "YulLiteral", + "src": "243:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "246:1:5", + "nodeType": "YulLiteral", + "src": "246:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "236:6:5", + "nodeType": "YulIdentifier", + "src": "236:6:5" + }, + "nativeSrc": "236:12:5", + "nodeType": "YulFunctionCall", + "src": "236:12:5" + }, + "nativeSrc": "236:12:5", + "nodeType": "YulExpressionStatement", + "src": "236:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "206:6:5", + "nodeType": "YulIdentifier", + "src": "206:6:5" + }, + { + "kind": "number", + "nativeSrc": "214:18:5", + "nodeType": "YulLiteral", + "src": "214:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "203:2:5", + "nodeType": "YulIdentifier", + "src": "203:2:5" + }, + "nativeSrc": "203:30:5", + "nodeType": "YulFunctionCall", + "src": "203:30:5" + }, + "nativeSrc": "200:50:5", + "nodeType": "YulIf", + "src": "200:50:5" + }, + { + "nativeSrc": "259:29:5", + "nodeType": "YulAssignment", + "src": "259:29:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "275:6:5", + "nodeType": "YulIdentifier", + "src": "275:6:5" + }, + { + "kind": "number", + "nativeSrc": "283:4:5", + "nodeType": "YulLiteral", + "src": "283:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "271:3:5", + "nodeType": "YulIdentifier", + "src": "271:3:5" + }, + "nativeSrc": "271:17:5", + "nodeType": "YulFunctionCall", + "src": "271:17:5" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "259:8:5", + "nodeType": "YulIdentifier", + "src": "259:8:5" + } + ] + }, + { + "body": { + "nativeSrc": "340:16:5", + "nodeType": "YulBlock", + "src": "340:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "349:1:5", + "nodeType": "YulLiteral", + "src": "349:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "352:1:5", + "nodeType": "YulLiteral", + "src": "352:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "342:6:5", + "nodeType": "YulIdentifier", + "src": "342:6:5" + }, + "nativeSrc": "342:12:5", + "nodeType": "YulFunctionCall", + "src": "342:12:5" + }, + "nativeSrc": "342:12:5", + "nodeType": "YulExpressionStatement", + "src": "342:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "311:6:5", + "nodeType": "YulIdentifier", + "src": "311:6:5" + }, + { + "name": "length", + "nativeSrc": "319:6:5", + "nodeType": "YulIdentifier", + "src": "319:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "307:3:5", + "nodeType": "YulIdentifier", + "src": "307:3:5" + }, + "nativeSrc": "307:19:5", + "nodeType": "YulFunctionCall", + "src": "307:19:5" + }, + { + "kind": "number", + "nativeSrc": "328:4:5", + "nodeType": "YulLiteral", + "src": "328:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "303:3:5", + "nodeType": "YulIdentifier", + "src": "303:3:5" + }, + "nativeSrc": "303:30:5", + "nodeType": "YulFunctionCall", + "src": "303:30:5" + }, + { + "name": "end", + "nativeSrc": "335:3:5", + "nodeType": "YulIdentifier", + "src": "335:3:5" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "300:2:5", + "nodeType": "YulIdentifier", + "src": "300:2:5" + }, + "nativeSrc": "300:39:5", + "nodeType": "YulFunctionCall", + "src": "300:39:5" + }, + "nativeSrc": "297:59:5", + "nodeType": "YulIf", + "src": "297:59:5" + } + ] + }, + "name": "abi_decode_string_calldata", + "nativeSrc": "14:348:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "50:6:5", + "nodeType": "YulTypedName", + "src": "50:6:5", + "type": "" + }, + { + "name": "end", + "nativeSrc": "58:3:5", + "nodeType": "YulTypedName", + "src": "58:3:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "66:8:5", + "nodeType": "YulTypedName", + "src": "66:8:5", + "type": "" + }, + { + "name": "length", + "nativeSrc": "76:6:5", + "nodeType": "YulTypedName", + "src": "76:6:5", + "type": "" + } + ], + "src": "14:348:5" + }, + { + "body": { + "nativeSrc": "527:798:5", + "nodeType": "YulBlock", + "src": "527:798:5", + "statements": [ + { + "body": { + "nativeSrc": "574:16:5", + "nodeType": "YulBlock", + "src": "574:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "583:1:5", + "nodeType": "YulLiteral", + "src": "583:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "586:1:5", + "nodeType": "YulLiteral", + "src": "586:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "576:6:5", + "nodeType": "YulIdentifier", + "src": "576:6:5" + }, + "nativeSrc": "576:12:5", + "nodeType": "YulFunctionCall", + "src": "576:12:5" + }, + "nativeSrc": "576:12:5", + "nodeType": "YulExpressionStatement", + "src": "576:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "548:7:5", + "nodeType": "YulIdentifier", + "src": "548:7:5" + }, + { + "name": "headStart", + "nativeSrc": "557:9:5", + "nodeType": "YulIdentifier", + "src": "557:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "544:3:5", + "nodeType": "YulIdentifier", + "src": "544:3:5" + }, + "nativeSrc": "544:23:5", + "nodeType": "YulFunctionCall", + "src": "544:23:5" + }, + { + "kind": "number", + "nativeSrc": "569:3:5", + "nodeType": "YulLiteral", + "src": "569:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "540:3:5", + "nodeType": "YulIdentifier", + "src": "540:3:5" + }, + "nativeSrc": "540:33:5", + "nodeType": "YulFunctionCall", + "src": "540:33:5" + }, + "nativeSrc": "537:53:5", + "nodeType": "YulIf", + "src": "537:53:5" + }, + { + "nativeSrc": "599:36:5", + "nodeType": "YulVariableDeclaration", + "src": "599:36:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "625:9:5", + "nodeType": "YulIdentifier", + "src": "625:9:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "612:12:5", + "nodeType": "YulIdentifier", + "src": "612:12:5" + }, + "nativeSrc": "612:23:5", + "nodeType": "YulFunctionCall", + "src": "612:23:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "603:5:5", + "nodeType": "YulTypedName", + "src": "603:5:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "698:16:5", + "nodeType": "YulBlock", + "src": "698:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "707:1:5", + "nodeType": "YulLiteral", + "src": "707:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "710:1:5", + "nodeType": "YulLiteral", + "src": "710:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "700:6:5", + "nodeType": "YulIdentifier", + "src": "700:6:5" + }, + "nativeSrc": "700:12:5", + "nodeType": "YulFunctionCall", + "src": "700:12:5" + }, + "nativeSrc": "700:12:5", + "nodeType": "YulExpressionStatement", + "src": "700:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "657:5:5", + "nodeType": "YulIdentifier", + "src": "657:5:5" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "668:5:5", + "nodeType": "YulIdentifier", + "src": "668:5:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "683:3:5", + "nodeType": "YulLiteral", + "src": "683:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "688:1:5", + "nodeType": "YulLiteral", + "src": "688:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "679:3:5", + "nodeType": "YulIdentifier", + "src": "679:3:5" + }, + "nativeSrc": "679:11:5", + "nodeType": "YulFunctionCall", + "src": "679:11:5" + }, + { + "kind": "number", + "nativeSrc": "692:1:5", + "nodeType": "YulLiteral", + "src": "692:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "675:3:5", + "nodeType": "YulIdentifier", + "src": "675:3:5" + }, + "nativeSrc": "675:19:5", + "nodeType": "YulFunctionCall", + "src": "675:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "664:3:5", + "nodeType": "YulIdentifier", + "src": "664:3:5" + }, + "nativeSrc": "664:31:5", + "nodeType": "YulFunctionCall", + "src": "664:31:5" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "654:2:5", + "nodeType": "YulIdentifier", + "src": "654:2:5" + }, + "nativeSrc": "654:42:5", + "nodeType": "YulFunctionCall", + "src": "654:42:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "647:6:5", + "nodeType": "YulIdentifier", + "src": "647:6:5" + }, + "nativeSrc": "647:50:5", + "nodeType": "YulFunctionCall", + "src": "647:50:5" + }, + "nativeSrc": "644:70:5", + "nodeType": "YulIf", + "src": "644:70:5" + }, + { + "nativeSrc": "723:15:5", + "nodeType": "YulAssignment", + "src": "723:15:5", + "value": { + "name": "value", + "nativeSrc": "733:5:5", + "nodeType": "YulIdentifier", + "src": "733:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "723:6:5", + "nodeType": "YulIdentifier", + "src": "723:6:5" + } + ] + }, + { + "nativeSrc": "747:46:5", + "nodeType": "YulVariableDeclaration", + "src": "747:46:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "778:9:5", + "nodeType": "YulIdentifier", + "src": "778:9:5" + }, + { + "kind": "number", + "nativeSrc": "789:2:5", + "nodeType": "YulLiteral", + "src": "789:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "774:3:5", + "nodeType": "YulIdentifier", + "src": "774:3:5" + }, + "nativeSrc": "774:18:5", + "nodeType": "YulFunctionCall", + "src": "774:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "761:12:5", + "nodeType": "YulIdentifier", + "src": "761:12:5" + }, + "nativeSrc": "761:32:5", + "nodeType": "YulFunctionCall", + "src": "761:32:5" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "751:6:5", + "nodeType": "YulTypedName", + "src": "751:6:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "836:16:5", + "nodeType": "YulBlock", + "src": "836:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "845:1:5", + "nodeType": "YulLiteral", + "src": "845:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "848:1:5", + "nodeType": "YulLiteral", + "src": "848:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "838:6:5", + "nodeType": "YulIdentifier", + "src": "838:6:5" + }, + "nativeSrc": "838:12:5", + "nodeType": "YulFunctionCall", + "src": "838:12:5" + }, + "nativeSrc": "838:12:5", + "nodeType": "YulExpressionStatement", + "src": "838:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "808:6:5", + "nodeType": "YulIdentifier", + "src": "808:6:5" + }, + { + "kind": "number", + "nativeSrc": "816:18:5", + "nodeType": "YulLiteral", + "src": "816:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "805:2:5", + "nodeType": "YulIdentifier", + "src": "805:2:5" + }, + "nativeSrc": "805:30:5", + "nodeType": "YulFunctionCall", + "src": "805:30:5" + }, + "nativeSrc": "802:50:5", + "nodeType": "YulIf", + "src": "802:50:5" + }, + { + "nativeSrc": "861:85:5", + "nodeType": "YulVariableDeclaration", + "src": "861:85:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "918:9:5", + "nodeType": "YulIdentifier", + "src": "918:9:5" + }, + { + "name": "offset", + "nativeSrc": "929:6:5", + "nodeType": "YulIdentifier", + "src": "929:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "914:3:5", + "nodeType": "YulIdentifier", + "src": "914:3:5" + }, + "nativeSrc": "914:22:5", + "nodeType": "YulFunctionCall", + "src": "914:22:5" + }, + { + "name": "dataEnd", + "nativeSrc": "938:7:5", + "nodeType": "YulIdentifier", + "src": "938:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "887:26:5", + "nodeType": "YulIdentifier", + "src": "887:26:5" + }, + "nativeSrc": "887:59:5", + "nodeType": "YulFunctionCall", + "src": "887:59:5" + }, + "variables": [ + { + "name": "value1_1", + "nativeSrc": "865:8:5", + "nodeType": "YulTypedName", + "src": "865:8:5", + "type": "" + }, + { + "name": "value2_1", + "nativeSrc": "875:8:5", + "nodeType": "YulTypedName", + "src": "875:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "955:18:5", + "nodeType": "YulAssignment", + "src": "955:18:5", + "value": { + "name": "value1_1", + "nativeSrc": "965:8:5", + "nodeType": "YulIdentifier", + "src": "965:8:5" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "955:6:5", + "nodeType": "YulIdentifier", + "src": "955:6:5" + } + ] + }, + { + "nativeSrc": "982:18:5", + "nodeType": "YulAssignment", + "src": "982:18:5", + "value": { + "name": "value2_1", + "nativeSrc": "992:8:5", + "nodeType": "YulIdentifier", + "src": "992:8:5" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "982:6:5", + "nodeType": "YulIdentifier", + "src": "982:6:5" + } + ] + }, + { + "nativeSrc": "1009:48:5", + "nodeType": "YulVariableDeclaration", + "src": "1009:48:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1042:9:5", + "nodeType": "YulIdentifier", + "src": "1042:9:5" + }, + { + "kind": "number", + "nativeSrc": "1053:2:5", + "nodeType": "YulLiteral", + "src": "1053:2:5", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1038:3:5", + "nodeType": "YulIdentifier", + "src": "1038:3:5" + }, + "nativeSrc": "1038:18:5", + "nodeType": "YulFunctionCall", + "src": "1038:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1025:12:5", + "nodeType": "YulIdentifier", + "src": "1025:12:5" + }, + "nativeSrc": "1025:32:5", + "nodeType": "YulFunctionCall", + "src": "1025:32:5" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "1013:8:5", + "nodeType": "YulTypedName", + "src": "1013:8:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1102:16:5", + "nodeType": "YulBlock", + "src": "1102:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1111:1:5", + "nodeType": "YulLiteral", + "src": "1111:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1114:1:5", + "nodeType": "YulLiteral", + "src": "1114:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1104:6:5", + "nodeType": "YulIdentifier", + "src": "1104:6:5" + }, + "nativeSrc": "1104:12:5", + "nodeType": "YulFunctionCall", + "src": "1104:12:5" + }, + "nativeSrc": "1104:12:5", + "nodeType": "YulExpressionStatement", + "src": "1104:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "1072:8:5", + "nodeType": "YulIdentifier", + "src": "1072:8:5" + }, + { + "kind": "number", + "nativeSrc": "1082:18:5", + "nodeType": "YulLiteral", + "src": "1082:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1069:2:5", + "nodeType": "YulIdentifier", + "src": "1069:2:5" + }, + "nativeSrc": "1069:32:5", + "nodeType": "YulFunctionCall", + "src": "1069:32:5" + }, + "nativeSrc": "1066:52:5", + "nodeType": "YulIf", + "src": "1066:52:5" + }, + { + "nativeSrc": "1127:87:5", + "nodeType": "YulVariableDeclaration", + "src": "1127:87:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1184:9:5", + "nodeType": "YulIdentifier", + "src": "1184:9:5" + }, + { + "name": "offset_1", + "nativeSrc": "1195:8:5", + "nodeType": "YulIdentifier", + "src": "1195:8:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1180:3:5", + "nodeType": "YulIdentifier", + "src": "1180:3:5" + }, + "nativeSrc": "1180:24:5", + "nodeType": "YulFunctionCall", + "src": "1180:24:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1206:7:5", + "nodeType": "YulIdentifier", + "src": "1206:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1153:26:5", + "nodeType": "YulIdentifier", + "src": "1153:26:5" + }, + "nativeSrc": "1153:61:5", + "nodeType": "YulFunctionCall", + "src": "1153:61:5" + }, + "variables": [ + { + "name": "value3_1", + "nativeSrc": "1131:8:5", + "nodeType": "YulTypedName", + "src": "1131:8:5", + "type": "" + }, + { + "name": "value4_1", + "nativeSrc": "1141:8:5", + "nodeType": "YulTypedName", + "src": "1141:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1223:18:5", + "nodeType": "YulAssignment", + "src": "1223:18:5", + "value": { + "name": "value3_1", + "nativeSrc": "1233:8:5", + "nodeType": "YulIdentifier", + "src": "1233:8:5" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "1223:6:5", + "nodeType": "YulIdentifier", + "src": "1223:6:5" + } + ] + }, + { + "nativeSrc": "1250:18:5", + "nodeType": "YulAssignment", + "src": "1250:18:5", + "value": { + "name": "value4_1", + "nativeSrc": "1260:8:5", + "nodeType": "YulIdentifier", + "src": "1260:8:5" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "1250:6:5", + "nodeType": "YulIdentifier", + "src": "1250:6:5" + } + ] + }, + { + "nativeSrc": "1277:42:5", + "nodeType": "YulAssignment", + "src": "1277:42:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1304:9:5", + "nodeType": "YulIdentifier", + "src": "1304:9:5" + }, + { + "kind": "number", + "nativeSrc": "1315:2:5", + "nodeType": "YulLiteral", + "src": "1315:2:5", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1300:3:5", + "nodeType": "YulIdentifier", + "src": "1300:3:5" + }, + "nativeSrc": "1300:18:5", + "nodeType": "YulFunctionCall", + "src": "1300:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1287:12:5", + "nodeType": "YulIdentifier", + "src": "1287:12:5" + }, + "nativeSrc": "1287:32:5", + "nodeType": "YulFunctionCall", + "src": "1287:32:5" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "1277:6:5", + "nodeType": "YulIdentifier", + "src": "1277:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bytes_calldata_ptrt_bytes32", + "nativeSrc": "367:958:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "453:9:5", + "nodeType": "YulTypedName", + "src": "453:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "464:7:5", + "nodeType": "YulTypedName", + "src": "464:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "476:6:5", + "nodeType": "YulTypedName", + "src": "476:6:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "484:6:5", + "nodeType": "YulTypedName", + "src": "484:6:5", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "492:6:5", + "nodeType": "YulTypedName", + "src": "492:6:5", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "500:6:5", + "nodeType": "YulTypedName", + "src": "500:6:5", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "508:6:5", + "nodeType": "YulTypedName", + "src": "508:6:5", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "516:6:5", + "nodeType": "YulTypedName", + "src": "516:6:5", + "type": "" + } + ], + "src": "367:958:5" + }, + { + "body": { + "nativeSrc": "1447:102:5", + "nodeType": "YulBlock", + "src": "1447:102:5", + "statements": [ + { + "nativeSrc": "1457:26:5", + "nodeType": "YulAssignment", + "src": "1457:26:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1469:9:5", + "nodeType": "YulIdentifier", + "src": "1469:9:5" + }, + { + "kind": "number", + "nativeSrc": "1480:2:5", + "nodeType": "YulLiteral", + "src": "1480:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1465:3:5", + "nodeType": "YulIdentifier", + "src": "1465:3:5" + }, + "nativeSrc": "1465:18:5", + "nodeType": "YulFunctionCall", + "src": "1465:18:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1457:4:5", + "nodeType": "YulIdentifier", + "src": "1457:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1499:9:5", + "nodeType": "YulIdentifier", + "src": "1499:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1514:6:5", + "nodeType": "YulIdentifier", + "src": "1514:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1530:3:5", + "nodeType": "YulLiteral", + "src": "1530:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1535:1:5", + "nodeType": "YulLiteral", + "src": "1535:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1526:3:5", + "nodeType": "YulIdentifier", + "src": "1526:3:5" + }, + "nativeSrc": "1526:11:5", + "nodeType": "YulFunctionCall", + "src": "1526:11:5" + }, + { + "kind": "number", + "nativeSrc": "1539:1:5", + "nodeType": "YulLiteral", + "src": "1539:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1522:3:5", + "nodeType": "YulIdentifier", + "src": "1522:3:5" + }, + "nativeSrc": "1522:19:5", + "nodeType": "YulFunctionCall", + "src": "1522:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1510:3:5", + "nodeType": "YulIdentifier", + "src": "1510:3:5" + }, + "nativeSrc": "1510:32:5", + "nodeType": "YulFunctionCall", + "src": "1510:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1492:6:5", + "nodeType": "YulIdentifier", + "src": "1492:6:5" + }, + "nativeSrc": "1492:51:5", + "nodeType": "YulFunctionCall", + "src": "1492:51:5" + }, + "nativeSrc": "1492:51:5", + "nodeType": "YulExpressionStatement", + "src": "1492:51:5" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed", + "nativeSrc": "1330:219:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1416:9:5", + "nodeType": "YulTypedName", + "src": "1416:9:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1427:6:5", + "nodeType": "YulTypedName", + "src": "1427:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1438:4:5", + "nodeType": "YulTypedName", + "src": "1438:4:5", + "type": "" + } + ], + "src": "1330:219:5" + } + ] + }, + "contents": "{\n { }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_string_calldata_ptrt_bytes_calldata_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n value5 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_contract$_IDataset_$107__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}", + "id": 5, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80633354bcdb14610030575b600080fd5b61004a61003e3660046100af565b60009695505050505050565b6040516001600160a01b03909116815260200160405180910390f35b60008083601f84011261007857600080fd5b50813567ffffffffffffffff81111561009057600080fd5b6020830191508360208285010111156100a857600080fd5b9250929050565b600080600080600080608087890312156100c857600080fd5b86356001600160a01b03811681146100df57600080fd5b9550602087013567ffffffffffffffff8111156100fb57600080fd5b61010789828a01610066565b909650945050604087013567ffffffffffffffff81111561012757600080fd5b61013389828a01610066565b979a969950949794969560609095013594935050505056fea26469706673582212202309c854e67905caf462e5bb05fd1aff01ecf016be257d1b9de3af328543c70464736f6c634300081d0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3354BCDB EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xAF JUMP JUMPDEST PUSH1 0x0 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x107 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x133 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP5 SWAP7 SWAP6 PUSH1 0x60 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x23 MULMOD 0xC8 SLOAD DUPN 0x79 SDIV 0xCA DELEGATECALL PUSH3 0xE5BB05 REVERT BYTE SELFDESTRUCT ADD EOFCREATE 0xF0 AND 0xBE 0x25 PUSH30 0x1B9DE3AF328543C70464736F6C634300081D003300000000000000000000 ", + "sourceMap": "1313:261:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:204;;;;;;:::i;:::-;1560:8;1368:204;;;;;;;;;;;;-1:-1:-1;;;;;1510:32:5;;;1492:51;;1480:2;1465:18;1368:204:1;;;;;;;14:348:5;66:8;76:6;130:3;123:4;115:6;111:17;107:27;97:55;;148:1;145;138:12;97:55;-1:-1:-1;171:20:5;;214:18;203:30;;200:50;;;246:1;243;236:12;200:50;283:4;275:6;271:17;259:29;;335:3;328:4;319:6;311;307:19;303:30;300:39;297:59;;;352:1;349;342:12;297:59;14:348;;;;;:::o;367:958::-;476:6;484;492;500;508;516;569:3;557:9;548:7;544:23;540:33;537:53;;;586:1;583;576:12;537:53;612:23;;-1:-1:-1;;;;;664:31:5;;654:42;;644:70;;710:1;707;700:12;644:70;733:5;-1:-1:-1;789:2:5;774:18;;761:32;816:18;805:30;;802:50;;;848:1;845;838:12;802:50;887:59;938:7;929:6;918:9;914:22;887:59;:::i;:::-;965:8;;-1:-1:-1;861:85:5;-1:-1:-1;;1053:2:5;1038:18;;1025:32;1082:18;1069:32;;1066:52;;;1114:1;1111;1104:12;1066:52;1153:61;1206:7;1195:8;1184:9;1180:24;1153:61;:::i;:::-;367:958;;;;-1:-1:-1;367:958:5;;;;;1315:2;1300:18;;;1287:32;;367:958;-1:-1:-1;;;;367:958:5:o" + }, + "methodIdentifiers": { + "createDataset(address,string,bytes,bytes32)": "3354bcdb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDataset\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DatasetRegistryMock.sol\":\"DatasetRegistryMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DatasetRegistryMock.sol\":{\"keccak256\":\"0xbfcf7296d441191ed4d145d2d83f7d644243bdc0fe8f7e4ee1a2863c9a145c08\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://146652dc7255171f686e05ef81823e3655130bc378be5305f7c17d2e92701d36\",\"dweb:/ipfs/QmZtv3MamTNZXNuqJpDk2ZjD5DrTEyNLChcqyKKSasLjH9\"]},\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDataProtector.sol": { + "IDataProtector": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IDataset", + "name": "dataset", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "schema", + "type": "string" + } + ], + "name": "DatasetSchema", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createDatasetWithSchema(address,string,string,bytes,bytes32)": "167fbf5f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IDataset\",\"name\":\"dataset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"name\":\"DatasetSchema\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_datasetSchema\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDatasetWithSchema\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"params\":{\"dataset\":\"- The ID of ProtectedData (ERC721).\",\"schema\":\"- The schema of the data containing in the ProtectedData created.\"}}},\"kind\":\"dev\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"params\":{\"_datasetChecksum\":\"-The checksum of the ProtectedData.\",\"_datasetMultiaddr\":\"- The multiaddress of the ProtectedData.\",\"_datasetName\":\"- The name of the ProtectedData (metadata).\",\"_datasetOwner\":\"- The owner of the ProtectedData.\",\"_datasetSchema\":\"- The schema of the data containing in the ProtectedData\"},\"returns\":{\"_0\":\"IDataset - The ProtcetedData instance created.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"notice\":\"Event emitted when new ProtectedData is created.\"}},\"kind\":\"user\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"notice\":\"Create a new protectedData.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataProtector.sol\":\"IDataProtector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataProtector.sol\":{\"keccak256\":\"0xdcf3be7045fa35fa3e7bc1bbde488f8cc1419482da4a222b29a91346486405d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f7c53ed6549cc000f801b3c059870b0304558341ff972185f04f905f35a5a17e\",\"dweb:/ipfs/QmNT8NkrdWhmpUAwG9YE8mTuUVpdB46JtFsQeoNJiyNov4\"]},\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDataset.sol": { + "IDataset": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataset.sol\":\"IDataset\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDatasetRegistry.sol": { + "IDatasetRegistry": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDataset", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createDataset(address,string,bytes,bytes32)": "3354bcdb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDataset\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDatasetRegistry.sol\":\"IDatasetRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/packages/smart-contract/ignition/deployments/chain-421614/deployed_addresses.json b/packages/smart-contract/ignition/deployments/chain-421614/deployed_addresses.json new file mode 100644 index 000000000..192542a6d --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-421614/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "DataProtectorModule#DataProtector": "0x2296daeDD3090750a80fFB2D0147669984909ED2" +} diff --git a/packages/smart-contract/ignition/deployments/chain-421614/journal.jsonl b/packages/smart-contract/ignition/deployments/chain-421614/journal.jsonl new file mode 100644 index 000000000..9d2b30c37 --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-421614/journal.jsonl @@ -0,0 +1,8 @@ + +{"chainId":421614,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"DataProtectorModule#DataProtector","constructorArgs":["0x3441A0C9FE488c51fcABa2bAAA048720f4D4F72D"],"contractName":"DataProtector","dependencies":[],"from":"0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","futureId":"DataProtectorModule#DataProtector","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000000"},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DataProtectorModule#DataProtector","networkInteraction":{"data":"0x2630766800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000043560a0604052348015600f57600080fd5b50604051610415380380610415833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b60805161038b61008a60003960008181606f01526096015261038b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d00330000000000000000000000003441a0c9fe488c51fcaba2baaa048720f4d4f72d0000000000000000000000","id":1,"to":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DataProtectorModule#DataProtector","networkInteractionId":1,"nonce":97,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DataProtectorModule#DataProtector","networkInteractionId":1,"nonce":97,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc10fbaad2558bc7011c91863a7c841220773d42b0d375bf4e164c7baeeda6b1e"},"type":"TRANSACTION_SEND"} +{"futureId":"DataProtectorModule#DataProtector","hash":"0xc10fbaad2558bc7011c91863a7c841220773d42b0d375bf4e164c7baeeda6b1e","networkInteractionId":1,"receipt":{"blockHash":"0xfbb0455fdfb0c322eca055097aeeaba8a407cde62ffd951ca80f2c6754682acc","blockNumber":145960686,"logs":[{"address":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","data":"0x","logIndex":0,"topics":["0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7","0x0000000000000000000000002296daedd3090750a80ffb2d0147669984909ed2","0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DataProtectorModule#DataProtector","result":{"address":"0x2296daeDD3090750a80fFB2D0147669984909ED2","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/packages/smart-contract/ignition/deployments/chain-43113/artifacts/DataProtectorModule#DataProtector.json b/packages/smart-contract/ignition/deployments/chain-43113/artifacts/DataProtectorModule#DataProtector.json new file mode 100644 index 000000000..4b05a4dcc --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-43113/artifacts/DataProtectorModule#DataProtector.json @@ -0,0 +1,93 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "DataProtector", + "sourceName": "contracts/DataProtector.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IDataset", + "name": "dataset", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "schema", + "type": "string" + } + ], + "name": "DatasetSchema", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a0604052348015600f57600080fd5b50604051610415380380610415833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b60805161038b61008a60003960008181606f01526096015261038b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/packages/smart-contract/ignition/deployments/chain-43113/build-info/c2a62fb472c97ae3cd4cd0844546de5a.json b/packages/smart-contract/ignition/deployments/chain-43113/build-info/c2a62fb472c97ae3cd4cd0844546de5a.json new file mode 100644 index 000000000..24c12423d --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-43113/build-info/c2a62fb472c97ae3cd4cd0844546de5a.json @@ -0,0 +1,7015 @@ +{ + "id": "c2a62fb472c97ae3cd4cd0844546de5a", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.29", + "solcLongVersion": "0.8.29+commit.ab55807c", + "input": { + "language": "Solidity", + "sources": { + "contracts/DataProtector.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\nimport \"./interfaces/IDataProtector.sol\";\n\ncontract DataProtector is IDataProtector {\n IDatasetRegistry public immutable registry;\n\n constructor(IDatasetRegistry _registry) {\n registry = _registry;\n }\n\n function createDatasetWithSchema(\n address _datasetOwner,\n string calldata _datasetName,\n string calldata _datasetSchema,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset) {\n IDataset dataset = registry.createDataset(\n _datasetOwner,\n _datasetName,\n _datasetMultiaddr,\n _datasetChecksum\n );\n emit DatasetSchema(dataset, _datasetSchema);\n return dataset;\n }\n}\n" + }, + "contracts/DatasetRegistryMock.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\nimport \"./interfaces/IDatasetRegistry.sol\";\n\ncontract DatasetRegistryMock is IDatasetRegistry {\n function createDataset(\n address _datasetOwner,\n string calldata _datasetName,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset) {}\n}\n" + }, + "contracts/interfaces/IDataProtector.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\nimport \"./IDatasetRegistry.sol\";\n\ninterface IDataProtector {\n /**\n * Event emitted when new ProtectedData is created.\n *\n * @param dataset - The ID of ProtectedData (ERC721).\n * @param schema - The schema of the data containing in the ProtectedData created.\n */\n event DatasetSchema(IDataset indexed dataset, string schema);\n\n /**\n * Create a new protectedData.\n *\n * @param _datasetOwner - The owner of the ProtectedData.\n * @param _datasetName - The name of the ProtectedData (metadata).\n * @param _datasetSchema - The schema of the data containing in the ProtectedData\n * @param _datasetMultiaddr - The multiaddress of the ProtectedData.\n * @param _datasetChecksum -The checksum of the ProtectedData.\n * @return IDataset - The ProtcetedData instance created.\n */\n function createDatasetWithSchema(\n address _datasetOwner,\n string calldata _datasetName,\n string calldata _datasetSchema,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset);\n}\n" + }, + "contracts/interfaces/IDataset.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\ninterface IDataset {}\n" + }, + "contracts/interfaces/IDatasetRegistry.sol": { + "content": "// SPDX-License-Identifier: Apache-2.0\n\n/******************************************************************************\n * Copyright 2023 IEXEC BLOCKCHAIN TECH *\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\npragma solidity ^0.8.19;\n\nimport \"./IDataset.sol\";\n\ninterface IDatasetRegistry {\n function createDataset(\n address _datasetOwner,\n string calldata _datasetName,\n bytes calldata _datasetMultiaddr,\n bytes32 _datasetChecksum\n ) external returns (IDataset);\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "contracts/DataProtector.sol": { + "ast": { + "absolutePath": "contracts/DataProtector.sol", + "exportedSymbols": { + "DataProtector": [ + 54 + ], + "IDataProtector": [ + 104 + ], + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 55, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:0" + }, + { + "absolutePath": "contracts/interfaces/IDataProtector.sol", + "file": "./interfaces/IDataProtector.sol", + "id": 2, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 55, + "sourceUnit": 105, + "src": "1267:41:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 3, + "name": "IDataProtector", + "nameLocations": [ + "1336:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 104, + "src": "1336:14:0" + }, + "id": 4, + "nodeType": "InheritanceSpecifier", + "src": "1336:14:0" + } + ], + "canonicalName": "DataProtector", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 54, + "linearizedBaseContracts": [ + 54, + 104 + ], + "name": "DataProtector", + "nameLocation": "1319:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7b103999", + "id": 7, + "mutability": "immutable", + "name": "registry", + "nameLocation": "1391:8:0", + "nodeType": "VariableDeclaration", + "scope": 54, + "src": "1357:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + }, + "typeName": { + "id": 6, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5, + "name": "IDatasetRegistry", + "nameLocations": [ + "1357:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1357:16:0" + }, + "referencedDeclaration": 125, + "src": "1357:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 17, + "nodeType": "Block", + "src": "1446:37:0", + "statements": [ + { + "expression": { + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1456:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14, + "name": "_registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10, + "src": "1467:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "src": "1456:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "id": 16, + "nodeType": "ExpressionStatement", + "src": "1456:20:0" + } + ] + }, + "id": 18, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10, + "mutability": "mutable", + "name": "_registry", + "nameLocation": "1435:9:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "1418:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + }, + "typeName": { + "id": 9, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8, + "name": "IDatasetRegistry", + "nameLocations": [ + "1418:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1418:16:0" + }, + "referencedDeclaration": 125, + "src": "1418:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "visibility": "internal" + } + ], + "src": "1417:28:0" + }, + "returnParameters": { + "id": 12, + "nodeType": "ParameterList", + "parameters": [], + "src": "1446:0:0" + }, + "scope": 54, + "src": "1406:77:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 103 + ], + "body": { + "id": 52, + "nodeType": "Block", + "src": "1741:259:0", + "statements": [ + { + "assignments": [ + 36 + ], + "declarations": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "dataset", + "nameLocation": "1760:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "1751:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 35, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 34, + "name": "IDataset", + "nameLocations": [ + "1751:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1751:8:0" + }, + "referencedDeclaration": 107, + "src": "1751:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "id": 44, + "initialValue": { + "arguments": [ + { + "id": 39, + "name": "_datasetOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 20, + "src": "1806:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 40, + "name": "_datasetName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "1833:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 41, + "name": "_datasetMultiaddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "1859:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "id": 42, + "name": "_datasetChecksum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "1890:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 37, + "name": "registry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "1770:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDatasetRegistry_$125", + "typeString": "contract IDatasetRegistry" + } + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1779:13:0", + "memberName": "createDataset", + "nodeType": "MemberAccess", + "referencedDeclaration": 124, + "src": "1770:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_contract$_IDataset_$107_$", + "typeString": "function (address,string memory,bytes memory,bytes32) external returns (contract IDataset)" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1770:146:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1751:165:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 46, + "name": "dataset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "1945:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + { + "id": 47, + "name": "_datasetSchema", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "1954:14:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 45, + "name": "DatasetSchema", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 86, + "src": "1931:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IDataset_$107_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (contract IDataset,string memory)" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1931:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 49, + "nodeType": "EmitStatement", + "src": "1926:43:0" + }, + { + "expression": { + "id": 50, + "name": "dataset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "1986:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "functionReturnParameters": 33, + "id": 51, + "nodeType": "Return", + "src": "1979:14:0" + } + ] + }, + "functionSelector": "167fbf5f", + "id": 53, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createDatasetWithSchema", + "nameLocation": "1498:23:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 29, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1539:13:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1531:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 19, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1531:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1578:12:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1562:28:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 21, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1562:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "_datasetSchema", + "nameLocation": "1616:14:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1600:30:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 23, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1600:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1655:17:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1640:32:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 25, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1640:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1690:16:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1682:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1521:191:0" + }, + "returnParameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "1731:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 31, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 30, + "name": "IDataset", + "nameLocations": [ + "1731:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1731:8:0" + }, + "referencedDeclaration": 107, + "src": "1731:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "1730:10:0" + }, + "scope": 54, + "src": "1489:511:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 55, + "src": "1310:692:0", + "usedErrors": [], + "usedEvents": [ + 86 + ] + } + ], + "src": "1242:761:0" + }, + "id": 0 + }, + "contracts/DatasetRegistryMock.sol": { + "ast": { + "absolutePath": "contracts/DatasetRegistryMock.sol", + "exportedSymbols": { + "DatasetRegistryMock": [ + 75 + ], + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 76, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 56, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:1" + }, + { + "absolutePath": "contracts/interfaces/IDatasetRegistry.sol", + "file": "./interfaces/IDatasetRegistry.sol", + "id": 57, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 76, + "sourceUnit": 126, + "src": "1268:43:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 58, + "name": "IDatasetRegistry", + "nameLocations": [ + "1345:16:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1345:16:1" + }, + "id": 59, + "nodeType": "InheritanceSpecifier", + "src": "1345:16:1" + } + ], + "canonicalName": "DatasetRegistryMock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 75, + "linearizedBaseContracts": [ + 75, + 125 + ], + "name": "DatasetRegistryMock", + "nameLocation": "1322:19:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 124 + ], + "body": { + "id": 73, + "nodeType": "Block", + "src": "1570:2:1", + "statements": [] + }, + "functionSelector": "3354bcdb", + "id": 74, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "createDataset", + "nameLocation": "1377:13:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1408:13:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1400:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1400:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1447:12:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1431:28:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 62, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1431:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1484:17:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1469:32:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 64, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1519:16:1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1511:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 66, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1390:151:1" + }, + "returnParameters": { + "id": 72, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 71, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 74, + "src": "1560:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 70, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 69, + "name": "IDataset", + "nameLocations": [ + "1560:8:1" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1560:8:1" + }, + "referencedDeclaration": 107, + "src": "1560:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "1559:10:1" + }, + "scope": 75, + "src": "1368:204:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 76, + "src": "1313:261:1", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:333:1" + }, + "id": 1 + }, + "contracts/interfaces/IDataProtector.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDataProtector.sol", + "exportedSymbols": { + "IDataProtector": [ + 104 + ], + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 105, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 77, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:2" + }, + { + "absolutePath": "contracts/interfaces/IDatasetRegistry.sol", + "file": "./IDatasetRegistry.sol", + "id": 78, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 105, + "sourceUnit": 126, + "src": "1268:32:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDataProtector", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 104, + "linearizedBaseContracts": [ + 104 + ], + "name": "IDataProtector", + "nameLocation": "1312:14:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 79, + "nodeType": "StructuredDocumentation", + "src": "1333:219:2", + "text": " Event emitted when new ProtectedData is created.\n @param dataset - The ID of ProtectedData (ERC721).\n @param schema - The schema of the data containing in the ProtectedData created." + }, + "eventSelector": "37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d", + "id": 86, + "name": "DatasetSchema", + "nameLocation": "1563:13:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 82, + "indexed": true, + "mutability": "mutable", + "name": "dataset", + "nameLocation": "1594:7:2", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "1577:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 81, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 80, + "name": "IDataset", + "nameLocations": [ + "1577:8:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1577:8:2" + }, + "referencedDeclaration": 107, + "src": "1577:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 84, + "indexed": false, + "mutability": "mutable", + "name": "schema", + "nameLocation": "1610:6:2", + "nodeType": "VariableDeclaration", + "scope": 86, + "src": "1603:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 83, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1603:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1576:41:2" + }, + "src": "1557:61:2" + }, + { + "documentation": { + "id": 87, + "nodeType": "StructuredDocumentation", + "src": "1624:474:2", + "text": " Create a new protectedData.\n @param _datasetOwner - The owner of the ProtectedData.\n @param _datasetName - The name of the ProtectedData (metadata).\n @param _datasetSchema - The schema of the data containing in the ProtectedData\n @param _datasetMultiaddr - The multiaddress of the ProtectedData.\n @param _datasetChecksum -The checksum of the ProtectedData.\n @return IDataset - The ProtcetedData instance created." + }, + "functionSelector": "167fbf5f", + "id": 103, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createDatasetWithSchema", + "nameLocation": "2112:23:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 98, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "2153:13:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2145:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "2192:12:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2176:28:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 90, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2176:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "_datasetSchema", + "nameLocation": "2230:14:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2214:30:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 92, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2214:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "2269:17:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2254:32:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 94, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2254:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "2304:16:2", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2296:24:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 96, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2296:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2135:191:2" + }, + "returnParameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 103, + "src": "2345:8:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 100, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 99, + "name": "IDataset", + "nameLocations": [ + "2345:8:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "2345:8:2" + }, + "referencedDeclaration": 107, + "src": "2345:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "2344:10:2" + }, + "scope": 104, + "src": "2103:252:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 105, + "src": "1302:1055:2", + "usedErrors": [], + "usedEvents": [ + 86 + ] + } + ], + "src": "1242:1116:2" + }, + "id": 2 + }, + "contracts/interfaces/IDataset.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDataset.sol", + "exportedSymbols": { + "IDataset": [ + 107 + ] + }, + "id": 108, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 106, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:3" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDataset", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": true, + "id": 107, + "linearizedBaseContracts": [ + 107 + ], + "name": "IDataset", + "nameLocation": "1278:8:3", + "nodeType": "ContractDefinition", + "nodes": [], + "scope": 108, + "src": "1268:21:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:48:3" + }, + "id": 3 + }, + "contracts/interfaces/IDatasetRegistry.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IDatasetRegistry.sol", + "exportedSymbols": { + "IDataset": [ + 107 + ], + "IDatasetRegistry": [ + 125 + ] + }, + "id": 126, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 109, + "literals": [ + "solidity", + "^", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "1242:24:4" + }, + { + "absolutePath": "contracts/interfaces/IDataset.sol", + "file": "./IDataset.sol", + "id": 110, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 126, + "sourceUnit": 108, + "src": "1268:24:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IDatasetRegistry", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 125, + "linearizedBaseContracts": [ + 125 + ], + "name": "IDatasetRegistry", + "nameLocation": "1304:16:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "functionSelector": "3354bcdb", + "id": 124, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createDataset", + "nameLocation": "1336:13:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "_datasetOwner", + "nameLocation": "1367:13:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1359:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1359:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "_datasetName", + "nameLocation": "1406:12:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1390:28:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 113, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1390:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "_datasetMultiaddr", + "nameLocation": "1443:17:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1428:32:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 115, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1428:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 118, + "mutability": "mutable", + "name": "_datasetChecksum", + "nameLocation": "1478:16:4", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1470:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1470:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1349:151:4" + }, + "returnParameters": { + "id": 123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 122, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 124, + "src": "1519:8:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + }, + "typeName": { + "id": 121, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 120, + "name": "IDataset", + "nameLocations": [ + "1519:8:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 107, + "src": "1519:8:4" + }, + "referencedDeclaration": 107, + "src": "1519:8:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDataset_$107", + "typeString": "contract IDataset" + } + }, + "visibility": "internal" + } + ], + "src": "1518:10:4" + }, + "scope": 125, + "src": "1327:202:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 126, + "src": "1294:237:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "1242:290:4" + }, + "id": 4 + } + }, + "contracts": { + "contracts/DataProtector.sol": { + "DataProtector": { + "abi": [ + { + "inputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IDataset", + "name": "dataset", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "schema", + "type": "string" + } + ], + "name": "DatasetSchema", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IDatasetRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_18": { + "entryPoint": null, + "id": 18, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_tuple_t_contract$_IDatasetRegistry_$125_fromMemory": { + "entryPoint": 60, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:330:5", + "nodeType": "YulBlock", + "src": "0:330:5", + "statements": [ + { + "nativeSrc": "6:3:5", + "nodeType": "YulBlock", + "src": "6:3:5", + "statements": [] + }, + { + "body": { + "nativeSrc": "119:209:5", + "nodeType": "YulBlock", + "src": "119:209:5", + "statements": [ + { + "body": { + "nativeSrc": "165:16:5", + "nodeType": "YulBlock", + "src": "165:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "174:1:5", + "nodeType": "YulLiteral", + "src": "174:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "177:1:5", + "nodeType": "YulLiteral", + "src": "177:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "167:6:5", + "nodeType": "YulIdentifier", + "src": "167:6:5" + }, + "nativeSrc": "167:12:5", + "nodeType": "YulFunctionCall", + "src": "167:12:5" + }, + "nativeSrc": "167:12:5", + "nodeType": "YulExpressionStatement", + "src": "167:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "140:7:5", + "nodeType": "YulIdentifier", + "src": "140:7:5" + }, + { + "name": "headStart", + "nativeSrc": "149:9:5", + "nodeType": "YulIdentifier", + "src": "149:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "136:3:5", + "nodeType": "YulIdentifier", + "src": "136:3:5" + }, + "nativeSrc": "136:23:5", + "nodeType": "YulFunctionCall", + "src": "136:23:5" + }, + { + "kind": "number", + "nativeSrc": "161:2:5", + "nodeType": "YulLiteral", + "src": "161:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "132:3:5", + "nodeType": "YulIdentifier", + "src": "132:3:5" + }, + "nativeSrc": "132:32:5", + "nodeType": "YulFunctionCall", + "src": "132:32:5" + }, + "nativeSrc": "129:52:5", + "nodeType": "YulIf", + "src": "129:52:5" + }, + { + "nativeSrc": "190:29:5", + "nodeType": "YulVariableDeclaration", + "src": "190:29:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "209:9:5", + "nodeType": "YulIdentifier", + "src": "209:9:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "203:5:5", + "nodeType": "YulIdentifier", + "src": "203:5:5" + }, + "nativeSrc": "203:16:5", + "nodeType": "YulFunctionCall", + "src": "203:16:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "194:5:5", + "nodeType": "YulTypedName", + "src": "194:5:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "282:16:5", + "nodeType": "YulBlock", + "src": "282:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "291:1:5", + "nodeType": "YulLiteral", + "src": "291:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "294:1:5", + "nodeType": "YulLiteral", + "src": "294:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "284:6:5", + "nodeType": "YulIdentifier", + "src": "284:6:5" + }, + "nativeSrc": "284:12:5", + "nodeType": "YulFunctionCall", + "src": "284:12:5" + }, + "nativeSrc": "284:12:5", + "nodeType": "YulExpressionStatement", + "src": "284:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "241:5:5", + "nodeType": "YulIdentifier", + "src": "241:5:5" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "252:5:5", + "nodeType": "YulIdentifier", + "src": "252:5:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "267:3:5", + "nodeType": "YulLiteral", + "src": "267:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "272:1:5", + "nodeType": "YulLiteral", + "src": "272:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "263:3:5", + "nodeType": "YulIdentifier", + "src": "263:3:5" + }, + "nativeSrc": "263:11:5", + "nodeType": "YulFunctionCall", + "src": "263:11:5" + }, + { + "kind": "number", + "nativeSrc": "276:1:5", + "nodeType": "YulLiteral", + "src": "276:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "259:3:5", + "nodeType": "YulIdentifier", + "src": "259:3:5" + }, + "nativeSrc": "259:19:5", + "nodeType": "YulFunctionCall", + "src": "259:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "248:3:5", + "nodeType": "YulIdentifier", + "src": "248:3:5" + }, + "nativeSrc": "248:31:5", + "nodeType": "YulFunctionCall", + "src": "248:31:5" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "238:2:5", + "nodeType": "YulIdentifier", + "src": "238:2:5" + }, + "nativeSrc": "238:42:5", + "nodeType": "YulFunctionCall", + "src": "238:42:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "231:6:5", + "nodeType": "YulIdentifier", + "src": "231:6:5" + }, + "nativeSrc": "231:50:5", + "nodeType": "YulFunctionCall", + "src": "231:50:5" + }, + "nativeSrc": "228:70:5", + "nodeType": "YulIf", + "src": "228:70:5" + }, + { + "nativeSrc": "307:15:5", + "nodeType": "YulAssignment", + "src": "307:15:5", + "value": { + "name": "value", + "nativeSrc": "317:5:5", + "nodeType": "YulIdentifier", + "src": "317:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "307:6:5", + "nodeType": "YulIdentifier", + "src": "307:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_IDatasetRegistry_$125_fromMemory", + "nativeSrc": "14:314:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "85:9:5", + "nodeType": "YulTypedName", + "src": "85:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "96:7:5", + "nodeType": "YulTypedName", + "src": "96:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "108:6:5", + "nodeType": "YulTypedName", + "src": "108:6:5", + "type": "" + } + ], + "src": "14:314:5" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_contract$_IDatasetRegistry_$125_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}", + "id": 5, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "60a0604052348015600f57600080fd5b50604051610415380380610415833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b60805161038b61008a60003960008181606f01526096015261038b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x415 CODESIZE SUB DUP1 PUSH2 0x415 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2C SWAP2 PUSH1 0x3C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x6A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x38B PUSH2 0x8A PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x6F ADD MSTORE PUSH1 0x96 ADD MSTORE PUSH2 0x38B 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x167FBF5F EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0 JUMP JUMPDEST PUSH2 0x91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3354BCDB DUP12 DUP12 DUP12 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x109 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 0x12D SWAP2 SWAP1 PUSH2 0x315 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x37B19B8900A9B045473748167F459FA16828F33C13D71473BCA4B5E52E5F4D5D DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x16A SWAP3 SWAP2 SWAP1 PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x207 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x287 DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2EE SWAP1 DUP4 ADD DUP8 DUP10 PUSH2 0x2A0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x301 DUP2 DUP7 DUP9 PUSH2 0x2A0 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x332 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x34D PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL PUSH25 0x247810E731B2C7A76FCEFAD2CA335779409B90779F5DBE730D SWAP15 0xAC ADD PUSH17 0x9164736F6C634300081D00330000000000 ", + "sourceMap": "1310:692:0:-:0;;;1406:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1456:20:0;;;1310:692;;14:314:5;108:6;161:2;149:9;140:7;136:23;132:32;129:52;;;177:1;174;167:12;129:52;203:16;;-1:-1:-1;;;;;248:31:5;;238:42;;228:70;;294:1;291;284:12;228:70;317:5;14:314;-1:-1:-1;;;14:314:5:o;:::-;1310:692:0;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@createDatasetWithSchema_53": { + "entryPoint": 145, + "id": 53, + "parameterSlots": 8, + "returnSlots": 1 + }, + "@registry_7": { + "entryPoint": null, + "id": 7, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_string_calldata": { + "entryPoint": 407, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_string_calldata_ptrt_string_calldata_ptrt_bytes_calldata_ptrt_bytes32": { + "entryPoint": 480, + "id": null, + "parameterSlots": 2, + "returnSlots": 8 + }, + "abi_decode_tuple_t_contract$_IDataset_$107_fromMemory": { + "entryPoint": 789, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_string_calldata": { + "entryPoint": 672, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_string_calldata_ptr_t_bytes_calldata_ptr_t_bytes32__to_t_address_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes32__fromStack_reversed": { + "entryPoint": 713, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IDatasetRegistry_$125__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 825, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "validator_revert_address": { + "entryPoint": 383, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:3592:5", + "nodeType": "YulBlock", + "src": "0:3592:5", + "statements": [ + { + "nativeSrc": "6:3:5", + "nodeType": "YulBlock", + "src": "6:3:5", + "statements": [] + }, + { + "body": { + "nativeSrc": "59:86:5", + "nodeType": "YulBlock", + "src": "59:86:5", + "statements": [ + { + "body": { + "nativeSrc": "123:16:5", + "nodeType": "YulBlock", + "src": "123:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "132:1:5", + "nodeType": "YulLiteral", + "src": "132:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "135:1:5", + "nodeType": "YulLiteral", + "src": "135:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "125:6:5", + "nodeType": "YulIdentifier", + "src": "125:6:5" + }, + "nativeSrc": "125:12:5", + "nodeType": "YulFunctionCall", + "src": "125:12:5" + }, + "nativeSrc": "125:12:5", + "nodeType": "YulExpressionStatement", + "src": "125:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "82:5:5", + "nodeType": "YulIdentifier", + "src": "82:5:5" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "93:5:5", + "nodeType": "YulIdentifier", + "src": "93:5:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "108:3:5", + "nodeType": "YulLiteral", + "src": "108:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "113:1:5", + "nodeType": "YulLiteral", + "src": "113:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "104:3:5", + "nodeType": "YulIdentifier", + "src": "104:3:5" + }, + "nativeSrc": "104:11:5", + "nodeType": "YulFunctionCall", + "src": "104:11:5" + }, + { + "kind": "number", + "nativeSrc": "117:1:5", + "nodeType": "YulLiteral", + "src": "117:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "100:3:5", + "nodeType": "YulIdentifier", + "src": "100:3:5" + }, + "nativeSrc": "100:19:5", + "nodeType": "YulFunctionCall", + "src": "100:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "89:3:5", + "nodeType": "YulIdentifier", + "src": "89:3:5" + }, + "nativeSrc": "89:31:5", + "nodeType": "YulFunctionCall", + "src": "89:31:5" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "79:2:5", + "nodeType": "YulIdentifier", + "src": "79:2:5" + }, + "nativeSrc": "79:42:5", + "nodeType": "YulFunctionCall", + "src": "79:42:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "72:6:5", + "nodeType": "YulIdentifier", + "src": "72:6:5" + }, + "nativeSrc": "72:50:5", + "nodeType": "YulFunctionCall", + "src": "72:50:5" + }, + "nativeSrc": "69:70:5", + "nodeType": "YulIf", + "src": "69:70:5" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "14:131:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "48:5:5", + "nodeType": "YulTypedName", + "src": "48:5:5", + "type": "" + } + ], + "src": "14:131:5" + }, + { + "body": { + "nativeSrc": "223:275:5", + "nodeType": "YulBlock", + "src": "223:275:5", + "statements": [ + { + "body": { + "nativeSrc": "272:16:5", + "nodeType": "YulBlock", + "src": "272:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "281:1:5", + "nodeType": "YulLiteral", + "src": "281:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "284:1:5", + "nodeType": "YulLiteral", + "src": "284:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "274:6:5", + "nodeType": "YulIdentifier", + "src": "274:6:5" + }, + "nativeSrc": "274:12:5", + "nodeType": "YulFunctionCall", + "src": "274:12:5" + }, + "nativeSrc": "274:12:5", + "nodeType": "YulExpressionStatement", + "src": "274:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "251:6:5", + "nodeType": "YulIdentifier", + "src": "251:6:5" + }, + { + "kind": "number", + "nativeSrc": "259:4:5", + "nodeType": "YulLiteral", + "src": "259:4:5", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "247:3:5", + "nodeType": "YulIdentifier", + "src": "247:3:5" + }, + "nativeSrc": "247:17:5", + "nodeType": "YulFunctionCall", + "src": "247:17:5" + }, + { + "name": "end", + "nativeSrc": "266:3:5", + "nodeType": "YulIdentifier", + "src": "266:3:5" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "243:3:5", + "nodeType": "YulIdentifier", + "src": "243:3:5" + }, + "nativeSrc": "243:27:5", + "nodeType": "YulFunctionCall", + "src": "243:27:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "236:6:5", + "nodeType": "YulIdentifier", + "src": "236:6:5" + }, + "nativeSrc": "236:35:5", + "nodeType": "YulFunctionCall", + "src": "236:35:5" + }, + "nativeSrc": "233:55:5", + "nodeType": "YulIf", + "src": "233:55:5" + }, + { + "nativeSrc": "297:30:5", + "nodeType": "YulAssignment", + "src": "297:30:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "320:6:5", + "nodeType": "YulIdentifier", + "src": "320:6:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "307:12:5", + "nodeType": "YulIdentifier", + "src": "307:12:5" + }, + "nativeSrc": "307:20:5", + "nodeType": "YulFunctionCall", + "src": "307:20:5" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "297:6:5", + "nodeType": "YulIdentifier", + "src": "297:6:5" + } + ] + }, + { + "body": { + "nativeSrc": "370:16:5", + "nodeType": "YulBlock", + "src": "370:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "379:1:5", + "nodeType": "YulLiteral", + "src": "379:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "382:1:5", + "nodeType": "YulLiteral", + "src": "382:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "372:6:5", + "nodeType": "YulIdentifier", + "src": "372:6:5" + }, + "nativeSrc": "372:12:5", + "nodeType": "YulFunctionCall", + "src": "372:12:5" + }, + "nativeSrc": "372:12:5", + "nodeType": "YulExpressionStatement", + "src": "372:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "342:6:5", + "nodeType": "YulIdentifier", + "src": "342:6:5" + }, + { + "kind": "number", + "nativeSrc": "350:18:5", + "nodeType": "YulLiteral", + "src": "350:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "339:2:5", + "nodeType": "YulIdentifier", + "src": "339:2:5" + }, + "nativeSrc": "339:30:5", + "nodeType": "YulFunctionCall", + "src": "339:30:5" + }, + "nativeSrc": "336:50:5", + "nodeType": "YulIf", + "src": "336:50:5" + }, + { + "nativeSrc": "395:29:5", + "nodeType": "YulAssignment", + "src": "395:29:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "411:6:5", + "nodeType": "YulIdentifier", + "src": "411:6:5" + }, + { + "kind": "number", + "nativeSrc": "419:4:5", + "nodeType": "YulLiteral", + "src": "419:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "407:3:5", + "nodeType": "YulIdentifier", + "src": "407:3:5" + }, + "nativeSrc": "407:17:5", + "nodeType": "YulFunctionCall", + "src": "407:17:5" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "395:8:5", + "nodeType": "YulIdentifier", + "src": "395:8:5" + } + ] + }, + { + "body": { + "nativeSrc": "476:16:5", + "nodeType": "YulBlock", + "src": "476:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "485:1:5", + "nodeType": "YulLiteral", + "src": "485:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "488:1:5", + "nodeType": "YulLiteral", + "src": "488:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "478:6:5", + "nodeType": "YulIdentifier", + "src": "478:6:5" + }, + "nativeSrc": "478:12:5", + "nodeType": "YulFunctionCall", + "src": "478:12:5" + }, + "nativeSrc": "478:12:5", + "nodeType": "YulExpressionStatement", + "src": "478:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "447:6:5", + "nodeType": "YulIdentifier", + "src": "447:6:5" + }, + { + "name": "length", + "nativeSrc": "455:6:5", + "nodeType": "YulIdentifier", + "src": "455:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "443:3:5", + "nodeType": "YulIdentifier", + "src": "443:3:5" + }, + "nativeSrc": "443:19:5", + "nodeType": "YulFunctionCall", + "src": "443:19:5" + }, + { + "kind": "number", + "nativeSrc": "464:4:5", + "nodeType": "YulLiteral", + "src": "464:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "439:3:5", + "nodeType": "YulIdentifier", + "src": "439:3:5" + }, + "nativeSrc": "439:30:5", + "nodeType": "YulFunctionCall", + "src": "439:30:5" + }, + { + "name": "end", + "nativeSrc": "471:3:5", + "nodeType": "YulIdentifier", + "src": "471:3:5" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "436:2:5", + "nodeType": "YulIdentifier", + "src": "436:2:5" + }, + "nativeSrc": "436:39:5", + "nodeType": "YulFunctionCall", + "src": "436:39:5" + }, + "nativeSrc": "433:59:5", + "nodeType": "YulIf", + "src": "433:59:5" + } + ] + }, + "name": "abi_decode_string_calldata", + "nativeSrc": "150:348:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "186:6:5", + "nodeType": "YulTypedName", + "src": "186:6:5", + "type": "" + }, + { + "name": "end", + "nativeSrc": "194:3:5", + "nodeType": "YulTypedName", + "src": "194:3:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "202:8:5", + "nodeType": "YulTypedName", + "src": "202:8:5", + "type": "" + }, + { + "name": "length", + "nativeSrc": "212:6:5", + "nodeType": "YulTypedName", + "src": "212:6:5", + "type": "" + } + ], + "src": "150:348:5" + }, + { + "body": { + "nativeSrc": "700:1028:5", + "nodeType": "YulBlock", + "src": "700:1028:5", + "statements": [ + { + "body": { + "nativeSrc": "747:16:5", + "nodeType": "YulBlock", + "src": "747:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "756:1:5", + "nodeType": "YulLiteral", + "src": "756:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "759:1:5", + "nodeType": "YulLiteral", + "src": "759:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "749:6:5", + "nodeType": "YulIdentifier", + "src": "749:6:5" + }, + "nativeSrc": "749:12:5", + "nodeType": "YulFunctionCall", + "src": "749:12:5" + }, + "nativeSrc": "749:12:5", + "nodeType": "YulExpressionStatement", + "src": "749:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "721:7:5", + "nodeType": "YulIdentifier", + "src": "721:7:5" + }, + { + "name": "headStart", + "nativeSrc": "730:9:5", + "nodeType": "YulIdentifier", + "src": "730:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "717:3:5", + "nodeType": "YulIdentifier", + "src": "717:3:5" + }, + "nativeSrc": "717:23:5", + "nodeType": "YulFunctionCall", + "src": "717:23:5" + }, + { + "kind": "number", + "nativeSrc": "742:3:5", + "nodeType": "YulLiteral", + "src": "742:3:5", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "713:3:5", + "nodeType": "YulIdentifier", + "src": "713:3:5" + }, + "nativeSrc": "713:33:5", + "nodeType": "YulFunctionCall", + "src": "713:33:5" + }, + "nativeSrc": "710:53:5", + "nodeType": "YulIf", + "src": "710:53:5" + }, + { + "nativeSrc": "772:36:5", + "nodeType": "YulVariableDeclaration", + "src": "772:36:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "798:9:5", + "nodeType": "YulIdentifier", + "src": "798:9:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "785:12:5", + "nodeType": "YulIdentifier", + "src": "785:12:5" + }, + "nativeSrc": "785:23:5", + "nodeType": "YulFunctionCall", + "src": "785:23:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "776:5:5", + "nodeType": "YulTypedName", + "src": "776:5:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "842:5:5", + "nodeType": "YulIdentifier", + "src": "842:5:5" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "817:24:5", + "nodeType": "YulIdentifier", + "src": "817:24:5" + }, + "nativeSrc": "817:31:5", + "nodeType": "YulFunctionCall", + "src": "817:31:5" + }, + "nativeSrc": "817:31:5", + "nodeType": "YulExpressionStatement", + "src": "817:31:5" + }, + { + "nativeSrc": "857:15:5", + "nodeType": "YulAssignment", + "src": "857:15:5", + "value": { + "name": "value", + "nativeSrc": "867:5:5", + "nodeType": "YulIdentifier", + "src": "867:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "857:6:5", + "nodeType": "YulIdentifier", + "src": "857:6:5" + } + ] + }, + { + "nativeSrc": "881:46:5", + "nodeType": "YulVariableDeclaration", + "src": "881:46:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "912:9:5", + "nodeType": "YulIdentifier", + "src": "912:9:5" + }, + { + "kind": "number", + "nativeSrc": "923:2:5", + "nodeType": "YulLiteral", + "src": "923:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "908:3:5", + "nodeType": "YulIdentifier", + "src": "908:3:5" + }, + "nativeSrc": "908:18:5", + "nodeType": "YulFunctionCall", + "src": "908:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "895:12:5", + "nodeType": "YulIdentifier", + "src": "895:12:5" + }, + "nativeSrc": "895:32:5", + "nodeType": "YulFunctionCall", + "src": "895:32:5" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "885:6:5", + "nodeType": "YulTypedName", + "src": "885:6:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "970:16:5", + "nodeType": "YulBlock", + "src": "970:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "979:1:5", + "nodeType": "YulLiteral", + "src": "979:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "982:1:5", + "nodeType": "YulLiteral", + "src": "982:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "972:6:5", + "nodeType": "YulIdentifier", + "src": "972:6:5" + }, + "nativeSrc": "972:12:5", + "nodeType": "YulFunctionCall", + "src": "972:12:5" + }, + "nativeSrc": "972:12:5", + "nodeType": "YulExpressionStatement", + "src": "972:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "942:6:5", + "nodeType": "YulIdentifier", + "src": "942:6:5" + }, + { + "kind": "number", + "nativeSrc": "950:18:5", + "nodeType": "YulLiteral", + "src": "950:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "939:2:5", + "nodeType": "YulIdentifier", + "src": "939:2:5" + }, + "nativeSrc": "939:30:5", + "nodeType": "YulFunctionCall", + "src": "939:30:5" + }, + "nativeSrc": "936:50:5", + "nodeType": "YulIf", + "src": "936:50:5" + }, + { + "nativeSrc": "995:85:5", + "nodeType": "YulVariableDeclaration", + "src": "995:85:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1052:9:5", + "nodeType": "YulIdentifier", + "src": "1052:9:5" + }, + { + "name": "offset", + "nativeSrc": "1063:6:5", + "nodeType": "YulIdentifier", + "src": "1063:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1048:3:5", + "nodeType": "YulIdentifier", + "src": "1048:3:5" + }, + "nativeSrc": "1048:22:5", + "nodeType": "YulFunctionCall", + "src": "1048:22:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1072:7:5", + "nodeType": "YulIdentifier", + "src": "1072:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1021:26:5", + "nodeType": "YulIdentifier", + "src": "1021:26:5" + }, + "nativeSrc": "1021:59:5", + "nodeType": "YulFunctionCall", + "src": "1021:59:5" + }, + "variables": [ + { + "name": "value1_1", + "nativeSrc": "999:8:5", + "nodeType": "YulTypedName", + "src": "999:8:5", + "type": "" + }, + { + "name": "value2_1", + "nativeSrc": "1009:8:5", + "nodeType": "YulTypedName", + "src": "1009:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1089:18:5", + "nodeType": "YulAssignment", + "src": "1089:18:5", + "value": { + "name": "value1_1", + "nativeSrc": "1099:8:5", + "nodeType": "YulIdentifier", + "src": "1099:8:5" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1089:6:5", + "nodeType": "YulIdentifier", + "src": "1089:6:5" + } + ] + }, + { + "nativeSrc": "1116:18:5", + "nodeType": "YulAssignment", + "src": "1116:18:5", + "value": { + "name": "value2_1", + "nativeSrc": "1126:8:5", + "nodeType": "YulIdentifier", + "src": "1126:8:5" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1116:6:5", + "nodeType": "YulIdentifier", + "src": "1116:6:5" + } + ] + }, + { + "nativeSrc": "1143:48:5", + "nodeType": "YulVariableDeclaration", + "src": "1143:48:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1176:9:5", + "nodeType": "YulIdentifier", + "src": "1176:9:5" + }, + { + "kind": "number", + "nativeSrc": "1187:2:5", + "nodeType": "YulLiteral", + "src": "1187:2:5", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1172:3:5", + "nodeType": "YulIdentifier", + "src": "1172:3:5" + }, + "nativeSrc": "1172:18:5", + "nodeType": "YulFunctionCall", + "src": "1172:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1159:12:5", + "nodeType": "YulIdentifier", + "src": "1159:12:5" + }, + "nativeSrc": "1159:32:5", + "nodeType": "YulFunctionCall", + "src": "1159:32:5" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "1147:8:5", + "nodeType": "YulTypedName", + "src": "1147:8:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1236:16:5", + "nodeType": "YulBlock", + "src": "1236:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1245:1:5", + "nodeType": "YulLiteral", + "src": "1245:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1248:1:5", + "nodeType": "YulLiteral", + "src": "1248:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1238:6:5", + "nodeType": "YulIdentifier", + "src": "1238:6:5" + }, + "nativeSrc": "1238:12:5", + "nodeType": "YulFunctionCall", + "src": "1238:12:5" + }, + "nativeSrc": "1238:12:5", + "nodeType": "YulExpressionStatement", + "src": "1238:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "1206:8:5", + "nodeType": "YulIdentifier", + "src": "1206:8:5" + }, + { + "kind": "number", + "nativeSrc": "1216:18:5", + "nodeType": "YulLiteral", + "src": "1216:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1203:2:5", + "nodeType": "YulIdentifier", + "src": "1203:2:5" + }, + "nativeSrc": "1203:32:5", + "nodeType": "YulFunctionCall", + "src": "1203:32:5" + }, + "nativeSrc": "1200:52:5", + "nodeType": "YulIf", + "src": "1200:52:5" + }, + { + "nativeSrc": "1261:87:5", + "nodeType": "YulVariableDeclaration", + "src": "1261:87:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1318:9:5", + "nodeType": "YulIdentifier", + "src": "1318:9:5" + }, + { + "name": "offset_1", + "nativeSrc": "1329:8:5", + "nodeType": "YulIdentifier", + "src": "1329:8:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1314:3:5", + "nodeType": "YulIdentifier", + "src": "1314:3:5" + }, + "nativeSrc": "1314:24:5", + "nodeType": "YulFunctionCall", + "src": "1314:24:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1340:7:5", + "nodeType": "YulIdentifier", + "src": "1340:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1287:26:5", + "nodeType": "YulIdentifier", + "src": "1287:26:5" + }, + "nativeSrc": "1287:61:5", + "nodeType": "YulFunctionCall", + "src": "1287:61:5" + }, + "variables": [ + { + "name": "value3_1", + "nativeSrc": "1265:8:5", + "nodeType": "YulTypedName", + "src": "1265:8:5", + "type": "" + }, + { + "name": "value4_1", + "nativeSrc": "1275:8:5", + "nodeType": "YulTypedName", + "src": "1275:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1357:18:5", + "nodeType": "YulAssignment", + "src": "1357:18:5", + "value": { + "name": "value3_1", + "nativeSrc": "1367:8:5", + "nodeType": "YulIdentifier", + "src": "1367:8:5" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "1357:6:5", + "nodeType": "YulIdentifier", + "src": "1357:6:5" + } + ] + }, + { + "nativeSrc": "1384:18:5", + "nodeType": "YulAssignment", + "src": "1384:18:5", + "value": { + "name": "value4_1", + "nativeSrc": "1394:8:5", + "nodeType": "YulIdentifier", + "src": "1394:8:5" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "1384:6:5", + "nodeType": "YulIdentifier", + "src": "1384:6:5" + } + ] + }, + { + "nativeSrc": "1411:48:5", + "nodeType": "YulVariableDeclaration", + "src": "1411:48:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1444:9:5", + "nodeType": "YulIdentifier", + "src": "1444:9:5" + }, + { + "kind": "number", + "nativeSrc": "1455:2:5", + "nodeType": "YulLiteral", + "src": "1455:2:5", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1440:3:5", + "nodeType": "YulIdentifier", + "src": "1440:3:5" + }, + "nativeSrc": "1440:18:5", + "nodeType": "YulFunctionCall", + "src": "1440:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1427:12:5", + "nodeType": "YulIdentifier", + "src": "1427:12:5" + }, + "nativeSrc": "1427:32:5", + "nodeType": "YulFunctionCall", + "src": "1427:32:5" + }, + "variables": [ + { + "name": "offset_2", + "nativeSrc": "1415:8:5", + "nodeType": "YulTypedName", + "src": "1415:8:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1504:16:5", + "nodeType": "YulBlock", + "src": "1504:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1513:1:5", + "nodeType": "YulLiteral", + "src": "1513:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1516:1:5", + "nodeType": "YulLiteral", + "src": "1516:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1506:6:5", + "nodeType": "YulIdentifier", + "src": "1506:6:5" + }, + "nativeSrc": "1506:12:5", + "nodeType": "YulFunctionCall", + "src": "1506:12:5" + }, + "nativeSrc": "1506:12:5", + "nodeType": "YulExpressionStatement", + "src": "1506:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_2", + "nativeSrc": "1474:8:5", + "nodeType": "YulIdentifier", + "src": "1474:8:5" + }, + { + "kind": "number", + "nativeSrc": "1484:18:5", + "nodeType": "YulLiteral", + "src": "1484:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1471:2:5", + "nodeType": "YulIdentifier", + "src": "1471:2:5" + }, + "nativeSrc": "1471:32:5", + "nodeType": "YulFunctionCall", + "src": "1471:32:5" + }, + "nativeSrc": "1468:52:5", + "nodeType": "YulIf", + "src": "1468:52:5" + }, + { + "nativeSrc": "1529:87:5", + "nodeType": "YulVariableDeclaration", + "src": "1529:87:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1586:9:5", + "nodeType": "YulIdentifier", + "src": "1586:9:5" + }, + { + "name": "offset_2", + "nativeSrc": "1597:8:5", + "nodeType": "YulIdentifier", + "src": "1597:8:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1582:3:5", + "nodeType": "YulIdentifier", + "src": "1582:3:5" + }, + "nativeSrc": "1582:24:5", + "nodeType": "YulFunctionCall", + "src": "1582:24:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1608:7:5", + "nodeType": "YulIdentifier", + "src": "1608:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1555:26:5", + "nodeType": "YulIdentifier", + "src": "1555:26:5" + }, + "nativeSrc": "1555:61:5", + "nodeType": "YulFunctionCall", + "src": "1555:61:5" + }, + "variables": [ + { + "name": "value5_1", + "nativeSrc": "1533:8:5", + "nodeType": "YulTypedName", + "src": "1533:8:5", + "type": "" + }, + { + "name": "value6_1", + "nativeSrc": "1543:8:5", + "nodeType": "YulTypedName", + "src": "1543:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1625:18:5", + "nodeType": "YulAssignment", + "src": "1625:18:5", + "value": { + "name": "value5_1", + "nativeSrc": "1635:8:5", + "nodeType": "YulIdentifier", + "src": "1635:8:5" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "1625:6:5", + "nodeType": "YulIdentifier", + "src": "1625:6:5" + } + ] + }, + { + "nativeSrc": "1652:18:5", + "nodeType": "YulAssignment", + "src": "1652:18:5", + "value": { + "name": "value6_1", + "nativeSrc": "1662:8:5", + "nodeType": "YulIdentifier", + "src": "1662:8:5" + }, + "variableNames": [ + { + "name": "value6", + "nativeSrc": "1652:6:5", + "nodeType": "YulIdentifier", + "src": "1652:6:5" + } + ] + }, + { + "nativeSrc": "1679:43:5", + "nodeType": "YulAssignment", + "src": "1679:43:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1706:9:5", + "nodeType": "YulIdentifier", + "src": "1706:9:5" + }, + { + "kind": "number", + "nativeSrc": "1717:3:5", + "nodeType": "YulLiteral", + "src": "1717:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1702:3:5", + "nodeType": "YulIdentifier", + "src": "1702:3:5" + }, + "nativeSrc": "1702:19:5", + "nodeType": "YulFunctionCall", + "src": "1702:19:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1689:12:5", + "nodeType": "YulIdentifier", + "src": "1689:12:5" + }, + "nativeSrc": "1689:33:5", + "nodeType": "YulFunctionCall", + "src": "1689:33:5" + }, + "variableNames": [ + { + "name": "value7", + "nativeSrc": "1679:6:5", + "nodeType": "YulIdentifier", + "src": "1679:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_string_calldata_ptrt_bytes_calldata_ptrt_bytes32", + "nativeSrc": "503:1225:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "610:9:5", + "nodeType": "YulTypedName", + "src": "610:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "621:7:5", + "nodeType": "YulTypedName", + "src": "621:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "633:6:5", + "nodeType": "YulTypedName", + "src": "633:6:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "641:6:5", + "nodeType": "YulTypedName", + "src": "641:6:5", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "649:6:5", + "nodeType": "YulTypedName", + "src": "649:6:5", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "657:6:5", + "nodeType": "YulTypedName", + "src": "657:6:5", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "665:6:5", + "nodeType": "YulTypedName", + "src": "665:6:5", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "673:6:5", + "nodeType": "YulTypedName", + "src": "673:6:5", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "681:6:5", + "nodeType": "YulTypedName", + "src": "681:6:5", + "type": "" + }, + { + "name": "value7", + "nativeSrc": "689:6:5", + "nodeType": "YulTypedName", + "src": "689:6:5", + "type": "" + } + ], + "src": "503:1225:5" + }, + { + "body": { + "nativeSrc": "1850:102:5", + "nodeType": "YulBlock", + "src": "1850:102:5", + "statements": [ + { + "nativeSrc": "1860:26:5", + "nodeType": "YulAssignment", + "src": "1860:26:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1872:9:5", + "nodeType": "YulIdentifier", + "src": "1872:9:5" + }, + { + "kind": "number", + "nativeSrc": "1883:2:5", + "nodeType": "YulLiteral", + "src": "1883:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1868:3:5", + "nodeType": "YulIdentifier", + "src": "1868:3:5" + }, + "nativeSrc": "1868:18:5", + "nodeType": "YulFunctionCall", + "src": "1868:18:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1860:4:5", + "nodeType": "YulIdentifier", + "src": "1860:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1902:9:5", + "nodeType": "YulIdentifier", + "src": "1902:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1917:6:5", + "nodeType": "YulIdentifier", + "src": "1917:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1933:3:5", + "nodeType": "YulLiteral", + "src": "1933:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1938:1:5", + "nodeType": "YulLiteral", + "src": "1938:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1929:3:5", + "nodeType": "YulIdentifier", + "src": "1929:3:5" + }, + "nativeSrc": "1929:11:5", + "nodeType": "YulFunctionCall", + "src": "1929:11:5" + }, + { + "kind": "number", + "nativeSrc": "1942:1:5", + "nodeType": "YulLiteral", + "src": "1942:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1925:3:5", + "nodeType": "YulIdentifier", + "src": "1925:3:5" + }, + "nativeSrc": "1925:19:5", + "nodeType": "YulFunctionCall", + "src": "1925:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1913:3:5", + "nodeType": "YulIdentifier", + "src": "1913:3:5" + }, + "nativeSrc": "1913:32:5", + "nodeType": "YulFunctionCall", + "src": "1913:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1895:6:5", + "nodeType": "YulIdentifier", + "src": "1895:6:5" + }, + "nativeSrc": "1895:51:5", + "nodeType": "YulFunctionCall", + "src": "1895:51:5" + }, + "nativeSrc": "1895:51:5", + "nodeType": "YulExpressionStatement", + "src": "1895:51:5" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed", + "nativeSrc": "1733:219:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1819:9:5", + "nodeType": "YulTypedName", + "src": "1819:9:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1830:6:5", + "nodeType": "YulTypedName", + "src": "1830:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1841:4:5", + "nodeType": "YulTypedName", + "src": "1841:4:5", + "type": "" + } + ], + "src": "1733:219:5" + }, + { + "body": { + "nativeSrc": "2082:102:5", + "nodeType": "YulBlock", + "src": "2082:102:5", + "statements": [ + { + "nativeSrc": "2092:26:5", + "nodeType": "YulAssignment", + "src": "2092:26:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2104:9:5", + "nodeType": "YulIdentifier", + "src": "2104:9:5" + }, + { + "kind": "number", + "nativeSrc": "2115:2:5", + "nodeType": "YulLiteral", + "src": "2115:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2100:3:5", + "nodeType": "YulIdentifier", + "src": "2100:3:5" + }, + "nativeSrc": "2100:18:5", + "nodeType": "YulFunctionCall", + "src": "2100:18:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2092:4:5", + "nodeType": "YulIdentifier", + "src": "2092:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2134:9:5", + "nodeType": "YulIdentifier", + "src": "2134:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2149:6:5", + "nodeType": "YulIdentifier", + "src": "2149:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2165:3:5", + "nodeType": "YulLiteral", + "src": "2165:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2170:1:5", + "nodeType": "YulLiteral", + "src": "2170:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2161:3:5", + "nodeType": "YulIdentifier", + "src": "2161:3:5" + }, + "nativeSrc": "2161:11:5", + "nodeType": "YulFunctionCall", + "src": "2161:11:5" + }, + { + "kind": "number", + "nativeSrc": "2174:1:5", + "nodeType": "YulLiteral", + "src": "2174:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2157:3:5", + "nodeType": "YulIdentifier", + "src": "2157:3:5" + }, + "nativeSrc": "2157:19:5", + "nodeType": "YulFunctionCall", + "src": "2157:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2145:3:5", + "nodeType": "YulIdentifier", + "src": "2145:3:5" + }, + "nativeSrc": "2145:32:5", + "nodeType": "YulFunctionCall", + "src": "2145:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2127:6:5", + "nodeType": "YulIdentifier", + "src": "2127:6:5" + }, + "nativeSrc": "2127:51:5", + "nodeType": "YulFunctionCall", + "src": "2127:51:5" + }, + "nativeSrc": "2127:51:5", + "nodeType": "YulExpressionStatement", + "src": "2127:51:5" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IDatasetRegistry_$125__to_t_address__fromStack_reversed", + "nativeSrc": "1957:227:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2051:9:5", + "nodeType": "YulTypedName", + "src": "2051:9:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2062:6:5", + "nodeType": "YulTypedName", + "src": "2062:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2073:4:5", + "nodeType": "YulTypedName", + "src": "2073:4:5", + "type": "" + } + ], + "src": "1957:227:5" + }, + { + "body": { + "nativeSrc": "2256:200:5", + "nodeType": "YulBlock", + "src": "2256:200:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2273:3:5", + "nodeType": "YulIdentifier", + "src": "2273:3:5" + }, + { + "name": "length", + "nativeSrc": "2278:6:5", + "nodeType": "YulIdentifier", + "src": "2278:6:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2266:6:5", + "nodeType": "YulIdentifier", + "src": "2266:6:5" + }, + "nativeSrc": "2266:19:5", + "nodeType": "YulFunctionCall", + "src": "2266:19:5" + }, + "nativeSrc": "2266:19:5", + "nodeType": "YulExpressionStatement", + "src": "2266:19:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2311:3:5", + "nodeType": "YulIdentifier", + "src": "2311:3:5" + }, + { + "kind": "number", + "nativeSrc": "2316:4:5", + "nodeType": "YulLiteral", + "src": "2316:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2307:3:5", + "nodeType": "YulIdentifier", + "src": "2307:3:5" + }, + "nativeSrc": "2307:14:5", + "nodeType": "YulFunctionCall", + "src": "2307:14:5" + }, + { + "name": "start", + "nativeSrc": "2323:5:5", + "nodeType": "YulIdentifier", + "src": "2323:5:5" + }, + { + "name": "length", + "nativeSrc": "2330:6:5", + "nodeType": "YulIdentifier", + "src": "2330:6:5" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "2294:12:5", + "nodeType": "YulIdentifier", + "src": "2294:12:5" + }, + "nativeSrc": "2294:43:5", + "nodeType": "YulFunctionCall", + "src": "2294:43:5" + }, + "nativeSrc": "2294:43:5", + "nodeType": "YulExpressionStatement", + "src": "2294:43:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2361:3:5", + "nodeType": "YulIdentifier", + "src": "2361:3:5" + }, + { + "name": "length", + "nativeSrc": "2366:6:5", + "nodeType": "YulIdentifier", + "src": "2366:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2357:3:5", + "nodeType": "YulIdentifier", + "src": "2357:3:5" + }, + "nativeSrc": "2357:16:5", + "nodeType": "YulFunctionCall", + "src": "2357:16:5" + }, + { + "kind": "number", + "nativeSrc": "2375:4:5", + "nodeType": "YulLiteral", + "src": "2375:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2353:3:5", + "nodeType": "YulIdentifier", + "src": "2353:3:5" + }, + "nativeSrc": "2353:27:5", + "nodeType": "YulFunctionCall", + "src": "2353:27:5" + }, + { + "kind": "number", + "nativeSrc": "2382:1:5", + "nodeType": "YulLiteral", + "src": "2382:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2346:6:5", + "nodeType": "YulIdentifier", + "src": "2346:6:5" + }, + "nativeSrc": "2346:38:5", + "nodeType": "YulFunctionCall", + "src": "2346:38:5" + }, + "nativeSrc": "2346:38:5", + "nodeType": "YulExpressionStatement", + "src": "2346:38:5" + }, + { + "nativeSrc": "2393:57:5", + "nodeType": "YulAssignment", + "src": "2393:57:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2408:3:5", + "nodeType": "YulIdentifier", + "src": "2408:3:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2421:6:5", + "nodeType": "YulIdentifier", + "src": "2421:6:5" + }, + { + "kind": "number", + "nativeSrc": "2429:2:5", + "nodeType": "YulLiteral", + "src": "2429:2:5", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2417:3:5", + "nodeType": "YulIdentifier", + "src": "2417:3:5" + }, + "nativeSrc": "2417:15:5", + "nodeType": "YulFunctionCall", + "src": "2417:15:5" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2438:2:5", + "nodeType": "YulLiteral", + "src": "2438:2:5", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2434:3:5", + "nodeType": "YulIdentifier", + "src": "2434:3:5" + }, + "nativeSrc": "2434:7:5", + "nodeType": "YulFunctionCall", + "src": "2434:7:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2413:3:5", + "nodeType": "YulIdentifier", + "src": "2413:3:5" + }, + "nativeSrc": "2413:29:5", + "nodeType": "YulFunctionCall", + "src": "2413:29:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2404:3:5", + "nodeType": "YulIdentifier", + "src": "2404:3:5" + }, + "nativeSrc": "2404:39:5", + "nodeType": "YulFunctionCall", + "src": "2404:39:5" + }, + { + "kind": "number", + "nativeSrc": "2445:4:5", + "nodeType": "YulLiteral", + "src": "2445:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2400:3:5", + "nodeType": "YulIdentifier", + "src": "2400:3:5" + }, + "nativeSrc": "2400:50:5", + "nodeType": "YulFunctionCall", + "src": "2400:50:5" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2393:3:5", + "nodeType": "YulIdentifier", + "src": "2393:3:5" + } + ] + } + ] + }, + "name": "abi_encode_string_calldata", + "nativeSrc": "2189:267:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "2225:5:5", + "nodeType": "YulTypedName", + "src": "2225:5:5", + "type": "" + }, + { + "name": "length", + "nativeSrc": "2232:6:5", + "nodeType": "YulTypedName", + "src": "2232:6:5", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2240:3:5", + "nodeType": "YulTypedName", + "src": "2240:3:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "2248:3:5", + "nodeType": "YulTypedName", + "src": "2248:3:5", + "type": "" + } + ], + "src": "2189:267:5" + }, + { + "body": { + "nativeSrc": "2704:362:5", + "nodeType": "YulBlock", + "src": "2704:362:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2721:9:5", + "nodeType": "YulIdentifier", + "src": "2721:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2736:6:5", + "nodeType": "YulIdentifier", + "src": "2736:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2752:3:5", + "nodeType": "YulLiteral", + "src": "2752:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2757:1:5", + "nodeType": "YulLiteral", + "src": "2757:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2748:3:5", + "nodeType": "YulIdentifier", + "src": "2748:3:5" + }, + "nativeSrc": "2748:11:5", + "nodeType": "YulFunctionCall", + "src": "2748:11:5" + }, + { + "kind": "number", + "nativeSrc": "2761:1:5", + "nodeType": "YulLiteral", + "src": "2761:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2744:3:5", + "nodeType": "YulIdentifier", + "src": "2744:3:5" + }, + "nativeSrc": "2744:19:5", + "nodeType": "YulFunctionCall", + "src": "2744:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2732:3:5", + "nodeType": "YulIdentifier", + "src": "2732:3:5" + }, + "nativeSrc": "2732:32:5", + "nodeType": "YulFunctionCall", + "src": "2732:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2714:6:5", + "nodeType": "YulIdentifier", + "src": "2714:6:5" + }, + "nativeSrc": "2714:51:5", + "nodeType": "YulFunctionCall", + "src": "2714:51:5" + }, + "nativeSrc": "2714:51:5", + "nodeType": "YulExpressionStatement", + "src": "2714:51:5" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2785:9:5", + "nodeType": "YulIdentifier", + "src": "2785:9:5" + }, + { + "kind": "number", + "nativeSrc": "2796:2:5", + "nodeType": "YulLiteral", + "src": "2796:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2781:3:5", + "nodeType": "YulIdentifier", + "src": "2781:3:5" + }, + "nativeSrc": "2781:18:5", + "nodeType": "YulFunctionCall", + "src": "2781:18:5" + }, + { + "kind": "number", + "nativeSrc": "2801:3:5", + "nodeType": "YulLiteral", + "src": "2801:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2774:6:5", + "nodeType": "YulIdentifier", + "src": "2774:6:5" + }, + "nativeSrc": "2774:31:5", + "nodeType": "YulFunctionCall", + "src": "2774:31:5" + }, + "nativeSrc": "2774:31:5", + "nodeType": "YulExpressionStatement", + "src": "2774:31:5" + }, + { + "nativeSrc": "2814:77:5", + "nodeType": "YulVariableDeclaration", + "src": "2814:77:5", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2855:6:5", + "nodeType": "YulIdentifier", + "src": "2855:6:5" + }, + { + "name": "value2", + "nativeSrc": "2863:6:5", + "nodeType": "YulIdentifier", + "src": "2863:6:5" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2875:9:5", + "nodeType": "YulIdentifier", + "src": "2875:9:5" + }, + { + "kind": "number", + "nativeSrc": "2886:3:5", + "nodeType": "YulLiteral", + "src": "2886:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2871:3:5", + "nodeType": "YulIdentifier", + "src": "2871:3:5" + }, + "nativeSrc": "2871:19:5", + "nodeType": "YulFunctionCall", + "src": "2871:19:5" + } + ], + "functionName": { + "name": "abi_encode_string_calldata", + "nativeSrc": "2828:26:5", + "nodeType": "YulIdentifier", + "src": "2828:26:5" + }, + "nativeSrc": "2828:63:5", + "nodeType": "YulFunctionCall", + "src": "2828:63:5" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "2818:6:5", + "nodeType": "YulTypedName", + "src": "2818:6:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2911:9:5", + "nodeType": "YulIdentifier", + "src": "2911:9:5" + }, + { + "kind": "number", + "nativeSrc": "2922:2:5", + "nodeType": "YulLiteral", + "src": "2922:2:5", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2907:3:5", + "nodeType": "YulIdentifier", + "src": "2907:3:5" + }, + "nativeSrc": "2907:18:5", + "nodeType": "YulFunctionCall", + "src": "2907:18:5" + }, + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "2931:6:5", + "nodeType": "YulIdentifier", + "src": "2931:6:5" + }, + { + "name": "headStart", + "nativeSrc": "2939:9:5", + "nodeType": "YulIdentifier", + "src": "2939:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2927:3:5", + "nodeType": "YulIdentifier", + "src": "2927:3:5" + }, + "nativeSrc": "2927:22:5", + "nodeType": "YulFunctionCall", + "src": "2927:22:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2900:6:5", + "nodeType": "YulIdentifier", + "src": "2900:6:5" + }, + "nativeSrc": "2900:50:5", + "nodeType": "YulFunctionCall", + "src": "2900:50:5" + }, + "nativeSrc": "2900:50:5", + "nodeType": "YulExpressionStatement", + "src": "2900:50:5" + }, + { + "nativeSrc": "2959:58:5", + "nodeType": "YulAssignment", + "src": "2959:58:5", + "value": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "2994:6:5", + "nodeType": "YulIdentifier", + "src": "2994:6:5" + }, + { + "name": "value4", + "nativeSrc": "3002:6:5", + "nodeType": "YulIdentifier", + "src": "3002:6:5" + }, + { + "name": "tail_1", + "nativeSrc": "3010:6:5", + "nodeType": "YulIdentifier", + "src": "3010:6:5" + } + ], + "functionName": { + "name": "abi_encode_string_calldata", + "nativeSrc": "2967:26:5", + "nodeType": "YulIdentifier", + "src": "2967:26:5" + }, + "nativeSrc": "2967:50:5", + "nodeType": "YulFunctionCall", + "src": "2967:50:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2959:4:5", + "nodeType": "YulIdentifier", + "src": "2959:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3037:9:5", + "nodeType": "YulIdentifier", + "src": "3037:9:5" + }, + { + "kind": "number", + "nativeSrc": "3048:2:5", + "nodeType": "YulLiteral", + "src": "3048:2:5", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3033:3:5", + "nodeType": "YulIdentifier", + "src": "3033:3:5" + }, + "nativeSrc": "3033:18:5", + "nodeType": "YulFunctionCall", + "src": "3033:18:5" + }, + { + "name": "value5", + "nativeSrc": "3053:6:5", + "nodeType": "YulIdentifier", + "src": "3053:6:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3026:6:5", + "nodeType": "YulIdentifier", + "src": "3026:6:5" + }, + "nativeSrc": "3026:34:5", + "nodeType": "YulFunctionCall", + "src": "3026:34:5" + }, + "nativeSrc": "3026:34:5", + "nodeType": "YulExpressionStatement", + "src": "3026:34:5" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_string_calldata_ptr_t_bytes_calldata_ptr_t_bytes32__to_t_address_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes32__fromStack_reversed", + "nativeSrc": "2461:605:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2633:9:5", + "nodeType": "YulTypedName", + "src": "2633:9:5", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "2644:6:5", + "nodeType": "YulTypedName", + "src": "2644:6:5", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "2652:6:5", + "nodeType": "YulTypedName", + "src": "2652:6:5", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "2660:6:5", + "nodeType": "YulTypedName", + "src": "2660:6:5", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2668:6:5", + "nodeType": "YulTypedName", + "src": "2668:6:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2676:6:5", + "nodeType": "YulTypedName", + "src": "2676:6:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2684:6:5", + "nodeType": "YulTypedName", + "src": "2684:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2695:4:5", + "nodeType": "YulTypedName", + "src": "2695:4:5", + "type": "" + } + ], + "src": "2461:605:5" + }, + { + "body": { + "nativeSrc": "3168:170:5", + "nodeType": "YulBlock", + "src": "3168:170:5", + "statements": [ + { + "body": { + "nativeSrc": "3214:16:5", + "nodeType": "YulBlock", + "src": "3214:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3223:1:5", + "nodeType": "YulLiteral", + "src": "3223:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3226:1:5", + "nodeType": "YulLiteral", + "src": "3226:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3216:6:5", + "nodeType": "YulIdentifier", + "src": "3216:6:5" + }, + "nativeSrc": "3216:12:5", + "nodeType": "YulFunctionCall", + "src": "3216:12:5" + }, + "nativeSrc": "3216:12:5", + "nodeType": "YulExpressionStatement", + "src": "3216:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3189:7:5", + "nodeType": "YulIdentifier", + "src": "3189:7:5" + }, + { + "name": "headStart", + "nativeSrc": "3198:9:5", + "nodeType": "YulIdentifier", + "src": "3198:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3185:3:5", + "nodeType": "YulIdentifier", + "src": "3185:3:5" + }, + "nativeSrc": "3185:23:5", + "nodeType": "YulFunctionCall", + "src": "3185:23:5" + }, + { + "kind": "number", + "nativeSrc": "3210:2:5", + "nodeType": "YulLiteral", + "src": "3210:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3181:3:5", + "nodeType": "YulIdentifier", + "src": "3181:3:5" + }, + "nativeSrc": "3181:32:5", + "nodeType": "YulFunctionCall", + "src": "3181:32:5" + }, + "nativeSrc": "3178:52:5", + "nodeType": "YulIf", + "src": "3178:52:5" + }, + { + "nativeSrc": "3239:29:5", + "nodeType": "YulVariableDeclaration", + "src": "3239:29:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3258:9:5", + "nodeType": "YulIdentifier", + "src": "3258:9:5" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3252:5:5", + "nodeType": "YulIdentifier", + "src": "3252:5:5" + }, + "nativeSrc": "3252:16:5", + "nodeType": "YulFunctionCall", + "src": "3252:16:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3243:5:5", + "nodeType": "YulTypedName", + "src": "3243:5:5", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3302:5:5", + "nodeType": "YulIdentifier", + "src": "3302:5:5" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "3277:24:5", + "nodeType": "YulIdentifier", + "src": "3277:24:5" + }, + "nativeSrc": "3277:31:5", + "nodeType": "YulFunctionCall", + "src": "3277:31:5" + }, + "nativeSrc": "3277:31:5", + "nodeType": "YulExpressionStatement", + "src": "3277:31:5" + }, + { + "nativeSrc": "3317:15:5", + "nodeType": "YulAssignment", + "src": "3317:15:5", + "value": { + "name": "value", + "nativeSrc": "3327:5:5", + "nodeType": "YulIdentifier", + "src": "3327:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3317:6:5", + "nodeType": "YulIdentifier", + "src": "3317:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_IDataset_$107_fromMemory", + "nativeSrc": "3071:267:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3134:9:5", + "nodeType": "YulTypedName", + "src": "3134:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3145:7:5", + "nodeType": "YulTypedName", + "src": "3145:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3157:6:5", + "nodeType": "YulTypedName", + "src": "3157:6:5", + "type": "" + } + ], + "src": "3071:267:5" + }, + { + "body": { + "nativeSrc": "3474:116:5", + "nodeType": "YulBlock", + "src": "3474:116:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3491:9:5", + "nodeType": "YulIdentifier", + "src": "3491:9:5" + }, + { + "kind": "number", + "nativeSrc": "3502:2:5", + "nodeType": "YulLiteral", + "src": "3502:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3484:6:5", + "nodeType": "YulIdentifier", + "src": "3484:6:5" + }, + "nativeSrc": "3484:21:5", + "nodeType": "YulFunctionCall", + "src": "3484:21:5" + }, + "nativeSrc": "3484:21:5", + "nodeType": "YulExpressionStatement", + "src": "3484:21:5" + }, + { + "nativeSrc": "3514:70:5", + "nodeType": "YulAssignment", + "src": "3514:70:5", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3549:6:5", + "nodeType": "YulIdentifier", + "src": "3549:6:5" + }, + { + "name": "value1", + "nativeSrc": "3557:6:5", + "nodeType": "YulIdentifier", + "src": "3557:6:5" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3569:9:5", + "nodeType": "YulIdentifier", + "src": "3569:9:5" + }, + { + "kind": "number", + "nativeSrc": "3580:2:5", + "nodeType": "YulLiteral", + "src": "3580:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3565:3:5", + "nodeType": "YulIdentifier", + "src": "3565:3:5" + }, + "nativeSrc": "3565:18:5", + "nodeType": "YulFunctionCall", + "src": "3565:18:5" + } + ], + "functionName": { + "name": "abi_encode_string_calldata", + "nativeSrc": "3522:26:5", + "nodeType": "YulIdentifier", + "src": "3522:26:5" + }, + "nativeSrc": "3522:62:5", + "nodeType": "YulFunctionCall", + "src": "3522:62:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3514:4:5", + "nodeType": "YulIdentifier", + "src": "3514:4:5" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "3343:247:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3435:9:5", + "nodeType": "YulTypedName", + "src": "3435:9:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3446:6:5", + "nodeType": "YulTypedName", + "src": "3446:6:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3454:6:5", + "nodeType": "YulTypedName", + "src": "3454:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3465:4:5", + "nodeType": "YulTypedName", + "src": "3465:4:5", + "type": "" + } + ], + "src": "3343:247:5" + } + ] + }, + "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_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_string_calldata_ptrt_string_calldata_ptrt_bytes_calldata_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_2 := calldataload(add(headStart, 96))\n if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n let value5_1, value6_1 := abi_decode_string_calldata(add(headStart, offset_2), dataEnd)\n value5 := value5_1\n value6 := value6_1\n value7 := calldataload(add(headStart, 128))\n }\n function abi_encode_tuple_t_contract$_IDataset_$107__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_contract$_IDatasetRegistry_$125__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_string_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\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_string_calldata_ptr_t_bytes_calldata_ptr_t_bytes32__to_t_address_t_string_memory_ptr_t_bytes_memory_ptr_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n let tail_1 := abi_encode_string_calldata(value1, value2, add(headStart, 128))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_string_calldata(value3, value4, tail_1)\n mstore(add(headStart, 96), value5)\n }\n function abi_decode_tuple_t_contract$_IDataset_$107_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_string_calldata_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string_calldata(value0, value1, add(headStart, 32))\n }\n}", + "id": 5, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": { + "7": [ + { + "length": 32, + "start": 111 + }, + { + "length": 32, + "start": 150 + } + ] + }, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x167FBF5F EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x6A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E0 JUMP JUMPDEST PUSH2 0x91 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4E PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3354BCDB DUP12 DUP12 DUP12 DUP10 DUP10 DUP10 PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x109 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 0x12D SWAP2 SWAP1 PUSH2 0x315 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x37B19B8900A9B045473748167F459FA16828F33C13D71473BCA4B5E52E5F4D5D DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x16A SWAP3 SWAP2 SWAP1 PUSH2 0x339 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 CALLDATALOAD PUSH2 0x207 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22F DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25B DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x27B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x287 DUP12 DUP3 DUP13 ADD PUSH2 0x197 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 SWAP6 SWAP9 SWAP5 SWAP8 SWAP5 SWAP6 PUSH1 0x80 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 DUP4 MSTORE DUP2 DUP2 PUSH1 0x20 DUP6 ADD CALLDATACOPY POP PUSH1 0x0 DUP3 DUP3 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2EE SWAP1 DUP4 ADD DUP8 DUP10 PUSH2 0x2A0 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x301 DUP2 DUP7 DUP9 PUSH2 0x2A0 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x327 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x332 DUP2 PUSH2 0x17F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x34D PUSH1 0x20 DUP4 ADD DUP5 DUP7 PUSH2 0x2A0 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL PUSH25 0x247810E731B2C7A76FCEFAD2CA335779409B90779F5DBE730D SWAP15 0xAC ADD PUSH17 0x9164736F6C634300081D00330000000000 ", + "sourceMap": "1310:692:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1489:511;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1913:32:5;;;1895:51;;1883:2;1868:18;1489:511:0;;;;;;;1357:42;;;;;1489:511;1731:8;1751:16;1770:8;-1:-1:-1;;;;;1770:22:0;;1806:13;1833:12;;1859:17;;1890:16;1770:146;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1751:165;;1945:7;-1:-1:-1;;;;;1931:38:0;;1954:14;;1931:38;;;;;;;:::i;:::-;;;;;;;;1986:7;1489:511;-1:-1:-1;;;;;;;;;1489:511:0:o;14:131:5:-;-1:-1:-1;;;;;89:31:5;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:348::-;202:8;212:6;266:3;259:4;251:6;247:17;243:27;233:55;;284:1;281;274:12;233:55;-1:-1:-1;307:20:5;;350:18;339:30;;336:50;;;382:1;379;372:12;336:50;419:4;411:6;407:17;395:29;;471:3;464:4;455:6;447;443:19;439:30;436:39;433:59;;;488:1;485;478:12;433:59;150:348;;;;;:::o;503:1225::-;633:6;641;649;657;665;673;681;689;742:3;730:9;721:7;717:23;713:33;710:53;;;759:1;756;749:12;710:53;798:9;785:23;817:31;842:5;817:31;:::i;:::-;867:5;-1:-1:-1;923:2:5;908:18;;895:32;950:18;939:30;;936:50;;;982:1;979;972:12;936:50;1021:59;1072:7;1063:6;1052:9;1048:22;1021:59;:::i;:::-;1099:8;;-1:-1:-1;995:85:5;-1:-1:-1;;1187:2:5;1172:18;;1159:32;1216:18;1203:32;;1200:52;;;1248:1;1245;1238:12;1200:52;1287:61;1340:7;1329:8;1318:9;1314:24;1287:61;:::i;:::-;1367:8;;-1:-1:-1;1261:87:5;-1:-1:-1;;1455:2:5;1440:18;;1427:32;1484:18;1471:32;;1468:52;;;1516:1;1513;1506:12;1468:52;1555:61;1608:7;1597:8;1586:9;1582:24;1555:61;:::i;:::-;503:1225;;;;-1:-1:-1;503:1225:5;;;;;;1529:87;;1717:3;1702:19;1689:33;;503:1225;-1:-1:-1;;;;503:1225:5:o;2189:267::-;2278:6;2273:3;2266:19;2330:6;2323:5;2316:4;2311:3;2307:14;2294:43;-1:-1:-1;2382:1:5;2357:16;;;2375:4;2353:27;;;2346:38;;;;2438:2;2417:15;;;-1:-1:-1;;2413:29:5;2404:39;;;2400:50;;2189:267::o;2461:605::-;-1:-1:-1;;;;;2732:32:5;;2714:51;;2801:3;2796:2;2781:18;;2774:31;;;-1:-1:-1;;2828:63:5;;2871:19;;2863:6;2855;2828:63;:::i;:::-;2939:9;2931:6;2927:22;2922:2;2911:9;2907:18;2900:50;2967;3010:6;3002;2994;2967:50;:::i;:::-;2959:58;;;3053:6;3048:2;3037:9;3033:18;3026:34;2461:605;;;;;;;;;:::o;3071:267::-;3157:6;3210:2;3198:9;3189:7;3185:23;3181:32;3178:52;;;3226:1;3223;3216:12;3178:52;3258:9;3252:16;3277:31;3302:5;3277:31;:::i;:::-;3327:5;3071:267;-1:-1:-1;;;3071:267:5:o;3343:247::-;3502:2;3491:9;3484:21;3465:4;3522:62;3580:2;3569:9;3565:18;3557:6;3549;3522:62;:::i;:::-;3514:70;3343:247;-1:-1:-1;;;;3343:247:5:o" + }, + "methodIdentifiers": { + "createDatasetWithSchema(address,string,string,bytes,bytes32)": "167fbf5f", + "registry()": "7b103999" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IDatasetRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IDataset\",\"name\":\"dataset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"name\":\"DatasetSchema\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_datasetSchema\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDatasetWithSchema\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IDatasetRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"params\":{\"dataset\":\"- The ID of ProtectedData (ERC721).\",\"schema\":\"- The schema of the data containing in the ProtectedData created.\"}}},\"kind\":\"dev\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"params\":{\"_datasetChecksum\":\"-The checksum of the ProtectedData.\",\"_datasetMultiaddr\":\"- The multiaddress of the ProtectedData.\",\"_datasetName\":\"- The name of the ProtectedData (metadata).\",\"_datasetOwner\":\"- The owner of the ProtectedData.\",\"_datasetSchema\":\"- The schema of the data containing in the ProtectedData\"},\"returns\":{\"_0\":\"IDataset - The ProtcetedData instance created.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"notice\":\"Event emitted when new ProtectedData is created.\"}},\"kind\":\"user\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"notice\":\"Create a new protectedData.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DataProtector.sol\":\"DataProtector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DataProtector.sol\":{\"keccak256\":\"0x69fe709c00e3502354e377936e95ce4c632b9c8f37e666da9fb3f43e44e54980\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d40c7ecec8cedb328bee981b282f44a02b5288ccbd7c9bd6bd666c161ce76bbc\",\"dweb:/ipfs/Qmbft3iMDa4beKHqasdRnZvJHf7CMxDq2mBy42addiFgDL\"]},\"contracts/interfaces/IDataProtector.sol\":{\"keccak256\":\"0xdcf3be7045fa35fa3e7bc1bbde488f8cc1419482da4a222b29a91346486405d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f7c53ed6549cc000f801b3c059870b0304558341ff972185f04f905f35a5a17e\",\"dweb:/ipfs/QmNT8NkrdWhmpUAwG9YE8mTuUVpdB46JtFsQeoNJiyNov4\"]},\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + }, + "contracts/DatasetRegistryMock.sol": { + "DatasetRegistryMock": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDataset", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506101818061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80633354bcdb14610030575b600080fd5b61004a61003e3660046100af565b60009695505050505050565b6040516001600160a01b03909116815260200160405180910390f35b60008083601f84011261007857600080fd5b50813567ffffffffffffffff81111561009057600080fd5b6020830191508360208285010111156100a857600080fd5b9250929050565b600080600080600080608087890312156100c857600080fd5b86356001600160a01b03811681146100df57600080fd5b9550602087013567ffffffffffffffff8111156100fb57600080fd5b61010789828a01610066565b909650945050604087013567ffffffffffffffff81111561012757600080fd5b61013389828a01610066565b979a969950949794969560609095013594935050505056fea26469706673582212202309c854e67905caf462e5bb05fd1aff01ecf016be257d1b9de3af328543c70464736f6c634300081d0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x181 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3354BCDB EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xAF JUMP JUMPDEST PUSH1 0x0 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x107 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x133 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP5 SWAP7 SWAP6 PUSH1 0x60 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x23 MULMOD 0xC8 SLOAD DUPN 0x79 SDIV 0xCA DELEGATECALL PUSH3 0xE5BB05 REVERT BYTE SELFDESTRUCT ADD EOFCREATE 0xF0 AND 0xBE 0x25 PUSH30 0x1B9DE3AF328543C70464736F6C634300081D003300000000000000000000 ", + "sourceMap": "1313:261:1:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@createDataset_74": { + "entryPoint": null, + "id": 74, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_decode_string_calldata": { + "entryPoint": 102, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_string_calldata_ptrt_bytes_calldata_ptrt_bytes32": { + "entryPoint": 175, + "id": null, + "parameterSlots": 2, + "returnSlots": 6 + }, + "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1551:5", + "nodeType": "YulBlock", + "src": "0:1551:5", + "statements": [ + { + "nativeSrc": "6:3:5", + "nodeType": "YulBlock", + "src": "6:3:5", + "statements": [] + }, + { + "body": { + "nativeSrc": "87:275:5", + "nodeType": "YulBlock", + "src": "87:275:5", + "statements": [ + { + "body": { + "nativeSrc": "136:16:5", + "nodeType": "YulBlock", + "src": "136:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "145:1:5", + "nodeType": "YulLiteral", + "src": "145:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "148:1:5", + "nodeType": "YulLiteral", + "src": "148:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "138:6:5", + "nodeType": "YulIdentifier", + "src": "138:6:5" + }, + "nativeSrc": "138:12:5", + "nodeType": "YulFunctionCall", + "src": "138:12:5" + }, + "nativeSrc": "138:12:5", + "nodeType": "YulExpressionStatement", + "src": "138:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "115:6:5", + "nodeType": "YulIdentifier", + "src": "115:6:5" + }, + { + "kind": "number", + "nativeSrc": "123:4:5", + "nodeType": "YulLiteral", + "src": "123:4:5", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "111:3:5", + "nodeType": "YulIdentifier", + "src": "111:3:5" + }, + "nativeSrc": "111:17:5", + "nodeType": "YulFunctionCall", + "src": "111:17:5" + }, + { + "name": "end", + "nativeSrc": "130:3:5", + "nodeType": "YulIdentifier", + "src": "130:3:5" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "107:3:5", + "nodeType": "YulIdentifier", + "src": "107:3:5" + }, + "nativeSrc": "107:27:5", + "nodeType": "YulFunctionCall", + "src": "107:27:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "100:6:5", + "nodeType": "YulIdentifier", + "src": "100:6:5" + }, + "nativeSrc": "100:35:5", + "nodeType": "YulFunctionCall", + "src": "100:35:5" + }, + "nativeSrc": "97:55:5", + "nodeType": "YulIf", + "src": "97:55:5" + }, + { + "nativeSrc": "161:30:5", + "nodeType": "YulAssignment", + "src": "161:30:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "184:6:5", + "nodeType": "YulIdentifier", + "src": "184:6:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "171:12:5", + "nodeType": "YulIdentifier", + "src": "171:12:5" + }, + "nativeSrc": "171:20:5", + "nodeType": "YulFunctionCall", + "src": "171:20:5" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "161:6:5", + "nodeType": "YulIdentifier", + "src": "161:6:5" + } + ] + }, + { + "body": { + "nativeSrc": "234:16:5", + "nodeType": "YulBlock", + "src": "234:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "243:1:5", + "nodeType": "YulLiteral", + "src": "243:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "246:1:5", + "nodeType": "YulLiteral", + "src": "246:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "236:6:5", + "nodeType": "YulIdentifier", + "src": "236:6:5" + }, + "nativeSrc": "236:12:5", + "nodeType": "YulFunctionCall", + "src": "236:12:5" + }, + "nativeSrc": "236:12:5", + "nodeType": "YulExpressionStatement", + "src": "236:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "206:6:5", + "nodeType": "YulIdentifier", + "src": "206:6:5" + }, + { + "kind": "number", + "nativeSrc": "214:18:5", + "nodeType": "YulLiteral", + "src": "214:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "203:2:5", + "nodeType": "YulIdentifier", + "src": "203:2:5" + }, + "nativeSrc": "203:30:5", + "nodeType": "YulFunctionCall", + "src": "203:30:5" + }, + "nativeSrc": "200:50:5", + "nodeType": "YulIf", + "src": "200:50:5" + }, + { + "nativeSrc": "259:29:5", + "nodeType": "YulAssignment", + "src": "259:29:5", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "275:6:5", + "nodeType": "YulIdentifier", + "src": "275:6:5" + }, + { + "kind": "number", + "nativeSrc": "283:4:5", + "nodeType": "YulLiteral", + "src": "283:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "271:3:5", + "nodeType": "YulIdentifier", + "src": "271:3:5" + }, + "nativeSrc": "271:17:5", + "nodeType": "YulFunctionCall", + "src": "271:17:5" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "259:8:5", + "nodeType": "YulIdentifier", + "src": "259:8:5" + } + ] + }, + { + "body": { + "nativeSrc": "340:16:5", + "nodeType": "YulBlock", + "src": "340:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "349:1:5", + "nodeType": "YulLiteral", + "src": "349:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "352:1:5", + "nodeType": "YulLiteral", + "src": "352:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "342:6:5", + "nodeType": "YulIdentifier", + "src": "342:6:5" + }, + "nativeSrc": "342:12:5", + "nodeType": "YulFunctionCall", + "src": "342:12:5" + }, + "nativeSrc": "342:12:5", + "nodeType": "YulExpressionStatement", + "src": "342:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "311:6:5", + "nodeType": "YulIdentifier", + "src": "311:6:5" + }, + { + "name": "length", + "nativeSrc": "319:6:5", + "nodeType": "YulIdentifier", + "src": "319:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "307:3:5", + "nodeType": "YulIdentifier", + "src": "307:3:5" + }, + "nativeSrc": "307:19:5", + "nodeType": "YulFunctionCall", + "src": "307:19:5" + }, + { + "kind": "number", + "nativeSrc": "328:4:5", + "nodeType": "YulLiteral", + "src": "328:4:5", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "303:3:5", + "nodeType": "YulIdentifier", + "src": "303:3:5" + }, + "nativeSrc": "303:30:5", + "nodeType": "YulFunctionCall", + "src": "303:30:5" + }, + { + "name": "end", + "nativeSrc": "335:3:5", + "nodeType": "YulIdentifier", + "src": "335:3:5" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "300:2:5", + "nodeType": "YulIdentifier", + "src": "300:2:5" + }, + "nativeSrc": "300:39:5", + "nodeType": "YulFunctionCall", + "src": "300:39:5" + }, + "nativeSrc": "297:59:5", + "nodeType": "YulIf", + "src": "297:59:5" + } + ] + }, + "name": "abi_decode_string_calldata", + "nativeSrc": "14:348:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "50:6:5", + "nodeType": "YulTypedName", + "src": "50:6:5", + "type": "" + }, + { + "name": "end", + "nativeSrc": "58:3:5", + "nodeType": "YulTypedName", + "src": "58:3:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "66:8:5", + "nodeType": "YulTypedName", + "src": "66:8:5", + "type": "" + }, + { + "name": "length", + "nativeSrc": "76:6:5", + "nodeType": "YulTypedName", + "src": "76:6:5", + "type": "" + } + ], + "src": "14:348:5" + }, + { + "body": { + "nativeSrc": "527:798:5", + "nodeType": "YulBlock", + "src": "527:798:5", + "statements": [ + { + "body": { + "nativeSrc": "574:16:5", + "nodeType": "YulBlock", + "src": "574:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "583:1:5", + "nodeType": "YulLiteral", + "src": "583:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "586:1:5", + "nodeType": "YulLiteral", + "src": "586:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "576:6:5", + "nodeType": "YulIdentifier", + "src": "576:6:5" + }, + "nativeSrc": "576:12:5", + "nodeType": "YulFunctionCall", + "src": "576:12:5" + }, + "nativeSrc": "576:12:5", + "nodeType": "YulExpressionStatement", + "src": "576:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "548:7:5", + "nodeType": "YulIdentifier", + "src": "548:7:5" + }, + { + "name": "headStart", + "nativeSrc": "557:9:5", + "nodeType": "YulIdentifier", + "src": "557:9:5" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "544:3:5", + "nodeType": "YulIdentifier", + "src": "544:3:5" + }, + "nativeSrc": "544:23:5", + "nodeType": "YulFunctionCall", + "src": "544:23:5" + }, + { + "kind": "number", + "nativeSrc": "569:3:5", + "nodeType": "YulLiteral", + "src": "569:3:5", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "540:3:5", + "nodeType": "YulIdentifier", + "src": "540:3:5" + }, + "nativeSrc": "540:33:5", + "nodeType": "YulFunctionCall", + "src": "540:33:5" + }, + "nativeSrc": "537:53:5", + "nodeType": "YulIf", + "src": "537:53:5" + }, + { + "nativeSrc": "599:36:5", + "nodeType": "YulVariableDeclaration", + "src": "599:36:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "625:9:5", + "nodeType": "YulIdentifier", + "src": "625:9:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "612:12:5", + "nodeType": "YulIdentifier", + "src": "612:12:5" + }, + "nativeSrc": "612:23:5", + "nodeType": "YulFunctionCall", + "src": "612:23:5" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "603:5:5", + "nodeType": "YulTypedName", + "src": "603:5:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "698:16:5", + "nodeType": "YulBlock", + "src": "698:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "707:1:5", + "nodeType": "YulLiteral", + "src": "707:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "710:1:5", + "nodeType": "YulLiteral", + "src": "710:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "700:6:5", + "nodeType": "YulIdentifier", + "src": "700:6:5" + }, + "nativeSrc": "700:12:5", + "nodeType": "YulFunctionCall", + "src": "700:12:5" + }, + "nativeSrc": "700:12:5", + "nodeType": "YulExpressionStatement", + "src": "700:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "657:5:5", + "nodeType": "YulIdentifier", + "src": "657:5:5" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "668:5:5", + "nodeType": "YulIdentifier", + "src": "668:5:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "683:3:5", + "nodeType": "YulLiteral", + "src": "683:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "688:1:5", + "nodeType": "YulLiteral", + "src": "688:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "679:3:5", + "nodeType": "YulIdentifier", + "src": "679:3:5" + }, + "nativeSrc": "679:11:5", + "nodeType": "YulFunctionCall", + "src": "679:11:5" + }, + { + "kind": "number", + "nativeSrc": "692:1:5", + "nodeType": "YulLiteral", + "src": "692:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "675:3:5", + "nodeType": "YulIdentifier", + "src": "675:3:5" + }, + "nativeSrc": "675:19:5", + "nodeType": "YulFunctionCall", + "src": "675:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "664:3:5", + "nodeType": "YulIdentifier", + "src": "664:3:5" + }, + "nativeSrc": "664:31:5", + "nodeType": "YulFunctionCall", + "src": "664:31:5" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "654:2:5", + "nodeType": "YulIdentifier", + "src": "654:2:5" + }, + "nativeSrc": "654:42:5", + "nodeType": "YulFunctionCall", + "src": "654:42:5" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "647:6:5", + "nodeType": "YulIdentifier", + "src": "647:6:5" + }, + "nativeSrc": "647:50:5", + "nodeType": "YulFunctionCall", + "src": "647:50:5" + }, + "nativeSrc": "644:70:5", + "nodeType": "YulIf", + "src": "644:70:5" + }, + { + "nativeSrc": "723:15:5", + "nodeType": "YulAssignment", + "src": "723:15:5", + "value": { + "name": "value", + "nativeSrc": "733:5:5", + "nodeType": "YulIdentifier", + "src": "733:5:5" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "723:6:5", + "nodeType": "YulIdentifier", + "src": "723:6:5" + } + ] + }, + { + "nativeSrc": "747:46:5", + "nodeType": "YulVariableDeclaration", + "src": "747:46:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "778:9:5", + "nodeType": "YulIdentifier", + "src": "778:9:5" + }, + { + "kind": "number", + "nativeSrc": "789:2:5", + "nodeType": "YulLiteral", + "src": "789:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "774:3:5", + "nodeType": "YulIdentifier", + "src": "774:3:5" + }, + "nativeSrc": "774:18:5", + "nodeType": "YulFunctionCall", + "src": "774:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "761:12:5", + "nodeType": "YulIdentifier", + "src": "761:12:5" + }, + "nativeSrc": "761:32:5", + "nodeType": "YulFunctionCall", + "src": "761:32:5" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "751:6:5", + "nodeType": "YulTypedName", + "src": "751:6:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "836:16:5", + "nodeType": "YulBlock", + "src": "836:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "845:1:5", + "nodeType": "YulLiteral", + "src": "845:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "848:1:5", + "nodeType": "YulLiteral", + "src": "848:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "838:6:5", + "nodeType": "YulIdentifier", + "src": "838:6:5" + }, + "nativeSrc": "838:12:5", + "nodeType": "YulFunctionCall", + "src": "838:12:5" + }, + "nativeSrc": "838:12:5", + "nodeType": "YulExpressionStatement", + "src": "838:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "808:6:5", + "nodeType": "YulIdentifier", + "src": "808:6:5" + }, + { + "kind": "number", + "nativeSrc": "816:18:5", + "nodeType": "YulLiteral", + "src": "816:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "805:2:5", + "nodeType": "YulIdentifier", + "src": "805:2:5" + }, + "nativeSrc": "805:30:5", + "nodeType": "YulFunctionCall", + "src": "805:30:5" + }, + "nativeSrc": "802:50:5", + "nodeType": "YulIf", + "src": "802:50:5" + }, + { + "nativeSrc": "861:85:5", + "nodeType": "YulVariableDeclaration", + "src": "861:85:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "918:9:5", + "nodeType": "YulIdentifier", + "src": "918:9:5" + }, + { + "name": "offset", + "nativeSrc": "929:6:5", + "nodeType": "YulIdentifier", + "src": "929:6:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "914:3:5", + "nodeType": "YulIdentifier", + "src": "914:3:5" + }, + "nativeSrc": "914:22:5", + "nodeType": "YulFunctionCall", + "src": "914:22:5" + }, + { + "name": "dataEnd", + "nativeSrc": "938:7:5", + "nodeType": "YulIdentifier", + "src": "938:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "887:26:5", + "nodeType": "YulIdentifier", + "src": "887:26:5" + }, + "nativeSrc": "887:59:5", + "nodeType": "YulFunctionCall", + "src": "887:59:5" + }, + "variables": [ + { + "name": "value1_1", + "nativeSrc": "865:8:5", + "nodeType": "YulTypedName", + "src": "865:8:5", + "type": "" + }, + { + "name": "value2_1", + "nativeSrc": "875:8:5", + "nodeType": "YulTypedName", + "src": "875:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "955:18:5", + "nodeType": "YulAssignment", + "src": "955:18:5", + "value": { + "name": "value1_1", + "nativeSrc": "965:8:5", + "nodeType": "YulIdentifier", + "src": "965:8:5" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "955:6:5", + "nodeType": "YulIdentifier", + "src": "955:6:5" + } + ] + }, + { + "nativeSrc": "982:18:5", + "nodeType": "YulAssignment", + "src": "982:18:5", + "value": { + "name": "value2_1", + "nativeSrc": "992:8:5", + "nodeType": "YulIdentifier", + "src": "992:8:5" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "982:6:5", + "nodeType": "YulIdentifier", + "src": "982:6:5" + } + ] + }, + { + "nativeSrc": "1009:48:5", + "nodeType": "YulVariableDeclaration", + "src": "1009:48:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1042:9:5", + "nodeType": "YulIdentifier", + "src": "1042:9:5" + }, + { + "kind": "number", + "nativeSrc": "1053:2:5", + "nodeType": "YulLiteral", + "src": "1053:2:5", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1038:3:5", + "nodeType": "YulIdentifier", + "src": "1038:3:5" + }, + "nativeSrc": "1038:18:5", + "nodeType": "YulFunctionCall", + "src": "1038:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1025:12:5", + "nodeType": "YulIdentifier", + "src": "1025:12:5" + }, + "nativeSrc": "1025:32:5", + "nodeType": "YulFunctionCall", + "src": "1025:32:5" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "1013:8:5", + "nodeType": "YulTypedName", + "src": "1013:8:5", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1102:16:5", + "nodeType": "YulBlock", + "src": "1102:16:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1111:1:5", + "nodeType": "YulLiteral", + "src": "1111:1:5", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1114:1:5", + "nodeType": "YulLiteral", + "src": "1114:1:5", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1104:6:5", + "nodeType": "YulIdentifier", + "src": "1104:6:5" + }, + "nativeSrc": "1104:12:5", + "nodeType": "YulFunctionCall", + "src": "1104:12:5" + }, + "nativeSrc": "1104:12:5", + "nodeType": "YulExpressionStatement", + "src": "1104:12:5" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "1072:8:5", + "nodeType": "YulIdentifier", + "src": "1072:8:5" + }, + { + "kind": "number", + "nativeSrc": "1082:18:5", + "nodeType": "YulLiteral", + "src": "1082:18:5", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1069:2:5", + "nodeType": "YulIdentifier", + "src": "1069:2:5" + }, + "nativeSrc": "1069:32:5", + "nodeType": "YulFunctionCall", + "src": "1069:32:5" + }, + "nativeSrc": "1066:52:5", + "nodeType": "YulIf", + "src": "1066:52:5" + }, + { + "nativeSrc": "1127:87:5", + "nodeType": "YulVariableDeclaration", + "src": "1127:87:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1184:9:5", + "nodeType": "YulIdentifier", + "src": "1184:9:5" + }, + { + "name": "offset_1", + "nativeSrc": "1195:8:5", + "nodeType": "YulIdentifier", + "src": "1195:8:5" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1180:3:5", + "nodeType": "YulIdentifier", + "src": "1180:3:5" + }, + "nativeSrc": "1180:24:5", + "nodeType": "YulFunctionCall", + "src": "1180:24:5" + }, + { + "name": "dataEnd", + "nativeSrc": "1206:7:5", + "nodeType": "YulIdentifier", + "src": "1206:7:5" + } + ], + "functionName": { + "name": "abi_decode_string_calldata", + "nativeSrc": "1153:26:5", + "nodeType": "YulIdentifier", + "src": "1153:26:5" + }, + "nativeSrc": "1153:61:5", + "nodeType": "YulFunctionCall", + "src": "1153:61:5" + }, + "variables": [ + { + "name": "value3_1", + "nativeSrc": "1131:8:5", + "nodeType": "YulTypedName", + "src": "1131:8:5", + "type": "" + }, + { + "name": "value4_1", + "nativeSrc": "1141:8:5", + "nodeType": "YulTypedName", + "src": "1141:8:5", + "type": "" + } + ] + }, + { + "nativeSrc": "1223:18:5", + "nodeType": "YulAssignment", + "src": "1223:18:5", + "value": { + "name": "value3_1", + "nativeSrc": "1233:8:5", + "nodeType": "YulIdentifier", + "src": "1233:8:5" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "1223:6:5", + "nodeType": "YulIdentifier", + "src": "1223:6:5" + } + ] + }, + { + "nativeSrc": "1250:18:5", + "nodeType": "YulAssignment", + "src": "1250:18:5", + "value": { + "name": "value4_1", + "nativeSrc": "1260:8:5", + "nodeType": "YulIdentifier", + "src": "1260:8:5" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "1250:6:5", + "nodeType": "YulIdentifier", + "src": "1250:6:5" + } + ] + }, + { + "nativeSrc": "1277:42:5", + "nodeType": "YulAssignment", + "src": "1277:42:5", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1304:9:5", + "nodeType": "YulIdentifier", + "src": "1304:9:5" + }, + { + "kind": "number", + "nativeSrc": "1315:2:5", + "nodeType": "YulLiteral", + "src": "1315:2:5", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1300:3:5", + "nodeType": "YulIdentifier", + "src": "1300:3:5" + }, + "nativeSrc": "1300:18:5", + "nodeType": "YulFunctionCall", + "src": "1300:18:5" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1287:12:5", + "nodeType": "YulIdentifier", + "src": "1287:12:5" + }, + "nativeSrc": "1287:32:5", + "nodeType": "YulFunctionCall", + "src": "1287:32:5" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "1277:6:5", + "nodeType": "YulIdentifier", + "src": "1277:6:5" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bytes_calldata_ptrt_bytes32", + "nativeSrc": "367:958:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "453:9:5", + "nodeType": "YulTypedName", + "src": "453:9:5", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "464:7:5", + "nodeType": "YulTypedName", + "src": "464:7:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "476:6:5", + "nodeType": "YulTypedName", + "src": "476:6:5", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "484:6:5", + "nodeType": "YulTypedName", + "src": "484:6:5", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "492:6:5", + "nodeType": "YulTypedName", + "src": "492:6:5", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "500:6:5", + "nodeType": "YulTypedName", + "src": "500:6:5", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "508:6:5", + "nodeType": "YulTypedName", + "src": "508:6:5", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "516:6:5", + "nodeType": "YulTypedName", + "src": "516:6:5", + "type": "" + } + ], + "src": "367:958:5" + }, + { + "body": { + "nativeSrc": "1447:102:5", + "nodeType": "YulBlock", + "src": "1447:102:5", + "statements": [ + { + "nativeSrc": "1457:26:5", + "nodeType": "YulAssignment", + "src": "1457:26:5", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1469:9:5", + "nodeType": "YulIdentifier", + "src": "1469:9:5" + }, + { + "kind": "number", + "nativeSrc": "1480:2:5", + "nodeType": "YulLiteral", + "src": "1480:2:5", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1465:3:5", + "nodeType": "YulIdentifier", + "src": "1465:3:5" + }, + "nativeSrc": "1465:18:5", + "nodeType": "YulFunctionCall", + "src": "1465:18:5" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1457:4:5", + "nodeType": "YulIdentifier", + "src": "1457:4:5" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1499:9:5", + "nodeType": "YulIdentifier", + "src": "1499:9:5" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1514:6:5", + "nodeType": "YulIdentifier", + "src": "1514:6:5" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1530:3:5", + "nodeType": "YulLiteral", + "src": "1530:3:5", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "1535:1:5", + "nodeType": "YulLiteral", + "src": "1535:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1526:3:5", + "nodeType": "YulIdentifier", + "src": "1526:3:5" + }, + "nativeSrc": "1526:11:5", + "nodeType": "YulFunctionCall", + "src": "1526:11:5" + }, + { + "kind": "number", + "nativeSrc": "1539:1:5", + "nodeType": "YulLiteral", + "src": "1539:1:5", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1522:3:5", + "nodeType": "YulIdentifier", + "src": "1522:3:5" + }, + "nativeSrc": "1522:19:5", + "nodeType": "YulFunctionCall", + "src": "1522:19:5" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1510:3:5", + "nodeType": "YulIdentifier", + "src": "1510:3:5" + }, + "nativeSrc": "1510:32:5", + "nodeType": "YulFunctionCall", + "src": "1510:32:5" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1492:6:5", + "nodeType": "YulIdentifier", + "src": "1492:6:5" + }, + "nativeSrc": "1492:51:5", + "nodeType": "YulFunctionCall", + "src": "1492:51:5" + }, + "nativeSrc": "1492:51:5", + "nodeType": "YulExpressionStatement", + "src": "1492:51:5" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IDataset_$107__to_t_address__fromStack_reversed", + "nativeSrc": "1330:219:5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1416:9:5", + "nodeType": "YulTypedName", + "src": "1416:9:5", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1427:6:5", + "nodeType": "YulTypedName", + "src": "1427:6:5", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1438:4:5", + "nodeType": "YulTypedName", + "src": "1438:4:5", + "type": "" + } + ], + "src": "1330:219:5" + } + ] + }, + "contents": "{\n { }\n function abi_decode_string_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_string_calldata_ptrt_bytes_calldata_ptrt_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_string_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n value5 := calldataload(add(headStart, 96))\n }\n function abi_encode_tuple_t_contract$_IDataset_$107__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}", + "id": 5, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80633354bcdb14610030575b600080fd5b61004a61003e3660046100af565b60009695505050505050565b6040516001600160a01b03909116815260200160405180910390f35b60008083601f84011261007857600080fd5b50813567ffffffffffffffff81111561009057600080fd5b6020830191508360208285010111156100a857600080fd5b9250929050565b600080600080600080608087890312156100c857600080fd5b86356001600160a01b03811681146100df57600080fd5b9550602087013567ffffffffffffffff8111156100fb57600080fd5b61010789828a01610066565b909650945050604087013567ffffffffffffffff81111561012757600080fd5b61013389828a01610066565b979a969950949794969560609095013594935050505056fea26469706673582212202309c854e67905caf462e5bb05fd1aff01ecf016be257d1b9de3af328543c70464736f6c634300081d0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3354BCDB EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xAF JUMP JUMPDEST PUSH1 0x0 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x107 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x133 DUP10 DUP3 DUP11 ADD PUSH2 0x66 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP5 SWAP7 SWAP6 PUSH1 0x60 SWAP1 SWAP6 ADD CALLDATALOAD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x23 MULMOD 0xC8 SLOAD DUPN 0x79 SDIV 0xCA DELEGATECALL PUSH3 0xE5BB05 REVERT BYTE SELFDESTRUCT ADD EOFCREATE 0xF0 AND 0xBE 0x25 PUSH30 0x1B9DE3AF328543C70464736F6C634300081D003300000000000000000000 ", + "sourceMap": "1313:261:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:204;;;;;;:::i;:::-;1560:8;1368:204;;;;;;;;;;;;-1:-1:-1;;;;;1510:32:5;;;1492:51;;1480:2;1465:18;1368:204:1;;;;;;;14:348:5;66:8;76:6;130:3;123:4;115:6;111:17;107:27;97:55;;148:1;145;138:12;97:55;-1:-1:-1;171:20:5;;214:18;203:30;;200:50;;;246:1;243;236:12;200:50;283:4;275:6;271:17;259:29;;335:3;328:4;319:6;311;307:19;303:30;300:39;297:59;;;352:1;349;342:12;297:59;14:348;;;;;:::o;367:958::-;476:6;484;492;500;508;516;569:3;557:9;548:7;544:23;540:33;537:53;;;586:1;583;576:12;537:53;612:23;;-1:-1:-1;;;;;664:31:5;;654:42;;644:70;;710:1;707;700:12;644:70;733:5;-1:-1:-1;789:2:5;774:18;;761:32;816:18;805:30;;802:50;;;848:1;845;838:12;802:50;887:59;938:7;929:6;918:9;914:22;887:59;:::i;:::-;965:8;;-1:-1:-1;861:85:5;-1:-1:-1;;1053:2:5;1038:18;;1025:32;1082:18;1069:32;;1066:52;;;1114:1;1111;1104:12;1066:52;1153:61;1206:7;1195:8;1184:9;1180:24;1153:61;:::i;:::-;367:958;;;;-1:-1:-1;367:958:5;;;;;1315:2;1300:18;;;1287:32;;367:958;-1:-1:-1;;;;367:958:5:o" + }, + "methodIdentifiers": { + "createDataset(address,string,bytes,bytes32)": "3354bcdb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDataset\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DatasetRegistryMock.sol\":\"DatasetRegistryMock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DatasetRegistryMock.sol\":{\"keccak256\":\"0xbfcf7296d441191ed4d145d2d83f7d644243bdc0fe8f7e4ee1a2863c9a145c08\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://146652dc7255171f686e05ef81823e3655130bc378be5305f7c17d2e92701d36\",\"dweb:/ipfs/QmZtv3MamTNZXNuqJpDk2ZjD5DrTEyNLChcqyKKSasLjH9\"]},\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDataProtector.sol": { + "IDataProtector": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IDataset", + "name": "dataset", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "schema", + "type": "string" + } + ], + "name": "DatasetSchema", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "string", + "name": "_datasetSchema", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDatasetWithSchema", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createDatasetWithSchema(address,string,string,bytes,bytes32)": "167fbf5f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IDataset\",\"name\":\"dataset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"}],\"name\":\"DatasetSchema\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_datasetSchema\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDatasetWithSchema\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"params\":{\"dataset\":\"- The ID of ProtectedData (ERC721).\",\"schema\":\"- The schema of the data containing in the ProtectedData created.\"}}},\"kind\":\"dev\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"params\":{\"_datasetChecksum\":\"-The checksum of the ProtectedData.\",\"_datasetMultiaddr\":\"- The multiaddress of the ProtectedData.\",\"_datasetName\":\"- The name of the ProtectedData (metadata).\",\"_datasetOwner\":\"- The owner of the ProtectedData.\",\"_datasetSchema\":\"- The schema of the data containing in the ProtectedData\"},\"returns\":{\"_0\":\"IDataset - The ProtcetedData instance created.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"DatasetSchema(address,string)\":{\"notice\":\"Event emitted when new ProtectedData is created.\"}},\"kind\":\"user\",\"methods\":{\"createDatasetWithSchema(address,string,string,bytes,bytes32)\":{\"notice\":\"Create a new protectedData.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataProtector.sol\":\"IDataProtector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataProtector.sol\":{\"keccak256\":\"0xdcf3be7045fa35fa3e7bc1bbde488f8cc1419482da4a222b29a91346486405d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f7c53ed6549cc000f801b3c059870b0304558341ff972185f04f905f35a5a17e\",\"dweb:/ipfs/QmNT8NkrdWhmpUAwG9YE8mTuUVpdB46JtFsQeoNJiyNov4\"]},\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDataset.sol": { + "IDataset": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDataset.sol\":\"IDataset\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]}},\"version\":1}" + } + }, + "contracts/interfaces/IDatasetRegistry.sol": { + "IDatasetRegistry": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_datasetOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "_datasetName", + "type": "string" + }, + { + "internalType": "bytes", + "name": "_datasetMultiaddr", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_datasetChecksum", + "type": "bytes32" + } + ], + "name": "createDataset", + "outputs": [ + { + "internalType": "contract IDataset", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "createDataset(address,string,bytes,bytes32)": "3354bcdb" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_datasetOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_datasetName\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"_datasetMultiaddr\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"_datasetChecksum\",\"type\":\"bytes32\"}],\"name\":\"createDataset\",\"outputs\":[{\"internalType\":\"contract IDataset\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDatasetRegistry.sol\":\"IDatasetRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDataset.sol\":{\"keccak256\":\"0xed04beb5fab6bfb0f56eeb995ba8970c991db6be1e89be9fccec3414dc507890\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://11c79ca741e566efce875dc359e8ed691fbce6ba2af96779e985d3cbc364a7f9\",\"dweb:/ipfs/QmPs6tWWDaDNaZDS1xUPMdbjAr6CgMz1z9grVLk6kZqr26\"]},\"contracts/interfaces/IDatasetRegistry.sol\":{\"keccak256\":\"0xc43f4f95235b3624f3698b4bf1d274491eae8e9c1eaeec5e5671f1b04fd082de\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://857f147d2e216996668f09564959baa3af5ac68355d874353dc3411130468958\",\"dweb:/ipfs/QmcaF74s2YcRSke1b7xtExG5u5BVE5ptwxr2Vw9BeB4kaK\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/packages/smart-contract/ignition/deployments/chain-43113/deployed_addresses.json b/packages/smart-contract/ignition/deployments/chain-43113/deployed_addresses.json new file mode 100644 index 000000000..192542a6d --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-43113/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "DataProtectorModule#DataProtector": "0x2296daeDD3090750a80fFB2D0147669984909ED2" +} diff --git a/packages/smart-contract/ignition/deployments/chain-43113/journal.jsonl b/packages/smart-contract/ignition/deployments/chain-43113/journal.jsonl new file mode 100644 index 000000000..792265f82 --- /dev/null +++ b/packages/smart-contract/ignition/deployments/chain-43113/journal.jsonl @@ -0,0 +1,8 @@ + +{"chainId":43113,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"DataProtectorModule#DataProtector","constructorArgs":["0x3441A0C9FE488c51fcABa2bAAA048720f4D4F72D"],"contractName":"DataProtector","dependencies":[],"from":"0x9990cfb1feb7f47297f54bef4d4ebedf6c5463a3","futureId":"DataProtectorModule#DataProtector","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"create2","strategyConfig":{"salt":"0x0000000000000000000000000000000000000000000000000000000000000000"},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DataProtectorModule#DataProtector","networkInteraction":{"data":"0x2630766800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000043560a0604052348015600f57600080fd5b50604051610415380380610415833981016040819052602c91603c565b6001600160a01b0316608052606a565b600060208284031215604d57600080fd5b81516001600160a01b0381168114606357600080fd5b9392505050565b60805161038b61008a60003960008181606f01526096015261038b6000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063167fbf5f1461003b5780637b1039991461006a575b600080fd5b61004e6100493660046101e0565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633354bcdb8b8b8b8989896040518763ffffffff1660e01b81526004016100ea969594939291906102c9565b6020604051808303816000875af1158015610109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012d9190610315565b9050806001600160a01b03167f37b19b8900a9b045473748167f459fa16828f33c13d71473bca4b5e52e5f4d5d888860405161016a929190610339565b60405180910390a29998505050505050505050565b6001600160a01b038116811461019457600080fd5b50565b60008083601f8401126101a957600080fd5b50813567ffffffffffffffff8111156101c157600080fd5b6020830191508360208285010111156101d957600080fd5b9250929050565b60008060008060008060008060a0898b0312156101fc57600080fd5b88356102078161017f565b9750602089013567ffffffffffffffff81111561022357600080fd5b61022f8b828c01610197565b909850965050604089013567ffffffffffffffff81111561024f57600080fd5b61025b8b828c01610197565b909650945050606089013567ffffffffffffffff81111561027b57600080fd5b6102878b828c01610197565b999c989b50969995989497949560800135949350505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03871681526080602082018190526000906102ee90830187896102a0565b82810360408401526103018186886102a0565b915050826060830152979650505050505050565b60006020828403121561032757600080fd5b81516103328161017f565b9392505050565b60208152600061034d6020830184866102a0565b94935050505056fea2646970667358221220f178247810e731b2c7a76fcefad2ca335779409b90779f5dbe730d9eac01709164736f6c634300081d00330000000000000000000000003441a0c9fe488c51fcaba2baaa048720f4d4f72d0000000000000000000000","id":1,"to":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DataProtectorModule#DataProtector","networkInteractionId":1,"nonce":1,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DataProtectorModule#DataProtector","networkInteractionId":1,"nonce":1,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"3"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1"}},"hash":"0x38cdc597cb6d3ee27691cdea2c8b0d1ff21fc47abff74c258a18affc6b3e1850"},"type":"TRANSACTION_SEND"} +{"futureId":"DataProtectorModule#DataProtector","hash":"0x38cdc597cb6d3ee27691cdea2c8b0d1ff21fc47abff74c258a18affc6b3e1850","networkInteractionId":1,"receipt":{"blockHash":"0xf174334d2bd6a7f192dc77a5a42daf85b8e76aaa80f03e2ab90b1f267c60b6d7","blockNumber":39768073,"logs":[{"address":"0xba5Ed099633D3B313e4D5F7bdc1305d3c28ba5Ed","data":"0x","logIndex":0,"topics":["0xb8fda7e00c6b06a2b54e58521bc5894fee35f1090e5a3bb6390bfe2b98b497f7","0x0000000000000000000000002296daedd3090750a80ffb2d0147669984909ed2","0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DataProtectorModule#DataProtector","result":{"address":"0x2296daeDD3090750a80fFB2D0147669984909ED2","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/packages/smart-contract/ignition/modules/DataProtector.ts b/packages/smart-contract/ignition/modules/DataProtector.ts new file mode 100644 index 000000000..42b42868b --- /dev/null +++ b/packages/smart-contract/ignition/modules/DataProtector.ts @@ -0,0 +1,14 @@ +import { buildModule } from '@nomicfoundation/hardhat-ignition/modules'; +import { DATASET_REGISTRY_ADDRESS as defaultDatasetRegistryAddress } from '../../config/config'; +import { env } from '../../config/env'; + +export default buildModule('DataProtectorModule', (m) => { + // Get registry address from environment or default + const datasetRegistryAddress = env.DATASET_REGISTRY_ADDRESS || defaultDatasetRegistryAddress; + + // Deploy DataProtector with the registry address as constructor argument + const dataProtector = m.contract('DataProtector', [datasetRegistryAddress]); + + // Return the deployed contract + return { dataProtector }; +}); diff --git a/packages/smart-contract/package-lock.json b/packages/smart-contract/package-lock.json index 5e0dd57d5..b33594694 100644 --- a/packages/smart-contract/package-lock.json +++ b/packages/smart-contract/package-lock.json @@ -7,104 +7,61 @@ "": { "name": "hardhat-project", "version": "0.1.0", - "dependencies": { - "@openzeppelin/contracts": "^4.8.2" - }, "devDependencies": { - "@nomicfoundation/hardhat-network-helpers": "^1.0.9", - "@nomicfoundation/hardhat-toolbox": "^1.0.2", - "@nomiclabs/hardhat-etherscan": "^3.1.7", - "@nomiclabs/hardhat-solhint": "^3.0.1", - "@typescript-eslint/eslint-plugin": "^6.7.5", - "@typescript-eslint/parser": "^6.7.5", - "chai": "^4.3.10", - "eslint": "^8.51.0", - "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.28.1", - "hardhat": "^2.14.1", - "prettier": "^2.8.8", - "prettier-plugin-solidity": "^1.1.3", - "ts-node": "^10.9.1", - "typescript": "^5.2.2" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^8.30.1", + "@typescript-eslint/parser": "^8.30.1", + "dotenv": "^16.5.0", + "eslint": "^9.24.0", + "eslint-plugin-import": "^2.31.0", + "hardhat": "^2.23.0", + "prettier": "^3.3.3", + "prettier-plugin-organize-imports": "^4.0.0", + "prettier-plugin-solidity": "^1.4.1", + "solhint": "^5.0.5", + "typescript": "^5.8.3", + "zod": "^3.24.3" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@chainsafe/as-sha256": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", - "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", - "dev": true - }, - "node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", - "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", - "dev": true, - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" - } - }, - "node_modules/@chainsafe/ssz": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", - "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", - "dev": true, - "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.4.2", - "case": "^1.6.3" - } - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -113,39 +70,96 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", + "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", - "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", + "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -153,30 +167,57 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", + "version": "9.24.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", + "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, - "peer": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@ethereumjs/rlp": { @@ -184,6 +225,7 @@ "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", "dev": true, + "license": "MPL-2.0", "peer": true, "bin": { "rlp": "bin/rlp" @@ -192,22 +234,12 @@ "node": ">=14" } }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dev": true, - "peer": true, - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, "node_modules/@ethereumjs/util": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", "dev": true, + "license": "MPL-2.0", "peer": true, "dependencies": { "@ethereumjs/rlp": "^4.0.1", @@ -218,23 +250,52 @@ "node": ">=14" } }, + "node_modules/@ethereumjs/util/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", - "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@noble/curves": "1.1.0", - "@noble/hashes": "1.3.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", + "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", "dev": true, "funding": [ { @@ -246,22 +307,23 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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/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" } }, "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", + "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", "dev": true, "funding": [ { @@ -273,20 +335,21 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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/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" } }, "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", + "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", "dev": true, "funding": [ { @@ -298,18 +361,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@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" } }, "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", + "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", "dev": true, "funding": [ { @@ -321,18 +385,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "@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" } }, "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", + "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", "dev": true, "funding": [ { @@ -344,14 +409,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "@ethersproject/bytes": "^5.8.0" } }, "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz", + "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", "dev": true, "funding": [ { @@ -363,15 +429,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/properties": "^5.8.0" } }, "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", + "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", "dev": true, "funding": [ { @@ -383,16 +451,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", "bn.js": "^5.2.1" } }, "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", + "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", "dev": true, "funding": [ { @@ -404,14 +473,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", + "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", "dev": true, "funding": [ { @@ -423,14 +493,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bignumber": "^5.7.0" + "@ethersproject/bignumber": "^5.8.0" } }, "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz", + "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", "dev": true, "funding": [ { @@ -442,23 +513,25 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" + "@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" } }, "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", + "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", "dev": true, "funding": [ { @@ -470,22 +543,23 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "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.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@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" } }, "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz", + "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", "dev": true, "funding": [ { @@ -497,25 +571,27 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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/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" } }, "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz", + "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", "dev": true, "funding": [ { @@ -527,26 +603,36 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.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", + "license": "MIT", + "peer": true, + "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" } }, + "node_modules/@ethersproject/json-wallets/node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", + "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", "dev": true, "funding": [ { @@ -558,15 +644,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", "js-sha3": "0.8.0" } }, "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", + "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", "dev": true, "funding": [ { @@ -577,12 +664,13 @@ "type": "individual", "url": "https://www.buymeacoffee.com/ricmoo" } - ] + ], + "license": "MIT" }, "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", + "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", "dev": true, "funding": [ { @@ -594,14 +682,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz", + "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", "dev": true, "funding": [ { @@ -613,15 +702,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/sha2": "^5.8.0" } }, "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", + "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", "dev": true, "funding": [ { @@ -633,14 +724,15 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz", + "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", "dev": true, "funding": [ { @@ -652,33 +744,58 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "dependencies": { - "@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/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", + "license": "MIT", + "peer": true, + "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": "7.4.6" + "ws": "8.18.0" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "license": "MIT", + "peer": true, + "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 + } } }, "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz", + "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", "dev": true, "funding": [ { @@ -690,15 +807,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", + "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", "dev": true, "funding": [ { @@ -710,15 +829,16 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz", + "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", "dev": true, "funding": [ { @@ -730,16 +850,18 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", + "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", "dev": true, "funding": [ { @@ -751,19 +873,20 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", "bn.js": "^5.2.1", - "elliptic": "6.5.4", + "elliptic": "6.6.1", "hash.js": "1.1.7" } }, "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz", + "integrity": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==", "dev": true, "funding": [ { @@ -775,19 +898,21 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@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" } }, "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", + "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", "dev": true, "funding": [ { @@ -799,16 +924,17 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", + "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", "dev": true, "funding": [ { @@ -820,22 +946,23 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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/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" } }, "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz", + "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", "dev": true, "funding": [ { @@ -847,16 +974,18 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", + "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", "dev": true, "funding": [ { @@ -868,28 +997,30 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^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/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" + "license": "MIT", + "peer": true, + "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" } }, "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", + "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", "dev": true, "funding": [ { @@ -901,18 +1032,19 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@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" } }, "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz", + "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", "dev": true, "funding": [ { @@ -924,12 +1056,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" + "@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" } }, "node_modules/@fastify/busboy": { @@ -941,18 +1075,42 @@ "node": ">=14" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/module-importer": { @@ -960,6 +1118,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -968,17 +1127,26 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, + "peer": true, "engines": { "node": ">=6.0.0" } @@ -987,82 +1155,40 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "dev": true, + "peer": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "dev": true, - "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" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, "node_modules/@noble/curves": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", - "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@noble/hashes": "1.3.1" + "@noble/hashes": "1.3.2" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 16" @@ -1118,228 +1244,302 @@ "node": ">= 8" } }, - "node_modules/@nomicfoundation/ethereumjs-block": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz", - "integrity": "sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==", + "node_modules/@nomicfoundation/edr": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.10.0.tgz", + "integrity": "sha512-ed9qHSNssgh+0hYUx4ilDoMxxgf/sNT8SjnzgmA5A/LSXHaq2ax68bkdQ8otLYTlxHCO9BS5Nhb8bfajV4FZeA==", "dev": true, + "license": "MIT", "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.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" }, "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-blockchain": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz", - "integrity": "sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==", + "node_modules/@nomicfoundation/edr-darwin-arm64": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.10.0.tgz", + "integrity": "sha512-n0N+CVM4LKN9QeGZ5irr94Q4vwSs4u7W6jfuhNLmx1cpUxwE9RpeW+ym93JXDv62iVsbekeI5VsUEBHy0hymtA==", "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-ethash": "3.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "abstract-level": "^1.0.3", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "level": "^8.0.0", - "lru-cache": "^5.1.1", - "memory-level": "^1.0.0" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-common": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz", - "integrity": "sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==", + "node_modules/@nomicfoundation/edr-darwin-x64": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.10.0.tgz", + "integrity": "sha512-nmImWM/3qWopYzOmicMzK/MF3rFKpm2Biuc8GpQYTLjdXhmItpP9JwEPyjbAWv/1HI09C2pRzgNzKfTxoIgJ6w==", "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-util": "9.0.2", - "crc-32": "^1.2.0" + "license": "MIT", + "engines": { + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-ethash": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz", - "integrity": "sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==", + "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.10.0.tgz", + "integrity": "sha512-B/N1IyrCU7J6H4QckkQ1cSWAq1jSrJcXpO8GzRaQD1bgOOvg8wrUOrCD+Mfw7MLa6+X9vdZoXtPZOaaOQ9LmhA==", "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "abstract-level": "^1.0.3", - "bigint-crypto-utils": "^3.0.23", - "ethereum-cryptography": "0.1.3" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-evm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz", - "integrity": "sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==", + "node_modules/@nomicfoundation/edr-linux-arm64-musl": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.10.0.tgz", + "integrity": "sha512-NA9DFLB0LzcKy9mTCUzgnRDbmmSfW0CdO22ySwOy+MKt4Cr9eJi+XR5ZH933Rxpi6BWNkSPeS2ECETE25sJT3w==", "dev": true, - "dependencies": { - "@ethersproject/providers": "^5.7.1", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-rlp": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz", - "integrity": "sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==", + "node_modules/@nomicfoundation/edr-linux-x64-gnu": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.10.0.tgz", + "integrity": "sha512-bDrbRTA9qZ9wSw5mqa8VpLFbf6ue2Z4qmRd08404eKm8RyBEFxjdHflFzCx46gz/Td0e+GLXy6KTVDj5D29r8w==", "dev": true, - "bin": { - "rlp": "bin/rlp" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-statemanager": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz", - "integrity": "sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==", + "node_modules/@nomicfoundation/edr-linux-x64-musl": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.10.0.tgz", + "integrity": "sha512-wx7yOlC/hx4N1xuIeh5cAebpzCTx8ZH8/z0IyYMf2t4v52KHERz4IyzBz5OLfd+0IqTRg8ZU5EnFBacIoPeP/g==", "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "ethers": "^5.7.1", - "js-sdsl": "^4.1.4" + "license": "MIT", + "engines": { + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-trie": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz", - "integrity": "sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==", + "node_modules/@nomicfoundation/edr-win32-x64-msvc": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.10.0.tgz", + "integrity": "sha512-DpBdVMimb+BUEs0E+nLGQ5JFHdGHyxQQNA+nh9V1eKtgarsV21S6br/d1vlQBMLQqkIzwmc6n+/O9Zjk2KfB3g==", "dev": true, - "dependencies": { - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "@types/readable-stream": "^2.3.13", - "ethereum-cryptography": "0.1.3", - "readable-stream": "^3.6.0" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 18" } }, - "node_modules/@nomicfoundation/ethereumjs-tx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz", - "integrity": "sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==", + "node_modules/@nomicfoundation/hardhat-chai-matchers": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-2.0.8.tgz", + "integrity": "sha512-Z5PiCXH4xhNLASROlSUOADfhfpfhYO6D7Hn9xp8PddmHey0jq704cr6kfU8TRrQ4PUZbpfsZadPj+pCfZdjPIg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@chainsafe/ssz": "^0.9.2", - "@ethersproject/providers": "^5.7.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "ethereum-cryptography": "0.1.3" + "@types/chai-as-promised": "^7.1.3", + "chai-as-promised": "^7.1.1", + "deep-eql": "^4.0.1", + "ordinal": "^1.0.3" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "chai": "^4.2.0", + "ethers": "^6.1.0", + "hardhat": "^2.9.4" } }, - "node_modules/@nomicfoundation/ethereumjs-util": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz", - "integrity": "sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==", + "node_modules/@nomicfoundation/hardhat-ethers": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ethers/-/hardhat-ethers-3.0.8.tgz", + "integrity": "sha512-zhOZ4hdRORls31DTOqg+GmEZM0ujly8GGIuRY7t7szEk2zW/arY1qDug/py8AEktT00v5K+b6RvbVog+va51IA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@chainsafe/ssz": "^0.10.0", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "ethereum-cryptography": "0.1.3" + "debug": "^4.1.1", + "lodash.isequal": "^4.5.0" }, - "engines": { - "node": ">=14" + "peerDependencies": { + "ethers": "^6.1.0", + "hardhat": "^2.0.0" } }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", - "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "node_modules/@nomicfoundation/hardhat-ignition": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition/-/hardhat-ignition-0.15.11.tgz", + "integrity": "sha512-OXebmK9FCMwwbb4mIeHBbVFFicAGgyGKJT2zrONrpixrROxrVs6KEi1gzsiN25qtQhCQePt8BTjjYrgy86Dfxg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@chainsafe/as-sha256": "^0.3.1" + "@nomicfoundation/ignition-core": "^0.15.11", + "@nomicfoundation/ignition-ui": "^0.15.11", + "chalk": "^4.0.0", + "debug": "^4.3.2", + "fs-extra": "^10.0.0", + "json5": "^2.2.3", + "prompts": "^2.4.2" + }, + "peerDependencies": { + "@nomicfoundation/hardhat-verify": "^2.0.1", + "hardhat": "^2.18.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition-ethers": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-ignition-ethers/-/hardhat-ignition-ethers-0.15.11.tgz", + "integrity": "sha512-srXzvf7qCDHLrnvQWtpVA9gWpcbp4BcnsOqJt6ISet9OlUnxk4GgRMbdFq4YpM48bHQTX397jS9yk1AtJCjt/g==", + "dev": true, + "license": "MIT", + "peer": true, + "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" } }, - "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", - "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@chainsafe/as-sha256": "^0.3.1", - "@chainsafe/persistent-merkle-tree": "^0.5.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@nomicfoundation/ethereumjs-vm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz", - "integrity": "sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==", + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-blockchain": "7.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-evm": "2.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-statemanager": "2.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "debug": "^4.3.3", - "ethereum-cryptography": "0.1.3", - "mcl-wasm": "^0.7.1", - "rustbn.js": "~0.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@nomicfoundation/hardhat-chai-matchers": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-chai-matchers/-/hardhat-chai-matchers-1.0.6.tgz", - "integrity": "sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==", + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@types/chai-as-promised": "^7.1.3", - "chai-as-promised": "^7.1.1", - "deep-eql": "^4.0.1", - "ordinal": "^1.0.3" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@nomiclabs/hardhat-ethers": "^2.0.0", - "chai": "^4.2.0", - "ethers": "^5.0.0", - "hardhat": "^2.9.4" + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nomicfoundation/hardhat-ignition/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" } }, "node_modules/@nomicfoundation/hardhat-network-helpers": { @@ -1347,6 +1547,7 @@ "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.9.tgz", "integrity": "sha512-OXWCv0cHpwLUO2u7bFxBna6dQtCC2Gg/aN/KtJLO7gmuuA28vgmVKYFRCDUqrbjujzgfwQ2aKyZ9Y3vSmDqS7Q==", "dev": true, + "peer": true, "dependencies": { "ethereumjs-util": "^7.1.4" }, @@ -1355,32 +1556,160 @@ } }, "node_modules/@nomicfoundation/hardhat-toolbox": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-1.0.2.tgz", - "integrity": "sha512-8CEgWSKUK2aMit+76Sez8n7UB0Ze1lwT+LcWxj4EFP30lQWOwOws048t6MTPfThH0BlSWjC6hJRr0LncIkc1Sw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-toolbox/-/hardhat-toolbox-5.0.0.tgz", + "integrity": "sha512-FnUtUC5PsakCbwiVNsqlXVIWG5JIb5CEZoSXbJUsEBun22Bivx2jhF1/q9iQbzuaGpJKFQyOhemPB2+XlEE6pQ==", "dev": true, + "license": "MIT", "peerDependencies": { - "@ethersproject/abi": "^5.4.7", - "@ethersproject/providers": "^5.4.7", - "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", + "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", + "@nomicfoundation/hardhat-ethers": "^3.0.0", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.0", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomiclabs/hardhat-ethers": "^2.0.0", - "@nomiclabs/hardhat-etherscan": "^3.0.0", - "@typechain/ethers-v5": "^10.1.0", - "@typechain/hardhat": "^6.1.2", + "@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": ">=12.0.0", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", "chai": "^4.2.0", - "ethers": "^5.4.7", - "hardhat": "^2.9.9", + "ethers": "^6.4.0", + "hardhat": "^2.11.0", "hardhat-gas-reporter": "^1.0.8", - "solidity-coverage": "^0.7.21", + "solidity-coverage": "^0.8.1", "ts-node": ">=8.0.0", - "typechain": "^8.1.0", + "typechain": "^8.3.0", "typescript": ">=4.5.0" } }, + "node_modules/@nomicfoundation/hardhat-verify": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-verify/-/hardhat-verify-2.0.13.tgz", + "integrity": "sha512-i57GX1sC0kYGyRVnbQrjjyBTpWTKgrvKC+jH8CMKV6gHp959Upb8lKaZ58WRHIU0espkulTxLnacYeUDirwJ2g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@ethersproject/address": "^5.0.2", + "cbor": "^8.1.0", + "debug": "^4.1.1", + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.1.0", + "semver": "^6.3.0", + "table": "^6.8.0", + "undici": "^5.14.0" + }, + "peerDependencies": { + "hardhat": "^2.0.4" + } + }, + "node_modules/@nomicfoundation/ignition-core": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-core/-/ignition-core-0.15.11.tgz", + "integrity": "sha512-PeYKRlrQ0koT72yRnlyyG66cXMFiv5X/cIB8hBFPl3ekeg5tPXcHAgs/VZhOsgwEox4ejphTtItLESb1IDBw0w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/address": "5.6.1", + "@nomicfoundation/solidity-analyzer": "^0.1.1", + "cbor": "^9.0.0", + "debug": "^4.3.2", + "ethers": "^6.7.0", + "fs-extra": "^10.0.0", + "immer": "10.0.2", + "lodash": "4.17.21", + "ndjson": "2.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/cbor": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-9.0.2.tgz", + "integrity": "sha512-JPypkxsB10s9QOWwa6zwPzqE1Md3vqpPc+cai4sAecuCsRyAtAl/pMyhPlMbT/xtPnm2dznJZYRLui57qiRhaQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "nofilter": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@nomicfoundation/ignition-core/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nomicfoundation/ignition-ui": { + "version": "0.15.11", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ignition-ui/-/ignition-ui-0.15.11.tgz", + "integrity": "sha512-VPOVl5xqCKhYCyPOQlposx+stjCwqXQ+BCs5lnw/f2YUfgII+G5Ye0JfHiJOfCJGmqyS03WertBslcj9zQg50A==", + "dev": true, + "peer": true + }, "node_modules/@nomicfoundation/solidity-analyzer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", @@ -1562,112 +1891,160 @@ "node": ">= 10" } }, - "node_modules/@nomiclabs/hardhat-ethers": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz", - "integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==", + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, - "peer": true, - "peerDependencies": { - "ethers": "^5.0.0", - "hardhat": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", - "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, + "license": "MIT", "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@ethersproject/address": "^5.0.2", - "cbor": "^8.1.0", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "fs-extra": "^7.0.1", - "lodash": "^4.17.11", - "semver": "^6.3.0", - "table": "^6.8.0", - "undici": "^5.14.0" + "graceful-fs": "4.2.10" }, - "peerDependencies": { - "hardhat": "^2.0.4" + "engines": { + "node": ">=12.22.0" } }, - "node_modules/@nomiclabs/hardhat-solhint": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-solhint/-/hardhat-solhint-3.0.1.tgz", - "integrity": "sha512-GqDoStxL1aA9hZul9HRdk+3eEZ/XLBwvIlz3/EJUusUsoadNYEnio9aYOsBeNeZWo+B/Fd3EgMXgbf9wWQLyRA==", + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", "dev": true, + "license": "MIT", "dependencies": { - "solhint": "^3.4.0" + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" }, - "peerDependencies": { - "hardhat": "^2.0.0" + "engines": { + "node": ">=12" } }, - "node_modules/@openzeppelin/contracts": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.3.tgz", - "integrity": "sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==" + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" }, "node_modules/@scure/base": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.3.tgz", - "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", "dev": true, + "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.1.tgz", - "integrity": "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@noble/curves": "~1.1.0", - "@noble/hashes": "~1.3.1", - "@scure/base": "~1.1.0" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@sentry/core": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", - "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, - "dependencies": { - "@sentry/hub": "5.30.0", - "@sentry/minimal": "5.30.0", - "@sentry/types": "5.30.0", - "@sentry/utils": "5.30.0", - "tslib": "^1.9.3" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=6" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@sentry/hub": { - "version": "5.30.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", "dev": true, "dependencies": { @@ -1752,13 +2129,16 @@ } }, "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@solidity-parser/parser": { @@ -1772,6039 +2152,3319 @@ } }, "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "defer-to-connect": "^1.0.1" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=14.16" } }, - "node_modules/@truffle/error": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.1.tgz", - "integrity": "sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA==", + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true, + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true, "peer": true }, - "node_modules/@truffle/interface-adapter": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.37.tgz", - "integrity": "sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==", + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "bn.js": "^5.1.3", - "ethers": "^4.0.32", - "web3": "1.10.0" + "lodash": "^4.17.15", + "ts-essentials": "^7.0.1" }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" + "peerDependencies": { + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/common": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz", - "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==", + "node_modules/@typechain/hardhat": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-9.1.0.tgz", + "integrity": "sha512-mtaUlzLlkqTlfPwB3FORdejqBskSnh+Jl8AIJGjXNAQfRQ4ofHADPl1+oU7Z3pAJzmZbUXII8MhOLQltcHgKnA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.1" + "fs-extra": "^9.1.0" + }, + "peerDependencies": { + "@typechain/ethers-v6": "^0.5.1", + "ethers": "^6.1.0", + "hardhat": "^2.9.9", + "typechain": "^8.3.2" } }, - "node_modules/@truffle/interface-adapter/node_modules/@ethereumjs/tx": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz", - "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==", + "node_modules/@typechain/hardhat/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@ethereumjs/common": "^2.5.0", - "ethereumjs-util": "^7.1.2" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@truffle/interface-adapter/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "node_modules/@typechain/hardhat/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=10" + "dependencies": { + "universalify": "^2.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/@truffle/interface-adapter/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "node_modules/@typechain/hardhat/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "defer-to-connect": "^2.0.1" - }, "engines": { - "node": ">=14.16" + "node": ">= 10.0.0" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "dev": true, + "dependencies": { + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/@truffle/interface-adapter/node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "node_modules/@types/chai-as-promised": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz", + "integrity": "sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" + "@types/chai": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", "dev": true, "peer": true, "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", "dev": true, "peer": true, "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=10" + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, - "peer": true + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/ethers": { - "version": "4.0.49", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz", - "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==", + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, - "peer": true, - "dependencies": { - "aes-js": "3.0.0", - "bn.js": "^4.11.9", - "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" - } + "license": "MIT" }, - "node_modules/@truffle/interface-adapter/node_modules/ethers/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/@truffle/interface-adapter/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", "dev": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "peer": true }, - "node_modules/@truffle/interface-adapter/node_modules/got": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz", - "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==", + "node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@sindresorhus/is": "^4.6.0", - "@szmarczak/http-timer": "^5.0.1", - "@types/cacheable-request": "^6.0.2", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^6.0.4", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "form-data-encoder": "1.7.1", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "undici-types": "~6.19.2" } }, - "node_modules/@truffle/interface-adapter/node_modules/hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "dev": true, "peer": true, "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true, - "peer": true + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/@truffle/interface-adapter/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "node_modules/@types/qs": { + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", + "dev": true, + "peer": true + }, + "node_modules/@types/secp256k1": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", + "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", "dev": true, "peer": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@types/node": "*" } }, - "node_modules/@truffle/interface-adapter/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz", + "integrity": "sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/type-utils": "8.30.1", + "@typescript-eslint/utils": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "node_modules/@typescript-eslint/parser": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz", + "integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/typescript-estree": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", + "debug": "^4.3.4" + }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz", + "integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1" + }, "engines": { - "node": ">=12.20" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@truffle/interface-adapter/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz", + "integrity": "sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "lowercase-keys": "^2.0.0" + "@typescript-eslint/typescript-estree": "8.30.1", + "@typescript-eslint/utils": "8.30.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/responselike/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/@typescript-eslint/types": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz", + "integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@truffle/interface-adapter/node_modules/scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true, - "peer": true - }, - "node_modules/@truffle/interface-adapter/node_modules/setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog==", - "dev": true, - "peer": true - }, - "node_modules/@truffle/interface-adapter/node_modules/uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "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.", - "dev": true, - "peer": true - }, - "node_modules/@truffle/interface-adapter/node_modules/web3": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.0.tgz", - "integrity": "sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz", + "integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==", "dev": true, - "hasInstallScript": true, - "peer": true, + "license": "MIT", "dependencies": { - "web3-bzz": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-shh": "1.10.0", - "web3-utils": "1.10.0" + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/visitor-keys": "8.30.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-bzz": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.0.tgz", - "integrity": "sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "hasInstallScript": true, - "peer": true, + "license": "MIT", "dependencies": { - "@types/node": "^12.12.6", - "got": "12.1.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" + "balanced-match": "^1.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.0.tgz", - "integrity": "sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-requestmanager": "1.10.0", - "web3-utils": "1.10.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-helpers": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz", - "integrity": "sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "peer": true, - "dependencies": { - "web3-eth-iban": "1.10.0", - "web3-utils": "1.10.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-method": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.0.tgz", - "integrity": "sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz", + "integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-utils": "1.10.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.30.1", + "@typescript-eslint/types": "8.30.1", + "@typescript-eslint/typescript-estree": "8.30.1" }, "engines": { - "node": ">=8.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-promievent": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz", - "integrity": "sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.30.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz", + "integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4" + "@typescript-eslint/types": "8.30.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz", - "integrity": "sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==", + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", "dev": true, - "peer": true, - "dependencies": { - "util": "^0.12.5", - "web3-core-helpers": "1.10.0", - "web3-providers-http": "1.10.0", - "web3-providers-ipc": "1.10.0", - "web3-providers-ws": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "ISC", + "peer": true }, - "node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz", - "integrity": "sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==", + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, - "peer": true, - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0" + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.0.tgz", - "integrity": "sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "peer": true, - "dependencies": { - "web3-core": "1.10.0", - "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", - "web3-eth-contract": "1.10.0", - "web3-eth-ens": "1.10.0", - "web3-eth-iban": "1.10.0", - "web3-eth-personal": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-abi": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz", - "integrity": "sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==", + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz", - "integrity": "sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==", + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true, - "peer": true, - "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.0", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.3.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz", - "integrity": "sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "peer": true, "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.0", - "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" + "debug": "4" }, "engines": { - "node": ">=8.0.0" + "node": ">= 6.0.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz", - "integrity": "sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "peer": true, "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-promievent": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0", - "web3-utils": "1.10.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-iban": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz", - "integrity": "sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz", - "integrity": "sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==", + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", "dev": true, + "license": "BSD-3-Clause OR MIT", + "optional": true, "peer": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.0", - "web3-core-helpers": "1.10.0", - "web3-core-method": "1.10.0", - "web3-net": "1.10.0", - "web3-utils": "1.10.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.4.2" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-net": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.0.tgz", - "integrity": "sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==", + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-utils": "1.10.0" - }, - "engines": { - "node": ">=8.0.0" + "string-width": "^4.1.0" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.0.tgz", - "integrity": "sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==", + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "peer": true, - "dependencies": { - "abortcontroller-polyfill": "^1.7.3", - "cross-fetch": "^3.1.4", - "es6-promise": "^4.2.8", - "web3-core-helpers": "1.10.0" - }, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz", - "integrity": "sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==", + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.10.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz", - "integrity": "sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "peer": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.10.0", - "websocket": "^1.0.32" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-shh": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.0.tgz", - "integrity": "sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "hasInstallScript": true, - "peer": true, - "dependencies": { - "web3-core": "1.10.0", - "web3-core-method": "1.10.0", - "web3-core-subscriptions": "1.10.0", - "web3-net": "1.10.0" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/@truffle/interface-adapter/node_modules/web3-utils": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.0.tgz", - "integrity": "sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/@truffle/provider": { - "version": "0.2.64", - "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.64.tgz", - "integrity": "sha512-ZwPsofw4EsCq/2h0t73SPnnFezu4YQWBmK4FxFaOUX0F+o8NsZuHKyfJzuZwyZbiktYmefM3yD9rM0Dj4BhNbw==", + "node_modules/antlr4": { + "version": "4.13.2", + "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.2.tgz", + "integrity": "sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==", "dev": true, - "peer": true, - "dependencies": { - "@truffle/error": "^0.1.1", - "@truffle/interface-adapter": "^0.5.25", - "debug": "^4.3.1", - "web3": "1.7.4" + "license": "BSD-3-Clause", + "engines": { + "node": ">=16" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.4", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", + "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "dev": true, + "peer": true }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "peer": true }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@typechain/ethers-v5": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz", - "integrity": "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==", + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "lodash": "^4.17.15", - "ts-essentials": "^7.0.1" - }, - "peerDependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "ethers": "^5.1.3", - "typechain": "^8.1.1", - "typescript": ">=4.3.0" + "engines": { + "node": ">=6" } }, - "node_modules/@typechain/hardhat": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@typechain/hardhat/-/hardhat-6.1.6.tgz", - "integrity": "sha512-BiVnegSs+ZHVymyidtK472syodx1sXYlYJJixZfRstHVGYTi8V1O7QG4nsjyb0PC/LORcq7sfBUcHto1y6UgJA==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "fs-extra": "^9.1.0" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, - "peerDependencies": { - "@ethersproject/abi": "^5.4.7", - "@ethersproject/providers": "^5.4.7", - "@typechain/ethers-v5": "^10.2.1", - "ethers": "^5.4.7", - "hardhat": "^2.9.9", - "typechain": "^8.1.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typechain/hardhat/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typechain/hardhat/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">=8" } }, - "node_modules/@typechain/hardhat/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, "peer": true, "engines": { - "node": ">= 10.0.0" + "node": ">=0.10.0" } }, - "node_modules/@types/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-/k+vesl92vMvMygmQrFe9Aimxi6oQXFUX9mA5HanTrKUSAMoLauSi6PNFOdRw0oeqilaW600GNx2vSaT2f8aIQ==", - "dev": true, - "peer": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.6.tgz", - "integrity": "sha512-cQLhk8fFarRVZAXUQV1xEnZgMoPxqKojBvRkqPCKPQCzEhpbbSKl1Uu75kDng7k5Ln6LQLUmNBjLlFthCgm1NA==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@types/chai": "*" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "peer": true + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@types/node": "*" + "engines": { + "node": "*" } }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/ast-parents": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", + "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", "dev": true, - "peer": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" + "license": "MIT" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", - "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==", + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/@types/json-schema": { - "version": "7.0.13", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", - "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "node_modules/@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "peer": true - }, - "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true, "peer": true }, - "node_modules/@types/node": { - "version": "20.8.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.4.tgz", - "integrity": "sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==", + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", "dev": true, - "dependencies": { - "undici-types": "~5.25.1" + "license": "ISC", + "peer": true, + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/node": "*" + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true, - "peer": true - }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true, - "peer": true - }, - "node_modules/@types/readable-stream": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", - "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "node_modules/axios": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", + "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", "dev": true, + "peer": true, "dependencies": { - "@types/node": "*", - "safe-buffer": "~5.1.1" + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "node_modules/@types/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/@types/responselike": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.1.tgz", - "integrity": "sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==", + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, "peer": true, "dependencies": { - "@types/node": "*" + "safe-buffer": "^5.0.1" } }, - "node_modules/@types/secp256k1": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.4.tgz", - "integrity": "sha512-oN0PFsYxDZnX/qSJ5S5OwaEDTYfekhvaM5vqui2bu1AA39pKofmgL104Q29KiOXizXS2yLjSzc5YdTyMKdcy4A==", + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", "dev": true, - "dependencies": { - "@types/node": "*" + "peer": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@types/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true, + "peer": true + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", - "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/type-utils": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "node": ">=8" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", - "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", - "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5" + "color-name": "~1.1.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=7.0.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", - "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.5", - "@typescript-eslint/utils": "6.7.5", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, + "license": "MIT" + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/types": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", - "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", - "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/visitor-keys": "6.7.5", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, - "node_modules/@typescript-eslint/utils": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", - "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, + "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.5", - "@typescript-eslint/types": "6.7.5", - "@typescript-eslint/typescript-estree": "6.7.5", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "dev": true, + "peer": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "base-x": "^3.0.2" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "dev": true, + "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", - "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, + "peer": true + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "peer": true, "dependencies": { - "@typescript-eslint/types": "6.7.5", - "eslint-visitor-keys": "^3.4.1" + "node-gyp-build": "^4.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=6.14.2" } }, - "node_modules/abbrev": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "peer": true + "engines": { + "node": ">= 0.8" + } }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=14.16" + } }, - "node_modules/abstract-level": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", "dev": true, + "license": "MIT", "dependencies": { - "buffer": "^6.0.3", - "catering": "^2.1.0", - "is-buffer": "^2.0.5", - "level-supports": "^4.0.0", - "level-transcoder": "^1.0.1", - "module-error": "^1.0.1", - "queue-microtask": "^1.2.3" + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.16" } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">= 0.4" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "peer": true, "engines": { - "node": ">= 10.0.0" + "node": ">=6" } }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { - "node": ">=0.3.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", - "dev": true + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "peer": true }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/cbor": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", + "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "debug": "4" + "nofilter": "^3.1.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">=12.19" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/chai-as-promised": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.2.tgz", + "integrity": "sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==", "dev": true, + "license": "WTFPL", + "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "check-error": "^1.0.2" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "chai": ">= 2.1.2 < 6" } }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "optional": true, "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">=0.4.2" + "node": ">=4" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, + "peer": true, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "peer": true, "dependencies": { - "type-fest": "^0.21.3" + "get-func-name": "^2.0.2" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "engines": { - "node": ">=10" + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { - "node": ">=8" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/antlr4": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.1.tgz", - "integrity": "sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==", - "dev": true, - "engines": { - "node": ">=16" + "node": ">= 6" } }, - "node_modules/antlr4ts": { - "version": "0.5.0-alpha.4", - "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz", - "integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==", + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, + "peer": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "peer": true, "engines": { "node": ">=6" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "license": "MIT", + "engines": { + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "peer": true - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" + "object-assign": "^4.1.0", + "string-width": "^2.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "colors": "^1.1.2" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "color-name": "1.1.3" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, + "peer": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "peer": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.1.90" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "peer": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", "dev": true, - "peer": true + "license": "MIT" }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "safer-buffer": "~2.1.0" + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "node_modules/command-line-usage": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", + "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "array-back": "^4.0.2", + "chalk": "^2.4.2", + "table-layout": "^1.0.2", + "typical": "^5.2.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "peer": true, "engines": { - "node": ">=0.8" + "node": ">=8" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 12" } }, - "node_modules/ast-parents": { + "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/ast-parents/-/ast-parents-0.0.1.tgz", - "integrity": "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, - "engines": { - "node": ">=8" + "engines": [ + "node >= 0.8" + ], + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==", + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, "peer": true }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "peer": true + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "peer": true }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "peer": true, - "engines": { - "node": ">= 4.0.0" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, - "peer": true, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true, "peer": true }, - "node_modules/axios": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", - "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, + "peer": true, "dependencies": { - "safe-buffer": "^5.0.1" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "peer": true, "dependencies": { - "tweetnacl": "^0.14.3" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true, "peer": true }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "dev": true - }, - "node_modules/bigint-crypto-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz", - "integrity": "sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": ">=14.0.0" + "node": ">= 8" } }, - "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, "peer": true, "engines": { "node": "*" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", - "dev": true - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "peer": true - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, - "peer": true, + "license": "MIT", "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" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", "dev": true, "peer": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "peer": true, "dependencies": { - "side-channel": "^1.0.4" + "ms": "2.1.2" }, "engines": { - "node": ">=0.6" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "mimic-response": "^3.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/browser-level": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "peer": true, "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.1", - "module-error": "^1.0.2", - "run-parallel-limit": "^1.1.0" + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "peer": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "engines": { + "node": ">=0.4.0" } }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", "dev": true, "peer": true, "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" } }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "peer": true, "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "base-x": "^3.0.2" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, + "license": "MIT", "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==", - "dev": true, - "peer": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", "dev": true, - "hasInstallScript": true, - "peer": true, "dependencies": { - "node-gyp-build": "^4.3.0" + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" + "node": ">=8.6" } }, - "node_modules/cacheable-lookup": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz", - "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "peer": true, "engines": { - "node": ">=10.6.0" + "node": ">=6" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" + "is-arrayish": "^0.2.1" } }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "peer": true, - "dependencies": { - "pump": "^3.0.0" + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "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.3", + "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.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "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.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "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.18" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cacheable-request/node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/cacheable-request/node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "peer": true, - "dependencies": { - "json-buffer": "3.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/case": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", - "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true, - "peer": true - }, - "node_modules/catering": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "peer": true, "engines": { - "node": ">=6" + "node": ">=0.8.0" } }, - "node_modules/cbor": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", - "integrity": "sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==", + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", "dev": true, + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "nofilter": "^3.1.0" + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": ">=12.19" + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" } }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, + "peer": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "check-error": "^1.0.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, "peer": true, "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "get-func-name": "^2.0.2" + "prelude-ls": "~1.1.2" }, "engines": { - "node": "*" + "node": ">= 0.8.0" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/eslint": { + "version": "9.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", + "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.24.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">= 8.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "peer": true - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" + "debug": "^3.2.7" }, "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/cids/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, + "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ms": "^2.1.1" } }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "ms": "^2.1.1" } }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", - "dev": true, - "peer": true - }, - "node_modules/classic-level": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", - "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, - "hasInstallScript": true, + "license": "BSD-2-Clause", "dependencies": { - "abstract-level": "^1.0.2", - "catering": "^2.1.0", - "module-error": "^1.0.1", - "napi-macros": "^2.2.2", - "node-gyp-build": "^4.3.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=12" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" }, - "optionalDependencies": { - "colors": "^1.1.2" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, - "peer": true, + "license": "BSD-2-Clause", "dependencies": { - "mimic-response": "^1.0.0" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", "dev": true, + "license": "BSD-2-Clause", "peer": true, - "dependencies": { - "delayed-stream": "~1.0.0" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, - "peer": true, + "license": "BSD-3-Clause", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=0.10" } }, - "node_modules/command-line-usage": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", - "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "peer": true, + "license": "BSD-2-Clause", "dependencies": { - "array-back": "^4.0.2", - "chalk": "^2.4.2", - "table-layout": "^1.0.2", - "typical": "^5.2.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=4.0" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "peer": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "peer": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/eth-gas-reporter": { + "version": "0.2.27", + "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", + "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", "dev": true, - "engines": [ - "node >= 0.8" - ], "peer": true, "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "@solidity-parser/parser": "^0.14.0", + "axios": "^1.5.1", + "cli-table3": "^0.5.0", + "colors": "1.4.0", + "ethereum-cryptography": "^1.0.3", + "ethers": "^5.7.2", + "fs-readdir-recursive": "^1.1.0", + "lodash": "^4.17.14", + "markdown-table": "^1.1.3", + "mocha": "^10.2.0", + "req-cwd": "^2.0.0", + "sha1": "^1.1.1", + "sync-request": "^6.0.0" + }, + "peerDependencies": { + "@codechecks/client": "^0.1.0" + }, + "peerDependenciesMeta": { + "@codechecks/client": { + "optional": true + } } }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "peer": true }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "peer": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" } }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { + "node_modules/eth-gas-reporter/node_modules/@scure/bip39": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "peer": true, "dependencies": { - "safe-buffer": "~5.1.0" + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" } }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", "dev": true, "peer": true, "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" } }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "node_modules/eth-gas-reporter/node_modules/ethers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz", + "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", "dev": true, - "peer": true, - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "peer": true, + "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", + "@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" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/ethereum-bloom-filters": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz", + "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "@noble/hashes": "^1.4.0" } }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "node_modules/ethereum-bloom-filters/node_modules/@noble/hashes": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz", + "integrity": "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.6" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true, - "peer": true - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true, - "peer": true - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true, - "peer": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "peer": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "dev": true, "peer": true, "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "peer": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "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.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", "dev": true, "peer": true, "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true, - "peer": true, - "engines": { - "node": "*" + "node": ">=10.0.0" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "node_modules/ethers": { + "version": "6.13.5", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.5.tgz", + "integrity": "sha512-+knKNieu5EKRThQJWwqaJ10a6HE9sSehGeqWN65//wE7j47ZpFhKAnHB/JJFibwwg61I/koxaPsXbXpD/skNOQ==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "peer": true, "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "@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" }, "engines": { - "node": "*" + "node": ">=14.0.0" } }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true, - "peer": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } + "license": "0BSD", + "peer": true }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, "engines": { - "node": ">=0.10" - } - }, - "node_modules/death": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", - "integrity": "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w==", - "dev": true, - "peer": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" + "node": ">=10.0.0" }, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { - "supports-color": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "mimic-response": "^1.0.0" + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" }, "engines": { - "node": ">=4" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } + "license": "MIT", + "peer": true }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "peer": true, - "engines": { - "node": ">=4.0.0" + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true, - "peer": true - }, - "node_modules/define-data-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", - "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dev": true, - "peer": true, - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "peer": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true, - "peer": true - }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true, - "peer": true - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "peer": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true, - "peer": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "dev": true, - "hasInstallScript": true, - "peer": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "peer": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true, - "peer": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "peer": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "peer": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", - "integrity": "sha512-yhi5S+mNTOuRvyW4gWlg5W1byMaQGWWSYHXsuFZ7GBo7tpyOwi2EdzMP/QWxh9hwkD2m+wDVHJsxhRIj+v/b/A==", - "dev": true, - "peer": true, - "dependencies": { - "esprima": "^2.7.1", - "estraverse": "^1.9.1", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=0.12.0" - }, - "optionalDependencies": { - "source-map": "~0.2.0" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "peer": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "peer": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "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.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" - } - }, - "node_modules/eslint-config-airbnb-typescript": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz", - "integrity": "sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==", - "dev": true, - "dependencies": { - "eslint-config-airbnb-base": "^15.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.13.0 || ^6.0.0", - "@typescript-eslint/parser": "^5.0.0 || ^6.0.0", - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.3" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.28.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", - "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.findlastindex": "^1.2.2", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.8.0", - "has": "^1.0.3", - "is-core-module": "^2.13.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.6", - "object.groupby": "^1.0.0", - "object.values": "^1.1.6", - "semver": "^6.3.1", - "tsconfig-paths": "^3.14.2" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", - "dev": true, - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==", - "dev": true, - "peer": true, - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-ens-namehash/node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==", - "dev": true, - "peer": true - }, - "node_modules/eth-gas-reporter": { - "version": "0.2.27", - "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.27.tgz", - "integrity": "sha512-femhvoAM7wL0GcI8ozTdxfuBtBFJ9qsyIAsmKVjlWAHUbdnnXHt+lKzz/kmldM5lA9jLuNHGwuIxorNpLbR1Zw==", - "dev": true, - "peer": true, - "dependencies": { - "@solidity-parser/parser": "^0.14.0", - "axios": "^1.5.1", - "cli-table3": "^0.5.0", - "colors": "1.4.0", - "ethereum-cryptography": "^1.0.3", - "ethers": "^5.7.2", - "fs-readdir-recursive": "^1.1.0", - "lodash": "^4.17.14", - "markdown-table": "^1.1.3", - "mocha": "^10.2.0", - "req-cwd": "^2.0.0", - "sha1": "^1.1.1", - "sync-request": "^6.0.0" - }, - "peerDependencies": { - "@codechecks/client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@codechecks/client": { - "optional": true - } - } - }, - "node_modules/eth-gas-reporter/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true - }, - "node_modules/eth-gas-reporter/node_modules/@scure/bip32": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", - "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "@noble/hashes": "~1.2.0", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/@scure/bip39": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", - "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "peer": true, - "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "dev": true, - "peer": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "peer": true - }, - "node_modules/eth-lib/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, - "node_modules/eth-lib/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "peer": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "dev": true, - "peer": true, - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "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.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dev": true, - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "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.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@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.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", - "dev": true, - "peer": true - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true, - "peer": true - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "peer": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "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" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "peer": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "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" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "peer": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "peer": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "peer": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true, - "peer": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "peer": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "peer": true - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "peer": true, - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "dev": true, - "peer": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", - "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==", - "dev": true, - "peer": true - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fp-ts": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", - "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", - "dev": true - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "peer": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true, - "peer": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/ghost-testrpc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", - "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", - "dev": true, - "peer": true, - "dependencies": { - "chalk": "^2.4.2", - "node-emoji": "^1.10.0" - }, - "bin": { - "testrpc-sc": "index.js" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "peer": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "peer": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "peer": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "peer": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/hardhat": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.18.1.tgz", - "integrity": "sha512-b55rW7Ka+fvJeg6oWuBTXoYQEUurevCCankjGNTwczwD3GnkhV9GEei7KUT+9IKmWx3lC+zyxlFxeDbg0gUoHw==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.1.2", - "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/ethereumjs-block": "5.0.2", - "@nomicfoundation/ethereumjs-blockchain": "7.0.2", - "@nomicfoundation/ethereumjs-common": "4.0.2", - "@nomicfoundation/ethereumjs-evm": "2.0.2", - "@nomicfoundation/ethereumjs-rlp": "5.0.2", - "@nomicfoundation/ethereumjs-statemanager": "2.0.2", - "@nomicfoundation/ethereumjs-trie": "6.0.2", - "@nomicfoundation/ethereumjs-tx": "5.0.2", - "@nomicfoundation/ethereumjs-util": "9.0.2", - "@nomicfoundation/ethereumjs-vm": "7.0.2", - "@nomicfoundation/solidity-analyzer": "^0.1.0", - "@sentry/node": "^5.18.1", - "@types/bn.js": "^5.1.0", - "@types/lru-cache": "^5.1.0", - "adm-zip": "^0.4.16", - "aggregate-error": "^3.0.0", - "ansi-escapes": "^4.3.0", - "chalk": "^2.4.2", - "chokidar": "^3.4.0", - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "enquirer": "^2.3.0", - "env-paths": "^2.2.0", - "ethereum-cryptography": "^1.0.3", - "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.0.0-rc.12", - "io-ts": "1.10.4", - "keccak": "^3.0.2", - "lodash": "^4.17.11", - "mnemonist": "^0.38.0", - "mocha": "^10.0.0", - "p-map": "^4.0.0", - "raw-body": "^2.4.1", - "resolve": "1.17.0", - "semver": "^6.3.0", - "solc": "0.7.3", - "source-map-support": "^0.5.13", - "stacktrace-parser": "^0.1.10", - "tsort": "0.0.1", - "undici": "^5.14.0", - "uuid": "^8.3.2", - "ws": "^7.4.6" - }, - "bin": { - "hardhat": "internal/cli/bootstrap.js" - }, - "peerDependencies": { - "ts-node": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/hardhat-gas-reporter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", - "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", - "dev": true, - "peer": true, - "dependencies": { - "array-uniq": "1.0.3", - "eth-gas-reporter": "^0.2.25", - "sha1": "^1.1.1" - }, - "peerDependencies": { - "hardhat": "^2.0.2" - } - }, - "node_modules/hardhat/node_modules/@noble/hashes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/hardhat/node_modules/@scure/bip32": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", - "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@noble/secp256k1": "~1.7.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/hardhat/node_modules/@scure/bip39": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", - "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.2.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/hardhat/node_modules/ethereum-cryptography": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", - "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", - "dev": true, - "dependencies": { - "@noble/hashes": "1.2.0", - "@noble/secp256k1": "1.7.1", - "@scure/bip32": "1.1.5", - "@scure/bip39": "1.1.1" - } - }, - "node_modules/hardhat/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hardhat/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "dev": true, - "peer": true, - "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true, - "peer": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==", - "dev": true, - "peer": true - }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "^10.0.3" - } - }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", - "dev": true, - "peer": true - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dev": true, - "peer": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dev": true, - "peer": true, - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "peer": true - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/io-ts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", - "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", - "dev": true, - "dependencies": { - "fp-ts": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 0.10" - } + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.6.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "is-glob": "^4.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 6" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "reusify": "^1.0.4" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "license": "MIT", + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "flat": "cli.js" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=16" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, - "peer": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=4" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true, - "peer": true - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -7813,90 +5473,101 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, + "peer": true, "dependencies": { - "is-extglob": "^2.1.1" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">= 6" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 14.17" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6 <7 || >=8" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true, + "peer": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -7905,40 +5576,52 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "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" }, "engines": { "node": ">= 0.4" @@ -7947,33 +5630,36 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "node_modules/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "peer": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7981,1148 +5667,1219 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true, - "peer": true - }, - "node_modules/js-sdsl": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", - "integrity": "sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/ghost-testrpc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz", + "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "argparse": "^2.0.1" + "chalk": "^2.4.2", + "node-emoji": "^1.10.0" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "testrpc-sc": "index.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true, - "peer": true - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true, - "peer": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "peer": true - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "dependencies": { - "minimist": "^1.2.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "dev": true, - "peer": true, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "peer": true, + "license": "ISC", "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=0.6.0" + "node": ">=10.13.0" } }, - "node_modules/keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, - "hasInstallScript": true, + "license": "MIT", + "peer": true, "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "global-prefix": "^3.0.0" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" + "node": ">=6" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/klaw": { + "node_modules/global-prefix/node_modules/which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/level": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "browser-level": "^1.0.1", - "classic-level": "^1.2.0" - }, - "engines": { - "node": ">=12" + "isexe": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/level" + "bin": { + "which": "bin/which" } }, - "node_modules/level-supports": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/level-transcoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { - "buffer": "^6.0.3", - "module-error": "^1.0.1" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^5.0.0" + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, - "peer": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "license": "MIT" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": ">=10" + "node": ">=0.4.7" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "BSD-3-Clause", + "peer": true, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/hardhat": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.23.0.tgz", + "integrity": "sha512-xnORx1LgX46TxylOFme96JmSAIjXuHUVpOlUnaCt8MKMGsgy0NGsfPo5rJI/ncCBPLFLURGfZUQ2Uc6ZYN4kYg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@ethereumjs/util": "^9.1.0", + "@ethersproject/abi": "^5.1.2", + "@nomicfoundation/edr": "^0.10.0", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "boxen": "^5.1.2", + "chokidar": "^4.0.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "find-up": "^5.0.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "json-stream-stringify": "^3.1.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "micro-eth-signer": "^0.14.0", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "picocolors": "^1.1.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.8.26", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tinyglobby": "^0.2.6", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" }, - "engines": { - "node": ">=10" + "bin": { + "hardhat": "internal/cli/bootstrap.js" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/hardhat-gas-reporter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", + "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", "dev": true, + "peer": true, "dependencies": { - "color-name": "~1.1.4" + "array-uniq": "1.0.3", + "eth-gas-reporter": "^0.2.25", + "sha1": "^1.1.1" }, - "engines": { - "node": ">=7.0.0" + "peerDependencies": { + "hardhat": "^2.0.2" } }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/hardhat/node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", "dev": true, + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/hardhat/node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", "dev": true, + "license": "MPL-2.0", "dependencies": { - "has-flag": "^4.0.0" + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "node_modules/hardhat/node_modules/@ethereumjs/util/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "node_modules/hardhat/node_modules/@ethereumjs/util/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", - "dev": true + "node_modules/hardhat/node_modules/@ethereumjs/util/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/hardhat/node_modules/@ethereumjs/util/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^3.0.2" + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "node_modules/hardhat/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, - "peer": true + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/mcl-wasm": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", - "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "node_modules/hardhat/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.9.0" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/hardhat/node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/hardhat/node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/hardhat/node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" } }, - "node_modules/memory-level": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", - "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "node_modules/hardhat/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", "dependencies": { - "abstract-level": "^1.0.0", - "functional-red-black-tree": "^1.0.1", - "module-error": "^1.0.1" + "readdirp": "^4.0.1" }, "engines": { - "node": ">=12" + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "node_modules/hardhat/node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/hardhat/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.10.0" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "node_modules/hardhat/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, - "peer": true + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "peer": true, "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "peer": true + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "dunder-proto": "^1.0.0" }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, - "bin": { - "miller-rabin": "bin/miller-rabin" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "peer": true + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, "peer": true, - "bin": { - "mime": "cli.js" + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "engines": { "node": ">=4" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "peer": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "peer": true, - "engines": { - "node": ">=4" + "bin": { + "he": "bin/he" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", "dev": true, - "peer": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "license": "MIT", + "peer": true }, - "node_modules/minimalistic-crypto-utils": { + "node_modules/hmac-drbg": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", "dev": true, + "peer": true, "dependencies": { - "brace-expansion": "^1.1.7" + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" }, "engines": { - "node": "*" + "node": ">=6.0.0" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "BSD-2-Clause" }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "peer": true, "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "node_modules/http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", "dev": true, "peer": true, "dependencies": { - "minipass": "^2.9.0" + "@types/node": "^10.0.3" } }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/http-response-object/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } + "peer": true }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "mkdirp": "*" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, "engines": { - "node": ">=4" + "node": ">=10.19.0" } }, - "node_modules/mnemonist": { - "version": "0.38.5", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", - "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { - "obliterator": "^2.0.0" + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": ">=0.10.0" } }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 4" } }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/immer": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.2.tgz", + "integrity": "sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/has-flag": { + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==", - "dev": true, - "peer": true - }, - "node_modules/module-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=10" + "node": ">= 0.10" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", "dev": true, - "peer": true, "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "fp-ts": "^1.0.0" } }, - "node_modules/multibase/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, + "license": "MIT", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "varint": "^5.0.0" + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/multihashes/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/napi-macros": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true - }, - "node_modules/next-tick": { + "node_modules/is-date-object": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, - "peer": true - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", - "dev": true + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "peer": true, - "dependencies": { - "lodash": "^4.17.21" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "call-bound": "^1.0.3" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", - "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", - "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "peer": true, "engines": { - "node": ">=12.19" + "node": ">=4" } }, - "node_modules/nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "abbrev": "1" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", "dev": true, "peer": true, "engines": { - "node": ">=8" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, - "peer": true, - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=0.12.0" } }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, - "peer": true + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "peer": true, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9131,29 +6888,32 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -9162,28 +6922,24 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9191,1377 +6947,1486 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", - "dev": true - }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "http-https": "^1.0.0" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, - "dependencies": { - "wrappy": "1" - } + "license": "MIT" }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">= 0.8.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/ordinal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", - "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, - "peer": true + "license": "MIT" }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "node_modules/json-stream-stringify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", + "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=7.10.1" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "ISC", + "peer": true }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" + "minimist": "^1.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/p-map": { + "node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "node_modules/jsonschema": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz", + "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", "dev": true, + "hasInstallScript": true, "dependencies": { - "callsites": "^3.0.0" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">=6" + "node": ">=10.0.0" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "peer": true, "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "json-buffer": "3.0.1" } }, - "node_modules/parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "peer": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT", + "peer": true }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.12" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true, - "peer": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8.6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=4" + "dependencies": { + "get-func-name": "^2.0.1" } }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prettier-plugin-solidity": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz", - "integrity": "sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==", + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, - "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "semver": "^7.3.8", - "solidity-comments-extractor": "^0.0.7" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "prettier": ">=2.3.0 || >=3.0.0-alpha.0" - } + "peer": true }, - "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } + "peer": true }, - "node_modules/prettier-plugin-solidity/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.4" } }, - "node_modules/prettier-plugin-solidity/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, + "peer": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/prettier-plugin-solidity/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, - "peer": true, "engines": { - "node": ">= 0.6.0" + "node": ">= 0.10.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "peer": true + "engines": { + "node": ">= 8" + } }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "node_modules/micro-eth-signer": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/micro-eth-signer/-/micro-eth-signer-0.14.0.tgz", + "integrity": "sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "asap": "~2.0.6" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "micro-packed": "~0.7.2" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/micro-eth-signer/node_modules/@noble/curves": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.2.tgz", + "integrity": "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "@noble/hashes": "1.7.2" }, "engines": { - "node": ">= 0.10" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "node_modules/micro-eth-signer/node_modules/@noble/hashes": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz", + "integrity": "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "node_modules/micro-packed": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/micro-packed/-/micro-packed-0.7.2.tgz", + "integrity": "sha512-HJ/u8+tMzgrJVAl6P/4l8KGjJSA3SCZaRb1m4wpbovNScCSmVOGUYbkkcoPPcknCHWPpRAdjy+yqXqyQWf+k8g==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "node_modules/micro-packed/node_modules/@scure/base": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz", + "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==", "dev": true, - "peer": true + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, + "peer": true, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "peer": true, "dependencies": { - "side-channel": "^1.0.4" + "mime-db": "1.52.0" }, "engines": { - "node": ">=0.6" + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "peer": true, "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=10" + "dependencies": { + "minimist": "^1.2.6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", "dev": true, "dependencies": { - "safe-buffer": "^5.1.0" + "obliterator": "^2.0.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, - "peer": true, "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "peer": true, "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, - "peer": true, - "dependencies": { - "resolve": "^1.1.6" + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">= 0.10" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { - "minimatch": "^3.0.5" + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" } }, - "node_modules/reduce-flatten": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", "peer": true, - "engines": { - "node": ">=6" + "dependencies": { + "lodash": "^4.17.21" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "node_modules/node-gyp-build": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/req-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", - "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", + "node_modules/nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "req-from": "^2.0.0" - }, "engines": { - "node": ">=4" + "node": ">=12.19" } }, - "node_modules/req-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", - "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "resolve-from": "^3.0.0" + "abbrev": "1" }, - "engines": { - "node": ">=4" + "bin": { + "nopt": "bin/nopt.js" } }, - "node_modules/req-from/node_modules/resolve-from": { + "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "peer": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", "dev": true, - "peer": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" }, "engines": { - "node": ">= 0.12" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.6" - } + "license": "MIT", + "peer": true }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "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.", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "peer": true, - "bin": { - "uuid": "bin/uuid" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true, - "peer": true - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "wrappy": "1" } }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, - "bin": { - "rlp": "bin/rlp" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/ordinal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ordinal/-/ordinal-1.0.3.tgz", + "integrity": "sha512-cMddMgb2QElm8G7vdaa02jhUNbTSrhsgAGUz1OokD83uJTwSUn+nKoNoKVVaRa08yF6sgfO7Maou1+bgLd9rdQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } + "license": "MIT", + "peer": true }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/rustbn.js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", - "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", - "dev": true - }, - "node_modules/safe-array-concat": { + "node_modules/own-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" }, "engines": { - "node": ">=0.4" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "license": "MIT", + "engines": { + "node": ">=12.20" + } }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sc-istanbul": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", - "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "peer": true, "dependencies": { - "abbrev": "1.0.x", - "async": "1.x", - "escodegen": "1.8.x", - "esprima": "2.7.x", - "glob": "^5.0.15", - "handlebars": "^4.0.1", - "js-yaml": "3.x", - "mkdirp": "0.5.x", - "nopt": "3.x", - "once": "1.x", - "resolve": "1.1.x", - "supports-color": "^3.1.0", - "which": "^1.1.1", - "wordwrap": "^1.0.0" + "p-limit": "^3.0.2" }, - "bin": { - "istanbul": "lib/cli.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sc-istanbul/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "peer": true, "dependencies": { - "sprintf-js": "~1.0.2" + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sc-istanbul/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" }, "engines": { - "node": "*" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sc-istanbul/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "node_modules/package-json/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "peer": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/sc-istanbul/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "peer": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "callsites": "^3.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6" } }, - "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==", "dev": true, - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "peer": true + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sc-istanbul/node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "peer": true + "engines": { + "node": ">=8" + } }, - "node_modules/sc-istanbul/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^1.0.0" - }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/sc-istanbul/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, "engines": { - "node": ">=10.0.0" + "node": ">=8" } }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "peer": true, + "engines": { + "node": "*" } }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, "peer": true, "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" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" }, "engines": { - "node": ">= 0.8.0" + "node": ">=0.12" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "peer": true + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "peer": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, - "peer": true, - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=6" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "node_modules/prettier-plugin-organize-imports": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz", + "integrity": "sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9", + "vue-tsc": "^2.1.0" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/prettier-plugin-solidity": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.4.2.tgz", + "integrity": "sha512-VVD/4XlDjSzyPWWCPW8JEleFa8JNKFYac5kNlMjVXemQyQZKfpekPMhFZSePuXB6L+RixlFvWe20iacGjFYrLw==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "@solidity-parser/parser": "^0.19.0", + "semver": "^7.6.3" }, "engines": { - "node": ">= 0.4" + "node": ">=18" + }, + "peerDependencies": { + "prettier": ">=2.3.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "node_modules/prettier-plugin-solidity/node_modules/@solidity-parser/parser": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true, + "license": "MIT" }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "node_modules/prettier-plugin-solidity/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, + "license": "ISC", "bin": { - "sha.js": "bin.js" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/sha1": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", - "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "peer": true + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dev": true, "peer": true, "dependencies": { - "charenc": ">= 0.0.1", - "crypt": ">= 0.0.1" - }, - "engines": { - "node": "*" + "asap": "~2.0.6" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "shebang-regex": "^3.0.0" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, "peer": true, "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -10576,728 +8441,769 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "peer": true + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/simple-get": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz", - "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "peer": true, "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "safe-buffer": "^5.1.0" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=8.10.0" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, + "peer": true, "dependencies": { - "color-name": "~1.1.4" + "resolve": "^1.1.6" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.10" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/reduce-flatten": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solc/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "node_modules/registry-auth-token": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" } }, - "node_modules/solc/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "rc": "1.2.8" }, - "bin": { - "rimraf": "bin.js" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/req-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz", + "integrity": "sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ==", "dev": true, - "bin": { - "semver": "bin/semver" + "peer": true, + "dependencies": { + "req-from": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/solhint": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.6.2.tgz", - "integrity": "sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==", + "node_modules/req-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz", + "integrity": "sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA==", "dev": true, + "peer": true, "dependencies": { - "@solidity-parser/parser": "^0.16.0", - "ajv": "^6.12.6", - "antlr4": "^4.11.0", - "ast-parents": "^0.0.1", - "chalk": "^4.1.2", - "commander": "^10.0.0", - "cosmiconfig": "^8.0.0", - "fast-diff": "^1.2.0", - "glob": "^8.0.3", - "ignore": "^5.2.4", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "semver": "^7.5.2", - "strip-ansi": "^6.0.1", - "table": "^6.8.1", - "text-table": "^0.2.0" - }, - "bin": { - "solhint": "solhint.js" + "resolve-from": "^3.0.0" }, - "optionalDependencies": { - "prettier": "^2.8.3" + "engines": { + "node": ">=4" } }, - "node_modules/solhint/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "node_modules/req-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/solhint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solhint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" } }, - "node_modules/solhint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "lowercase-keys": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/solhint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/solhint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/solhint/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "engines": { - "node": ">=14" + "peer": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "node_modules/solhint/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", "dev": true, + "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" + "bn.js": "^5.2.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "bin": { + "rlp": "bin/rlp" } }, - "node_modules/solhint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "engines": { - "node": ">=8" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "node_modules/solhint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" }, "engines": { - "node": ">=10" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solhint/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "node_modules/solhint/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "es-errors": "^1.3.0", + "isarray": "^2.0.5" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solhint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/solhint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/solidity-comments-extractor": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz", - "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/solidity-coverage": { - "version": "0.7.22", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.22.tgz", - "integrity": "sha512-I6Zd5tsFY+gmj1FDIp6w7OrUePx6ZpMgKQZg7dWgPaQHePLi3Jk+iJ8lwZxsWEoNy2Lcv91rMxATWHqRaFdQpw==", + "node_modules/sc-istanbul": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/sc-istanbul/-/sc-istanbul-0.4.6.tgz", + "integrity": "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { - "@solidity-parser/parser": "^0.14.0", - "@truffle/provider": "^0.2.24", - "chalk": "^2.4.2", - "death": "^1.1.0", - "detect-port": "^1.3.0", - "fs-extra": "^8.1.0", - "ghost-testrpc": "^0.0.2", - "global-modules": "^2.0.0", - "globby": "^10.0.1", - "jsonschema": "^1.2.4", - "lodash": "^4.17.15", - "node-emoji": "^1.10.0", - "pify": "^4.0.1", - "recursive-readdir": "^2.2.2", - "sc-istanbul": "^0.4.5", - "semver": "^7.3.4", - "shelljs": "^0.8.3", - "web3-utils": "^1.3.0" + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" }, "bin": { - "solidity-coverage": "plugins/bin.js" + "istanbul": "lib/cli.js" } }, - "node_modules/solidity-coverage/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/sc-istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/sc-istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": "*" } }, - "node_modules/solidity-coverage/node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "node_modules/sc-istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/solidity-coverage/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/sc-istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "yallist": "^4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/solidity-coverage/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/sc-istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/solidity-coverage/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/sc-istanbul/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", "dev": true, + "license": "MIT", "peer": true }, - "node_modules/source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", + "node_modules/sc-istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", "dev": true, - "optional": true, + "license": "MIT", "peer": true, "dependencies": { - "amdefine": ">=0.0.4" + "has-flag": "^1.0.0" }, "engines": { "node": ">=0.8.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "peer": true - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "node_modules/sc-istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "isexe": "^2.0.0" }, "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" + "which": "bin/which" } }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", "dev": true, "peer": true }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", "dev": true, + "hasInstallScript": true, + "peer": true, "dependencies": { - "type-fest": "^0.7.1" + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" + "node": ">=10.0.0" } }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "dependencies": { - "safe-buffer": "~5.2.0" + "randombytes": "^2.1.0" } }, - "node_modules/string-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", - "dev": true, - "peer": true - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^3.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "peer": true }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, + "peer": true, "dependencies": { - "ansi-regex": "^5.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, - "engines": { - "node": ">=8" + "bin": { + "sha.js": "bin.js" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/sha1": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz", + "integrity": "sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==", "dev": true, + "peer": true, + "dependencies": { + "charenc": ">= 0.0.1", + "crypt": ">= 0.0.1" + }, "engines": { - "node": ">=4" + "node": "*" } }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { - "is-hex-prefixed": "1.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "has-flag": "^3.0.0" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" }, "engines": { "node": ">=4" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -11305,1798 +9211,1565 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swarm-js": { - "version": "0.1.42", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz", - "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==", + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^11.8.5", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "peer": true, + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swarm-js/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "defer-to-connect": "^2.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" }, "engines": { - "node": ">=10" - } - }, - "node_modules/swarm-js/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/swarm-js/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/swarm-js/node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "peer": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swarm-js/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "mimic-response": "^3.1.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/swarm-js/node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, - "peer": true, - "engines": { - "node": ">=10" - } + "license": "MIT", + "peer": true }, - "node_modules/swarm-js/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "peer": true, "dependencies": { - "pump": "^3.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/swarm-js/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10.19.0" + "node": ">=8" }, "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/swarm-js/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10.19.0" + "node": ">=7.0.0" } }, - "node_modules/swarm-js/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "peer": true, "engines": { "node": ">=8" } }, - "node_modules/swarm-js/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "node_modules/solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", "dev": true, - "peer": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/swarm-js/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10" + "bin": { + "solcjs": "solc.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "peer": true, - "engines": { - "node": ">=8" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/swarm-js/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "node_modules/solhint": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/solhint/-/solhint-5.0.5.tgz", + "integrity": "sha512-WrnG6T+/UduuzSWsSOAbfq1ywLUDwNea3Gd5hg6PS+pLUm8lz2ECNr0beX609clBxmDeZ3676AiA9nPDljmbJQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "lowercase-keys": "^2.0.0" + "@solidity-parser/parser": "^0.19.0", + "ajv": "^6.12.6", + "antlr4": "^4.13.1-patch-1", + "ast-parents": "^0.0.1", + "chalk": "^4.1.2", + "commander": "^10.0.0", + "cosmiconfig": "^8.0.0", + "fast-diff": "^1.2.0", + "glob": "^8.0.3", + "ignore": "^5.2.4", + "js-yaml": "^4.1.0", + "latest-version": "^7.0.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "semver": "^7.5.2", + "strip-ansi": "^6.0.1", + "table": "^6.8.1", + "text-table": "^0.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "solhint": "solhint.js" + }, + "optionalDependencies": { + "prettier": "^2.8.3" } }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "node_modules/solhint/node_modules/@solidity-parser/parser": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true, + "license": "MIT" + }, + "node_modules/solhint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "node_modules/solhint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "get-port": "^3.1.0" + "balanced-match": "^1.0.0" } }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "node_modules/solhint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/table-layout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", - "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "node_modules/solhint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "array-back": "^4.0.1", - "deep-extend": "~0.6.0", - "typical": "^5.2.0", - "wordwrapjs": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8.0.0" + "node": ">=7.0.0" } }, - "node_modules/table-layout/node_modules/array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "node_modules/solhint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/table-layout/node_modules/typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "node_modules/solhint/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/solhint/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/solhint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/solhint/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "node_modules/solhint/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, - "peer": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "license": "MIT", + "optional": true, + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=4.5" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "node_modules/solhint/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, - "peer": true, - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" } }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", - "dev": true, - "peer": true - }, - "node_modules/then-request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "node_modules/solhint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.12" + "node": ">=8" } }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "node_modules/solidity-coverage": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.15.tgz", + "integrity": "sha512-qH7290NKww4/t/qFvnSEePEzON0k025IGVlwc8wo8Q6p+h1Tt6fV2M0k3yfsps3TomZYTROsfPXjx7MSnwD5uA==", "dev": true, + "license": "ISC", "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" + "@ethersproject/abi": "^5.0.9", + "@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.1", + "jsonschema": "^1.2.4", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "node-emoji": "^1.10.0", + "pify": "^4.0.1", + "recursive-readdir": "^2.2.2", + "sc-istanbul": "^0.4.5", + "semver": "^7.3.4", + "shelljs": "^0.8.3", + "web3-utils": "^1.3.6" }, - "engines": { - "node": ">=0.6.0" + "bin": { + "solidity-coverage": "plugins/bin.js" + }, + "peerDependencies": { + "hardhat": "^2.11.0" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.19.0.tgz", + "integrity": "sha512-RV16k/qIxW/wWc+mLzV3ARyKUaMUTBy9tOLMzFhtNSKYeTAanQ3a5MudJKf/8arIFnA2L27SNjarQKmFg0w/jA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/solidity-coverage/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, "engines": { - "node": ">=6" + "node": ">=6 <7 || >=8" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/solidity-coverage/node_modules/globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "is-number": "^7.0.0" + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=8" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/solidity-coverage/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=0.6" + "node": ">=10" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA==", "dev": true, + "optional": true, "peer": true, "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "amdefine": ">=0.0.4" }, "engines": { - "node": ">=0.8" + "node": ">=0.8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "peer": true + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } }, - "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" + "node": ">=0.10.0" } }, - "node_modules/ts-command-line-args": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", - "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "chalk": "^4.1.0", - "command-line-args": "^5.1.1", - "command-line-usage": "^6.1.0", - "string-format": "^2.0.0" - }, - "bin": { - "write-markdown": "dist/write-markdown.js" + "readable-stream": "^3.0.0" } }, - "node_modules/ts-command-line-args/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", "dev": true, - "peer": true, "dependencies": { - "color-convert": "^2.0.1" + "type-fest": "^0.7.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/ts-command-line-args/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", "dev": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/ts-command-line-args/node_modules/color-convert": { + "node_modules/statuses": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8" } }, - "node_modules/ts-command-line-args/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "peer": true + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "node_modules/ts-command-line-args/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/string-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", "dev": true, - "peer": true, - "engines": { - "node": ">=8" - } + "license": "WTFPL OR MIT", + "peer": true }, - "node_modules/ts-command-line-args/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "peer": true, "dependencies": { - "has-flag": "^4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/ts-essentials": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", - "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "peer": true, - "peerDependencies": { - "typescript": ">=3.7.0" + "engines": { + "node": ">=4" } }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, + "peer": true, "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "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" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "ansi-regex": "^3.0.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=4" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsort": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", - "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "safe-buffer": "^5.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true, - "peer": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", "dev": true, "peer": true, "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "is-hex-prefixed": "1.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=6.5.0", + "npm": ">=3" } }, - "node_modules/typechain": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.1.tgz", - "integrity": "sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "peer": true, - "dependencies": { - "@types/prettier": "^2.1.1", - "debug": "^4.3.1", - "fs-extra": "^7.0.0", - "glob": "7.1.7", - "js-sha3": "^0.8.0", - "lodash": "^4.17.15", - "mkdirp": "^1.0.4", - "prettier": "^2.3.1", - "ts-command-line-args": "^2.2.0", - "ts-essentials": "^7.0.1" - }, - "bin": { - "typechain": "dist/cli/cli.js" + "engines": { + "node": ">=8" }, - "peerDependencies": { - "typescript": ">=4.3.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typechain/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": "*" + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typechain/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", "dev": true, "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" }, "engines": { - "node": ">=10" + "node": ">=8.0.0" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "node_modules/sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" + "get-port": "^3.1.0" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.0.0" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "node_modules/table-layout": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", + "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "array-back": "^4.0.1", + "deep-extend": "~0.6.0", + "typical": "^5.2.0", + "wordwrapjs": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.0.0" } }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, - "peer": true + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "peer": true, "dependencies": { - "is-typedarray": "^1.0.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, "engines": { - "node": ">=14.17" + "node": ">=8" } }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", "dev": true, - "optional": true, "peer": true, - "bin": { - "uglifyjs": "bin/uglifyjs" + "dependencies": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" }, "engines": { - "node": ">=0.8.0" + "node": ">=6.0.0" } }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "node_modules/then-request/node_modules/@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==", "dev": true, "peer": true }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/then-request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", "dev": true, + "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.12" } }, - "node_modules/undici": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.0.tgz", - "integrity": "sha512-MLqGMyaJk2ubSl7FrmWuV7ZOsYWmdF7gcBHDRxm4AR8NoodQhgy3vO/D1god79HoetxR0uAeVNB65yj2lNRQnQ==", + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" + "readable-stream": "3" } }, - "node_modules/undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", - "dev": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", "dev": true, - "engines": { - "node": ">= 0.8" + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "prepend-http": "^2.0.0" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=4" + "node": ">=0.6.0" } }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==", - "dev": true, - "peer": true - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "hasInstallScript": true, - "peer": true, + "license": "MIT", "dependencies": { - "node-gyp-build": "^4.3.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", - "dev": true, - "peer": true - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "node": ">=8.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utils-merge": { + "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "peer": true, "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "node": ">=0.6" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", - "dev": true, - "peer": true - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, - "peer": true, + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "node_modules/ts-command-line-args": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", + "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", "dev": true, - "engines": [ - "node >=0.6.0" - ], + "license": "ISC", "peer": true, "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "chalk": "^4.1.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^6.1.0", + "string-format": "^2.0.0" + }, + "bin": { + "write-markdown": "dist/write-markdown.js" } }, - "node_modules/web3": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.4.tgz", - "integrity": "sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A==", + "node_modules/ts-command-line-args/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { - "web3-bzz": "1.7.4", - "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" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/web3-bzz": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.4.tgz", - "integrity": "sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q==", + "node_modules/ts-command-line-args/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "peer": true, "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/web3-bzz/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "peer": true - }, - "node_modules/web3-core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.4.tgz", - "integrity": "sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q==", + "node_modules/ts-command-line-args/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.7.4", - "web3-core-method": "1.7.4", - "web3-core-requestmanager": "1.7.4", - "web3-utils": "1.7.4" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8.0.0" + "node": ">=7.0.0" } }, - "node_modules/web3-core-helpers": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz", - "integrity": "sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg==", + "node_modules/ts-command-line-args/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/ts-command-line-args/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "web3-eth-iban": "1.7.4", - "web3-utils": "1.7.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/web3-core-helpers/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/ts-command-line-args/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/web3-core-method": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.4.tgz", - "integrity": "sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ==", + "node_modules/ts-essentials": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz", + "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@ethersproject/transactions": "^5.6.2", - "web3-core-helpers": "1.7.4", - "web3-core-promievent": "1.7.4", - "web3-core-subscriptions": "1.7.4", - "web3-utils": "1.7.4" - }, - "engines": { - "node": ">=8.0.0" + "peerDependencies": { + "typescript": ">=3.7.0" } }, - "node_modules/web3-core-method/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "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" }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz", - "integrity": "sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA==", - "dev": true, - "peer": true, - "dependencies": { - "eventemitter3": "4.0.4" + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" }, - "engines": { - "node": ">=8.0.0" + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/web3-core-requestmanager": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz", - "integrity": "sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA==", + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "peer": true, - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.7.4", - "web3-providers-http": "1.7.4", - "web3-providers-ipc": "1.7.4", - "web3-providers-ws": "1.7.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=0.3.1" } }, - "node_modules/web3-core-subscriptions": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz", - "integrity": "sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g==", + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.4" - }, - "engines": { - "node": ">=8.0.0" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/web3-core/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "peer": true + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true }, - "node_modules/web3-core/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8.0" } }, - "node_modules/web3-eth": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.4.tgz", - "integrity": "sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug==", + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, + "license": "MIT", "peer": true, - "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" - }, "engines": { - "node": ">=8.0.0" + "node": ">=4" } }, - "node_modules/web3-eth-abi": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz", - "integrity": "sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "peer": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.7.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/web3-eth-abi/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/typechain": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", + "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "@types/prettier": "^2.1.1", + "debug": "^4.3.1", + "fs-extra": "^7.0.0", + "glob": "7.1.7", + "js-sha3": "^0.8.0", + "lodash": "^4.17.15", + "mkdirp": "^1.0.4", + "prettier": "^2.3.1", + "ts-command-line-args": "^2.2.0", + "ts-essentials": "^7.0.1" }, - "engines": { - "node": ">=8.0.0" + "bin": { + "typechain": "dist/cli/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.3.0" } }, - "node_modules/web3-eth-accounts": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz", - "integrity": "sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw==", + "node_modules/typechain/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "peer": true, "dependencies": { - "@ethereumjs/common": "^2.5.0", - "@ethereumjs/tx": "^3.3.2", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/web3-eth-accounts/node_modules/eth-lib/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true, - "peer": true - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "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.", + "node_modules/typechain/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "peer": true, "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-accounts/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", - "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "node_modules/web3-eth-contract": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz", - "integrity": "sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ==", + "node_modules/typechain/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "@types/bn.js": "^5.1.0", - "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" + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=8.0.0" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/web3-eth-contract/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" } }, - "node_modules/web3-eth-ens": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz", - "integrity": "sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA==", + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, - "peer": true, + "license": "MIT", "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" + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-ens/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-iban": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz", - "integrity": "sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w==", + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.7.4" + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-eth-iban/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true, - "peer": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } + "peer": true }, - "node_modules/web3-eth-personal": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz", - "integrity": "sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g==", + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, - "peer": true, - "dependencies": { - "@types/node": "^12.12.6", - "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" + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=8.0.0" + "node": ">=14.17" } }, - "node_modules/web3-eth-personal/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "dev": true, - "peer": true - }, - "node_modules/web3-eth-personal/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/web3-eth/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, + "license": "BSD-2-Clause", + "optional": true, "peer": true, - "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "bin": { + "uglifyjs": "bin/uglifyjs" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.8.0" } }, - "node_modules/web3-net": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.4.tgz", - "integrity": "sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg==", + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, - "peer": true, + "license": "MIT", "dependencies": { - "web3-core": "1.7.4", - "web3-core-method": "1.7.4", - "web3-utils": "1.7.4" + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/web3-net/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/undici": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.0.tgz", + "integrity": "sha512-MLqGMyaJk2ubSl7FrmWuV7ZOsYWmdF7gcBHDRxm4AR8NoodQhgy3vO/D1god79HoetxR0uAeVNB65yj2lNRQnQ==", "dev": true, - "peer": true, "dependencies": { - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "@fastify/busboy": "^2.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=14.0" } }, - "node_modules/web3-providers-http": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.4.tgz", - "integrity": "sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA==", + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "peer": true, - "dependencies": { - "web3-core-helpers": "1.7.4", - "xhr2-cookies": "1.1.0" - }, "engines": { - "node": ">=8.0.0" + "node": ">= 4.0.0" } }, - "node_modules/web3-providers-ipc": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz", - "integrity": "sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "peer": true, - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.7.4" - }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.8" } }, - "node_modules/web3-providers-ws": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz", - "integrity": "sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "peer": true, "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.7.4", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" + "punycode": "^2.1.0" } }, - "node_modules/web3-shh": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.4.tgz", - "integrity": "sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A==", + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "dev": true, "hasInstallScript": true, + "optional": true, "peer": true, "dependencies": { - "web3-core": "1.7.4", - "web3-core-method": "1.7.4", - "web3-core-subscriptions": "1.7.4", - "web3-net": "1.7.4" + "node-gyp-build": "^4.3.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=6.14.2" } }, - "node_modules/web3-utils": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.2.tgz", - "integrity": "sha512-TdApdzdse5YR+5GCX/b/vQnhhbj1KSAtfrDtRW7YS0kcWp1gkJsN62gw6GzCaNTeXookB7UrLtmDUuMv65qgow==", + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", "dev": true, - "peer": true, - "dependencies": { - "@ethereumjs/util": "^8.1.0", - "bn.js": "^5.2.1", - "ethereum-bloom-filters": "^1.0.6", - "ethereum-cryptography": "^2.1.2", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT", + "peer": true }, - "node_modules/web3-utils/node_modules/ethereum-cryptography": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz", - "integrity": "sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==", + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "peer": true, - "dependencies": { - "@noble/curves": "1.1.0", - "@noble/hashes": "1.3.1", - "@scure/bip32": "1.3.1", - "@scure/bip39": "1.2.1" + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/web3/node_modules/web3-utils": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz", - "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==", + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "peer": true + }, + "node_modules/web3-utils": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz", + "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==", "dev": true, + "license": "LGPL-3.0", "peer": true, "dependencies": { + "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", + "ethereum-cryptography": "^2.1.2", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", @@ -13106,57 +10779,46 @@ "node": ">=8.0.0" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true, - "peer": true - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "node_modules/web3-utils/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" + "@noble/hashes": "1.4.0" }, - "engines": { - "node": ">=4.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/web3-utils/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", "dev": true, + "license": "MIT", "peer": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/web3-utils/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, "node_modules/which": { @@ -13164,6 +10826,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -13175,32 +10838,86 @@ } }, "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "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" }, "engines": { "node": ">= 0.4" @@ -13209,12 +10926,50 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13224,6 +10979,7 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/wordwrapjs": { @@ -13231,6 +10987,7 @@ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "reduce-flatten": "^2.0.0", @@ -13245,6 +11002,7 @@ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -13356,75 +11114,6 @@ } } }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "peer": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dev": true, - "peer": true, - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dev": true, - "peer": true, - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==", - "dev": true, - "peer": true, - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -13434,22 +11123,6 @@ "node": ">=10" } }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -13520,6 +11193,7 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -13535,6 +11209,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/packages/smart-contract/package.json b/packages/smart-contract/package.json index d77ea7920..d9ddfde6e 100644 --- a/packages/smart-contract/package.json +++ b/packages/smart-contract/package.json @@ -3,33 +3,27 @@ "version": "0.1.0", "scripts": { "compile": "hardhat compile && npm run artifact-to-abis", - "deploy": "hardhat run scripts/deploy.ts", - "verify": "hardhat verify", + "deploy": "hardhat ignition deploy ignition/modules/DataProtector.ts --strategy create2", "test": "hardhat test", "artifact-to-abis": "node tools/artifacts-to-abis.mjs", - "lint": "solhint contracts/*.sol && eslint .", - "format": "prettier --write \"{scripts,test,contracts}/**/*.{ts,sol}\"", - "check-format": "prettier --check \"{scripts,test,contracts}/**/*.{ts,sol}\"" - }, - "dependencies": { - "@openzeppelin/contracts": "^4.8.2" + "check-format": "prettier --loglevel warn 'contracts/**/*.sol' '**/*.ts' --check", + "format": "prettier --loglevel warn 'contracts/**/*.sol' '**/*.ts' --write", + "check-lint": "solhint 'contracts/**/*.sol' && eslint .", + "lint": "solhint 'contracts/**/*.sol' --fix && eslint . --fix" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.7.5", - "@typescript-eslint/parser": "^6.7.5", - "eslint": "^8.51.0", - "eslint-config-airbnb-typescript": "^17.1.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.28.1", - "@nomicfoundation/hardhat-network-helpers": "^1.0.9", - "@nomicfoundation/hardhat-toolbox": "^1.0.2", - "@nomiclabs/hardhat-etherscan": "^3.1.7", - "@nomiclabs/hardhat-solhint": "^3.0.1", - "chai": "^4.3.10", - "hardhat": "^2.14.1", - "prettier": "^2.8.8", - "prettier-plugin-solidity": "^1.1.3", - "ts-node": "^10.9.1", - "typescript": "^5.2.2" + "@nomicfoundation/hardhat-toolbox": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^8.30.1", + "@typescript-eslint/parser": "^8.30.1", + "dotenv": "^16.5.0", + "eslint": "^9.24.0", + "eslint-plugin-import": "^2.31.0", + "hardhat": "^2.23.0", + "prettier": "^3.3.3", + "prettier-plugin-organize-imports": "^4.0.0", + "prettier-plugin-solidity": "^1.4.1", + "solhint": "^5.0.5", + "typescript": "^5.8.3", + "zod": "^3.24.3" } } diff --git a/packages/smart-contract/scripts/deploy.ts b/packages/smart-contract/scripts/deploy.ts deleted file mode 100644 index d6232ea76..000000000 --- a/packages/smart-contract/scripts/deploy.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ethers } from 'hardhat'; -import { DATASET_REGISTRY_ADDRESS as defaultDatasetRegistryAddress } from '../config/config'; -import { saveDeployment } from '../utils/utils'; - -async function main() { - const [deployer] = await ethers.getSigners(); - console.log('Deploying contracts with the account:', deployer.address); - console.log('Account balance:', (await deployer.getBalance()).toString()); - - const { DATASET_REGISTRY_ADDRESS = defaultDatasetRegistryAddress } = - process.env; - - console.log(`Using dataset registry at ${DATASET_REGISTRY_ADDRESS}`); - - // pass the registry instance to the deploy method - const DataProtector = await ethers.getContractFactory('DataProtector'); - const dataProtector = await DataProtector.deploy(DATASET_REGISTRY_ADDRESS); - await dataProtector.deployed(); - - const deployTxReceipt = await dataProtector.deployTransaction.wait(); - - await saveDeployment('DataProtector')({ - address: dataProtector.address, - args: DATASET_REGISTRY_ADDRESS, - block: deployTxReceipt.blockNumber, - }); - - console.log( - 'DataProtector contract deployed to address:', - dataProtector.address - ); -} - -main().catch((error) => { - console.error(error); - process.exitCode = 1; -}); diff --git a/packages/smart-contract/test/DataProtector.ts b/packages/smart-contract/test/DataProtector.ts index cf7666903..f66752acf 100644 --- a/packages/smart-contract/test/DataProtector.ts +++ b/packages/smart-contract/test/DataProtector.ts @@ -1,47 +1,42 @@ +import { loadFixture } from '@nomicfoundation/hardhat-toolbox/network-helpers'; import { expect } from 'chai'; -import { loadFixture } from '@nomicfoundation/hardhat-network-helpers'; import { ethers } from 'hardhat'; describe('DataProtector', function () { - async function deploySCFixture() { - const [owner, otherAccount] = await ethers.getSigners(); - // Create an instance of DatasetRegistry using the address - const DatasetRegistry = await ethers.getContractFactory( - 'DatasetRegistryMock' - ); - const datasetRegistry = await DatasetRegistry.deploy(); + async function deploySCFixture() { + const [owner, otherAccount] = await ethers.getSigners(); + // Create an instance of DatasetRegistry using the address + const DatasetRegistry = await ethers.getContractFactory('DatasetRegistryMock'); + const datasetRegistry = await DatasetRegistry.deploy(); - // pass the registry instance to the deploy method - const DataProtector = await ethers.getContractFactory('DataProtector'); - const deployedContract = await DataProtector.deploy( - datasetRegistry.address - ); - return { deployedContract, owner, otherAccount }; - } + // pass the registry instance to the deploy method + const DataProtector = await ethers.getContractFactory('DataProtector'); + const deployedContract = await DataProtector.deploy(await datasetRegistry.getAddress()); + return { deployedContract, owner, otherAccount }; + } - it('CreateDatasetWithSchema function : should emit event', async function () { - const { deployedContract, owner } = await loadFixture(deploySCFixture); - const datasetOwner = owner.address; - const datasetName = 'ProtectedData Name'; - const datasetSchema = JSON.stringify({ - email: 'string', - age: 'number', - }); - const datasetMultiaddr = ethers.constants.HashZero; - const datasetChecksum = ethers.constants.HashZero; - const tx = await deployedContract.createDatasetWithSchema( - datasetOwner, - datasetName, - datasetSchema, - datasetMultiaddr, - datasetChecksum - ); + it('CreateDatasetWithSchema function : should emit event', async function () { + const { deployedContract, owner } = await loadFixture(deploySCFixture); + const datasetOwner = owner.address; + const datasetName = 'ProtectedData Name'; + const datasetSchema = JSON.stringify({ + email: 'string', + age: 'number', + }); + + const tx = await deployedContract.createDatasetWithSchema( + datasetOwner, + datasetName, + datasetSchema, + ethers.ZeroHash, + ethers.ZeroHash, + ); - // expect event to be emitted - await expect(tx) - .to.emit(deployedContract, 'DatasetSchema') - .withArgs((value: string) => { - return ethers.utils.isAddress(value); - }, datasetSchema); - }); + // expect event to be emitted + await expect(tx) + .to.emit(deployedContract, 'DatasetSchema') + .withArgs((value: string) => { + return ethers.isAddress(value); + }, datasetSchema); + }); }); diff --git a/packages/smart-contract/tsconfig.json b/packages/smart-contract/tsconfig.json index 574e785c7..34001ffe9 100644 --- a/packages/smart-contract/tsconfig.json +++ b/packages/smart-contract/tsconfig.json @@ -7,5 +7,8 @@ "strict": true, "skipLibCheck": true, "resolveJsonModule": true - } + }, + "include": ["config/**/*", "ignition/**/*", "test/**/*","utils/**/*"], + "exclude": ["node_modules", "typechain-types"], + "files": ["./hardhat.config.ts"] } diff --git a/packages/smart-contract/utils/utils.ts b/packages/smart-contract/utils/utils.ts deleted file mode 100644 index 8933fe985..000000000 --- a/packages/smart-contract/utils/utils.ts +++ /dev/null @@ -1,21 +0,0 @@ -import fs from 'fs/promises'; - -// eslint-disable-next-line import/prefer-default-export -export const saveDeployment = - (contractName: string) => - async ({ - address, - args, - block, - }: { - address: string; - args: string; - block: number; - }) => { - await fs.mkdir(`deployments/${contractName}`, { recursive: true }); - await Promise.all([ - fs.writeFile(`deployments/${contractName}/address`, `${address}`), - fs.writeFile(`deployments/${contractName}/args`, `${args}`), - fs.writeFile(`deployments/${contractName}/block`, `${block}`), - ]); - }; diff --git a/packages/subgraph/.drone.yml b/packages/subgraph/.drone.yml index 4b0e27bf6..d01c966b6 100644 --- a/packages/subgraph/.drone.yml +++ b/packages/subgraph/.drone.yml @@ -8,7 +8,7 @@ trigger: steps: - name: build-subgraph - image: node:18.19 + image: node:20.18 environment: ENV: prod commands: diff --git a/packages/subgraph/.env.template b/packages/subgraph/.env.template index a51c20c24..67f8b2ee9 100644 --- a/packages/subgraph/.env.template +++ b/packages/subgraph/.env.template @@ -1,20 +1,14 @@ -# environment to use for configuration (prod/staging) -ENV=prod +# The name of the network (e.g., mainnet, arbitrum, etc.) +NETWORK_NAME=... -# override the starting block for indexation of all contracts events -# START_BLOCK=0 +# The URL of the Graph Node endpoint for self-hosted Graph Node +GRAPHNODE_URL=... -# AppRegistry contract address override -# APP_REGISTRY_ADDRESS=0x... +# The URL of the IPFS endpoint for self-hosted IPFS +IPFS_URL=... -# DatasetRegistry contract address override -# DATASET_REGISTRY_ADDRESS=0x... +# The version label for the deployment (e.g., v1.0.0) +VERSION_LABEL=... -# Dataprotector contract address override -# DATAPROTECTOR_ADDRESS=0x... - -# DataprotectorSharing contract address override -# DATAPROTECTOR_SHARING_ADDRESS=0x... - -# AddOnlyAppWhitelistRegistry contract address override -# ADD_ONLY_APP_WHITELIST_REGISTRY_ADDRESS=0x... \ No newline at end of file +# Start block number for local testing +START_BLOCK=... diff --git a/packages/subgraph/.gitignore b/packages/subgraph/.gitignore index 274f99937..88b67bd59 100644 --- a/packages/subgraph/.gitignore +++ b/packages/subgraph/.gitignore @@ -10,4 +10,5 @@ coverage.json # subgraph generated -subgraph.yaml +tests/.latest.json +subgraph.yaml \ No newline at end of file diff --git a/packages/subgraph/.nvmrc b/packages/subgraph/.nvmrc new file mode 100644 index 000000000..10fef252a --- /dev/null +++ b/packages/subgraph/.nvmrc @@ -0,0 +1 @@ +20.18 diff --git a/packages/subgraph/README.md b/packages/subgraph/README.md index f92517c6c..9800c6b73 100644 --- a/packages/subgraph/README.md +++ b/packages/subgraph/README.md @@ -1,32 +1,81 @@ # Subgraph +This repository contains the code for the DataProtector subgraph, which indexes blockchain events to make them queryable through a GraphQL API. + ## Build the Subgraph -And you have finishing editing the schema.graphql & subgraph.yaml files. Type the following command +After editing the schema.graphql & subgraph.yaml files, build the subgraph with: ```bash npm run codegen npm run build ``` -Then you have to write ./src/bays.ts files in order to update the graph when new events appear. In this way, it will always be up to date. +Then implement event handlers in the ./src files to keep the graph updated when new events occur on the blockchain. + +## Deployment Options -## Local +### Local Development -### Deploy on Local Graph node +To deploy on a local Graph Node: ```bash npm run create-local npm run deploy-local ``` -### Test Subgrah API +The subgraph will be available at: http://localhost:8000/subgraphs/name/DataProtector/graphql + +### Thegraph network + +To deploy this subgraph on Thegraph network: + +1. Update `networks.json` file to use the correct addresses for the correct network. + +2. Authenticate: `npx graph auth ` + +3. Deploy: `npx graph deploy --network ` + + +### Hosted Production Environments + +We use CI/CD pipelines to deploy our subgraphs to hosted environments. + +#### Docker Image Tags -Deployed to : http://localhost:8000/subgraphs/name/DataProtector/graphql +When building and pushing Docker images, the following tag generation strategy is used: -Request Example on GraphiQL : +| Trigger | Environment | Tag Format | Example | Push? | +|---------|-------------|------------|---------|-------| +| Manual workflow dispatch | Production | `{package.json version}` | `1.2.3` | Yes | +| Manual workflow dispatch | Development | `dev-{commit SHA}` | `dev-8e7d3f2` | Yes | +| Push to `main` branch | Production | `{package.json version}` | `1.2.3` | Yes | +| Push to `develop` branch | Development | `dev-{commit SHA}` | `dev-8e7d3f2` | Yes | +| Tag push | N/A | `{tag name}` | `v1.2.3-beta` | Yes | +| Other branch push | Development | `dev-{commit SHA}` | `dev-8e7d3f2` | No | + +### Self-Hosted Subgraph Deployment Process + +For zero-downtime updates to the production subgraph: + +1. **Index the New Version (Temporary Deployment)** + - Trigger deployment with target: `subgraph-deploy-tmp` + - This creates a separate instance for indexing + +2. **Wait for Indexing Completion** + - Monitor the temporary deployment until it's fully synced + +3. **Deploy to Production (Zero Downtime)** + - Once temporary deployment is ready, trigger: `subgraph-deploy-prod` + - This swaps the deployments with no service interruption + +4. **Verify the Deployment** + - Access the production subgraph at: https://thegraph.iex.ec/subgraphs/name/bellecour/dataprotector-v2/graphql + +## Query Examples + +### Sample GraphQL Query -Query for GraphiQL API ```graphql query MyQuery($requiredSchema: [String!]!, $start: Int!, $range: Int!) { protectedDatas( @@ -56,9 +105,9 @@ query MyQuery($requiredSchema: [String!]!, $start: Int!, $range: Int!) { } ``` -```graphql -Query Variables : +### Query Variables +```json { "start": 0, "range": 1000, @@ -66,12 +115,17 @@ Query Variables : } ``` -## Hosted - -Trigger deployment via promote action on CI. +## Development Workflow -### Hosted dev subgraph +1. Update schema.graphql and subgraph.yaml as needed +2. Run codegen to generate TypeScript types: `npm run codegen` +3. Implement mapping handlers in src/ files +4. Build the subgraph: `npm run build` +5. Test locally before deploying to production environments -Promote with target `dev-subgraph` to deploy on https://thegraph-product.iex.ec/subgraphs/name/bellecour/dev-dataprotector +## CI/CD Integration -### Subgraph API on Production \ No newline at end of file +Our repository uses automated workflows to build, test, and deploy the subgraph: +- ABI validation checks ensure contract ABIs are up-to-date +- Docker images are built and pushed with appropriate tags based on the source branch +- Deployment follows a staged approach to ensure zero downtime \ No newline at end of file diff --git a/packages/subgraph/abis/AddOnlyAppWhitelistRegistryABI.json b/packages/subgraph/abis/AddOnlyAppWhitelistRegistryABI.json index d11f04ff8..ac6a760ab 100644 --- a/packages/subgraph/abis/AddOnlyAppWhitelistRegistryABI.json +++ b/packages/subgraph/abis/AddOnlyAppWhitelistRegistryABI.json @@ -4,11 +4,6 @@ "stateMutability": "nonpayable", "type": "constructor" }, - { - "inputs": [], - "name": "ERC1167FailedCreateClone", - "type": "error" - }, { "inputs": [ { @@ -112,6 +107,27 @@ "name": "ERC721NonexistentToken", "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": [], "name": "InvalidInitialization", diff --git a/packages/subgraph/abis/DataProtectorSharingABI.json b/packages/subgraph/abis/DataProtectorSharingABI.json index 42065f51e..9f61f3582 100644 --- a/packages/subgraph/abis/DataProtectorSharingABI.json +++ b/packages/subgraph/abis/DataProtectorSharingABI.json @@ -2,7 +2,7 @@ { "inputs": [ { - "internalType": "contract IExecPocoDelegate", + "internalType": "address", "name": "_proxy", "type": "address" }, @@ -195,7 +195,7 @@ }, { "inputs": [], - "name": "FailedInnerCall", + "name": "FailedCall", "type": "error" }, { @@ -2007,11 +2007,6 @@ "internalType": "string", "name": "iexecResultStorageProvider_", "type": "string" - }, - { - "internalType": "string", - "name": "iexecResultStorageProxy_", - "type": "string" } ], "name": "updateEnv", diff --git a/packages/subgraph/config/env.ts b/packages/subgraph/config/env.ts new file mode 100644 index 000000000..c5b53f121 --- /dev/null +++ b/packages/subgraph/config/env.ts @@ -0,0 +1,25 @@ +import 'dotenv/config'; +import { z } from 'zod'; + +const envSchema = z.object({ + NETWORK_NAME: z.string().min(1, 'NETWORK_NAME is required').default('bellecour'), + + GRAPHNODE_URL: z + .string() + .url('GRAPHNODE_URL must be a valid URL') + .default('http://localhost:8020'), + + IPFS_URL: z.string().url('IPFS_URL must be a valid URL').default('http://localhost:5001'), + + VERSION_LABEL: z.string().min(1, 'VERSION_LABEL is required').default('bellecour/poco-v5'), + + START_BLOCK: z + .string() + .transform((val) => parseInt(val, 10)) + .refine((val) => !isNaN(val) && val >= 0, { + message: 'START_BLOCK must be a valid non-negative integer', + }) + .or(z.undefined()), +}); + +export const env = envSchema.parse(process.env); diff --git a/packages/subgraph/deployer.Dockerfile b/packages/subgraph/deployer.Dockerfile index 3c269024b..31d647aa2 100644 --- a/packages/subgraph/deployer.Dockerfile +++ b/packages/subgraph/deployer.Dockerfile @@ -1,4 +1,4 @@ -FROM node:18.19 +FROM node:20.18 RUN mkdir /app @@ -8,4 +8,4 @@ WORKDIR /app/packages/subgraph RUN npm ci -ENTRYPOINT [ "npm", "run", "all" ] \ No newline at end of file +ENTRYPOINT [ "npm", "run", "all" ] diff --git a/packages/subgraph/networks.json b/packages/subgraph/networks.json new file mode 100644 index 000000000..7e69d5538 --- /dev/null +++ b/packages/subgraph/networks.json @@ -0,0 +1,68 @@ +{ + "fuji": { + "DataProtector": { + "address": "0x2296daeDD3090750a80fFB2D0147669984909ED2", + "startBlock": 39768073 + }, + "DatasetRegistry": { + "address": "0x3441A0C9FE488c51fcABa2bAAA048720f4D4F72D", + "startBlock": 39768073 + }, + "DataProtectorSharing": { + "address": "0x0000000000000000000000000000000000000000", + "startBlock": 0 + }, + "AppRegistry": { + "address": "0x4a6531ce5150ee716b2d93865D0fbB9ce5492D17", + "startBlock": 0 + }, + "AddOnlyAppWhitelistRegistry": { + "address": "0x0000000000000000000000000000000000000000", + "startBlock": 0 + } + }, + "arbitrum-sepolia": { + "DataProtector": { + "address": "0x2296daeDD3090750a80fFB2D0147669984909ED2", + "startBlock": 145960686 + }, + "DatasetRegistry": { + "address": "0x3441A0C9FE488c51fcABa2bAAA048720f4D4F72D", + "startBlock": 145960686 + }, + "DataProtectorSharing": { + "address": "0x2485Ed90d4566516298B7D01462df8d1A41E13AE", + "startBlock": 145960686 + }, + "AppRegistry": { + "address": "0x4a6531ce5150ee716b2d93865D0fbB9ce5492D17", + "startBlock": 145960686 + }, + "AddOnlyAppWhitelistRegistry": { + "address": "0x9902e2F89DCC4dcCb75805096Ead2e58Fc389b7D", + "startBlock": 145960686 + } + }, + "bellecour": { + "DataProtector": { + "address": "0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59", + "startBlock": 25455501 + }, + "DatasetRegistry": { + "address": "0x0000000000000000000000000000000000000000", + "startBlock": 25455501 + }, + "DataProtectorSharing": { + "address": "0x1390c3c6a545198809F1C7c5Dd2600ef74D60925", + "startBlock": 28566236 + }, + "AppRegistry": { + "address": "0x0000000000000000000000000000000000000000", + "startBlock": 28566236 + }, + "AddOnlyAppWhitelistRegistry": { + "address": "0x498D324F711b8998Be81818742e268dEE30347c6", + "startBlock": 28566234 + } + } +} diff --git a/packages/subgraph/package-lock.json b/packages/subgraph/package-lock.json index e6340b96d..9a3787419 100644 --- a/packages/subgraph/package-lock.json +++ b/packages/subgraph/package-lock.json @@ -9,718 +9,1215 @@ "version": "3.0.0", "license": "UNLICENSED", "dependencies": { - "@graphprotocol/graph-cli": "^0.70.0", - "@graphprotocol/graph-ts": "^0.35.0", + "@graphprotocol/graph-cli": "^0.96.0", + "@graphprotocol/graph-ts": "0.35.1", "@iexec/dataprotector-environments": "file:../../environments", "@iexec/poco": "^5.3.0", "matchstick-as": "^0.6.0" }, "devDependencies": { - "prettier": "^3.2.5" + "dotenv": "^16.5.0", + "dotenv-cli": "^8.0.0", + "ethers": "^6.14.1", + "prettier": "^3.2.5", + "tsx": "^4.19.4", + "zod": "^3.24.3" } }, "../../environments": { "name": "@iexec/dataprotector-environments" }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "node_modules/@chainsafe/is-ip": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.1.0.tgz", + "integrity": "sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w==", + "license": "MIT" + }, + "node_modules/@chainsafe/netmask": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", + "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "@chainsafe/is-ip": "^2.0.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=0.8.0" + "node": ">=18" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" ], - "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.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" + "engines": { + "node": ">=18" } }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@fastify/busboy": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz", + "integrity": "sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==", + "license": "MIT" + }, + "node_modules/@float-capital/float-subgraph-uncrashable": { + "version": "0.0.0-internal-testing.5", + "resolved": "https://registry.npmjs.org/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz", + "integrity": "sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA==", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@rescript/std": "9.0.0", + "graphql": "^16.6.0", + "graphql-import-node": "^0.0.5", + "js-yaml": "^4.1.0" + }, + "bin": { + "uncrashable": "bin/uncrashable" } }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "node_modules/@graphprotocol/graph-cli": { + "version": "0.96.0", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.96.0.tgz", + "integrity": "sha512-zjVMtzoipxj5tBEAXFBVAIHT6kkxMYauXHX00/IoTu3pE26hdt4ogV1vbfBai/TnPkQCDR86vJiN0XqPfc+7sw==", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@float-capital/float-subgraph-uncrashable": "0.0.0-internal-testing.5", + "@oclif/core": "4.2.6", + "@oclif/plugin-autocomplete": "^3.2.11", + "@oclif/plugin-not-found": "^3.2.29", + "@oclif/plugin-warn-if-update-available": "^3.1.24", + "@pinax/graph-networks-registry": "^0.6.5", + "@whatwg-node/fetch": "^0.10.1", + "assemblyscript": "0.19.23", + "chokidar": "4.0.3", + "debug": "4.4.0", + "docker-compose": "1.1.0", + "fs-extra": "11.3.0", + "glob": "11.0.1", + "gluegun": "5.2.0", + "graphql": "16.10.0", + "immutable": "5.0.3", + "jayson": "4.1.3", + "js-yaml": "4.1.0", + "kubo-rpc-client": "^5.0.2", + "open": "10.1.0", + "prettier": "3.4.2", + "semver": "7.7.1", + "tmp-promise": "3.0.3", + "undici": "7.3.0", + "web3-eth-abi": "4.4.1", + "yaml": "2.7.0" + }, + "bin": { + "graph": "bin/run.js" + }, + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/@graphprotocol/graph-ts": { + "version": "0.35.1", + "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.35.1.tgz", + "integrity": "sha512-74CfuQmf7JI76/XCC34FTkMMKeaf+3Pn0FIV3m9KNeaOJ+OI3CvjMIVRhOZdKcJxsFCBGaCCl0eQjh47xTjxKA==", + "dependencies": { + "assemblyscript": "0.19.10" + } + }, + "node_modules/@graphprotocol/graph-ts/node_modules/assemblyscript": { + "version": "0.19.10", + "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.10.tgz", + "integrity": "sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg==", + "dependencies": { + "binaryen": "101.0.0-nightly.20210723", + "long": "^4.0.0" + }, + "bin": { + "asc": "bin/asc", + "asinit": "bin/asinit" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/assemblyscript" + } + }, + "node_modules/@graphprotocol/graph-ts/node_modules/binaryen": { + "version": "101.0.0-nightly.20210723", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz", + "integrity": "sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==", + "bin": { + "wasm-opt": "bin/wasm-opt" + } + }, + "node_modules/@graphprotocol/graph-ts/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/@iexec/dataprotector-environments": { + "resolved": "../../environments", + "link": true + }, + "node_modules/@iexec/erlc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@iexec/erlc/-/erlc-1.0.0.tgz", + "integrity": "sha512-DkgdBbTnHuqryWNX+Epi3xcTOwQOuX+gMwVEiLZqHc0rgjIxtzvvmYJ9U8PXaJJNjIr07MHt7BMclEz9qQTIXg==", + "dependencies": { + "@openzeppelin/contracts": "^3.3.0" + } + }, + "node_modules/@iexec/interface": { + "version": "3.0.35-8", + "resolved": "https://registry.npmjs.org/@iexec/interface/-/interface-3.0.35-8.tgz", + "integrity": "sha512-JkO9bpfpTBCOtJz/TEPzFTLlgamv7fll8RUpwC+8P6UWlGGwCe/IvgAeUZzIJ/syXaAhC0KZ7/03BEiee3f8fg==" + }, + "node_modules/@iexec/poco": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@iexec/poco/-/poco-5.3.0.tgz", + "integrity": "sha512-CO2b6Gv0w9dSgUeIHMzkViCG6UYn8MclZzdNI3hiOqgWFvr+YTTwLW/JSPEWu6Xr1wHUTXG9wFcmNgh2oO2sMA==", + "dependencies": { + "@iexec/erlc": "1.0.0", + "@iexec/interface": "3.0.35-8", + "@iexec/solidity": "0.1.0-legacy", + "@openzeppelin/contracts": "3.3.0", + "@uniswap/v2-periphery": "1.1.0-beta.0", + "rlc-faucet-contract": "1.0.9" + } + }, + "node_modules/@iexec/solidity": { + "version": "0.1.0-legacy", + "resolved": "https://registry.npmjs.org/@iexec/solidity/-/solidity-0.1.0-legacy.tgz", + "integrity": "sha512-q5jsNoyouZ1hFWRFQIfDexDPdcf5fH4Hbfb83aKWYb/WNisyFWZJF1F6gDMLVCXFbzjZRkHhPf2Wkzomwjc6Sw==", + "dependencies": { + "@openzeppelin/contracts": "3.0.0-rc.0", + "solstruct": "0.0.13" + } + }, + "node_modules/@iexec/solidity/node_modules/@openzeppelin/contracts": { + "version": "3.0.0-rc.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.0.0-rc.0.tgz", + "integrity": "sha512-Ts7h4/5tNiRN2iiH10Mp+6CgmK/PETDHYIJ/tpUrXgGjWR51T/Dr8kxa41GeHHhmAsuo+CkcuG9L4di6qth/Mw==" + }, + "node_modules/@inquirer/checkbox": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.5.tgz", + "integrity": "sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.9.tgz", + "integrity": "sha512-NgQCnHqFTjF7Ys2fsqK2WtnA8X1kHyInyG+nMIuHowVTIgIuS10T4AznI/PvbqSpJqjCUqNBlKGh1v3bwLFL4w==", + "license": "MIT", "dependencies": { - "@ethersproject/logger": "^5.7.0" + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "node_modules/@inquirer/core": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.10.tgz", + "integrity": "sha512-roDaKeY1PYY0aCqhRmXihrHjoSW2A00pV3Ke5fTpMCkzcGF64R8e0lw3dK+eLEHwS4vB5RnW1wuQmvzoRul8Mw==", + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], + } + }, + "node_modules/@inquirer/core/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.10.tgz", + "integrity": "sha512-5GVWJ+qeI6BzR6TIInLP9SXhWCEcvgFQYmcRG6d6RIlhFjM5TyG18paTGBgRYyEouvCmzeco47x9zX9tQEofkw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.12.tgz", + "integrity": "sha512-jV8QoZE1fC0vPe6TnsOfig+qwu7Iza1pkXoUJ3SroRagrt2hxiL+RbM432YAihNR7m7XnU0HWl/WQ35RIGmXHw==", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "node_modules/@inquirer/figures": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz", + "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.9.tgz", + "integrity": "sha512-mshNG24Ij5KqsQtOZMgj5TwEjIf+F2HOESk6bjMwGWgcH5UBe8UoljwzNFHqdMbGYbgAf6v2wU/X9CAdKJzgOA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.12.tgz", + "integrity": "sha512-7HRFHxbPCA4e4jMxTQglHJwP+v/kpFsCf2szzfBHy98Wlc3L08HL76UDiA87TOdX5fwj2HMOLWqRWv9Pnn+Z5Q==", + "license": "MIT", "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "node_modules/@inquirer/password": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.12.tgz", + "integrity": "sha512-FlOB0zvuELPEbnBYiPaOdJIaDzb2PmJ7ghi/SVwIHDDSQ2K4opGBkF+5kXOg6ucrtSUQdLhVVY5tycH0j0l+0g==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.5.0.tgz", + "integrity": "sha512-tk8Bx7l5AX/CR0sVfGj3Xg6v7cYlFBkEahH+EgBB+cZib6Fc83dwerTbzj7f2+qKckjIUGsviWRI1d7lx6nqQA==", + "license": "MIT", "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.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" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" + "@inquirer/checkbox": "^4.1.5", + "@inquirer/confirm": "^5.1.9", + "@inquirer/editor": "^4.2.10", + "@inquirer/expand": "^4.0.12", + "@inquirer/input": "^4.1.9", + "@inquirer/number": "^3.0.12", + "@inquirer/password": "^4.0.12", + "@inquirer/rawlist": "^4.1.0", + "@inquirer/search": "^3.0.12", + "@inquirer/select": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.0.tgz", + "integrity": "sha512-6ob45Oh9pXmfprKqUiEeMz/tjtVTFQTgDDz1xAMKMrIvyrYjAmRbQZjMJfsictlL4phgjLhdLu27IkHNnNjB7g==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.12.tgz", + "integrity": "sha512-H/kDJA3kNlnNIjB8YsaXoQI0Qccgf0Na14K1h8ExWhNmUg2E941dyFPrZeugihEa9AZNW5NdsD/NcvUME83OPQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.0.tgz", + "integrity": "sha512-KkXQ4aSySWimpV4V/TUJWdB3tdfENZUU765GjOIZ0uPwdbGIG6jrxD4dDf1w68uP+DVtfNhr1A92B+0mbTZ8FA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz", + "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@float-capital/float-subgraph-uncrashable": { - "version": "0.0.0-internal-testing.5", - "resolved": "https://registry.npmjs.org/@float-capital/float-subgraph-uncrashable/-/float-subgraph-uncrashable-0.0.0-internal-testing.5.tgz", - "integrity": "sha512-yZ0H5e3EpAYKokX/AbtplzlvSxEJY7ZfpvQyDzyODkks0hakAAlDG6fQu1SlDJMWorY7bbq1j7fCiFeTWci6TA==", + "node_modules/@ipld/dag-cbor": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.2.2.tgz", + "integrity": "sha512-uIEOuruCqKTP50OBWwgz4Js2+LhiBQaxc57cnP71f45b1mHEAo1OCR1Zn/TbvSW/mV1x+JqhacIktkKyaYqhCw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@rescript/std": "9.0.0", - "graphql": "^16.6.0", - "graphql-import-node": "^0.0.5", - "js-yaml": "^4.1.0" + "cborg": "^4.0.0", + "multiformats": "^13.1.0" }, - "bin": { - "uncrashable": "bin/uncrashable" + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@float-capital/float-subgraph-uncrashable/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/@float-capital/float-subgraph-uncrashable/node_modules/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "node_modules/@ipld/dag-json": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.3.tgz", + "integrity": "sha512-itacv1j1hvYgLox2B42Msn70QLzcr0MEo5yGIENuw2SM/lQzq9bmBiMky+kDsIrsqqblKTXcHBZnnmK7D4a6ZQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "cborg": "^4.0.0", + "multiformats": "^13.1.0" + }, "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@float-capital/float-subgraph-uncrashable/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/@ipld/dag-pb": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.1.3.tgz", + "integrity": "sha512-ueULCaaSCcD+dQga6nKiRr+RSeVgdiYiEPKVUu5iQMNYDN+9osd0KpR3UDd9uQQ+6RWuv9L34SchfEwj7YIbOA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "argparse": "^2.0.1" + "multiformats": "^13.1.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@graphprotocol/graph-cli": { - "version": "0.70.0", - "resolved": "https://registry.npmjs.org/@graphprotocol/graph-cli/-/graph-cli-0.70.0.tgz", - "integrity": "sha512-BzwgEzC2s+2vhnLA2nJl11/pAIj8/WgmcdY1PKe1ig4nHGvD3veRY/zUBBy6TPkqkrBP9slb6G05lTlGFzyB9A==", - "dependencies": { - "@float-capital/float-subgraph-uncrashable": "^0.0.0-alpha.4", - "@oclif/core": "2.8.6", - "@oclif/plugin-autocomplete": "^2.3.6", - "@oclif/plugin-not-found": "^2.4.0", - "@whatwg-node/fetch": "^0.8.4", - "assemblyscript": "0.19.23", - "binary-install-raw": "0.0.13", - "chalk": "3.0.0", - "chokidar": "3.5.3", - "debug": "4.3.4", - "docker-compose": "0.23.19", - "dockerode": "2.5.8", - "fs-extra": "9.1.0", - "glob": "9.3.5", - "gluegun": "5.1.6", - "graphql": "15.5.0", - "immutable": "4.2.1", - "ipfs-http-client": "55.0.0", - "jayson": "4.0.0", - "js-yaml": "3.14.1", - "prettier": "3.0.3", - "semver": "7.4.0", - "sync-request": "6.1.0", - "tmp-promise": "3.0.3", - "web3-eth-abi": "1.7.0", - "which": "2.0.2", - "yaml": "1.10.2" - }, - "bin": { - "graph": "bin/run" + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/@graphprotocol/graph-cli/node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", - "bin": { - "prettier": "bin/prettier.cjs" - }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=12" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@graphprotocol/graph-ts": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@graphprotocol/graph-ts/-/graph-ts-0.35.0.tgz", - "integrity": "sha512-dM+I/e/WeBa8Q3m4ZLFfJjKBS9YwV+DLggWi8oEIGmnhPAZ298QB6H4hquvxqaOTSXJ2j9tPsw3xSmbRLwk39A==", - "dependencies": { - "assemblyscript": "0.19.10" - } + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, - "node_modules/@graphprotocol/graph-ts/node_modules/assemblyscript": { - "version": "0.19.10", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.10.tgz", - "integrity": "sha512-HavcUBXB3mBTRGJcpvaQjmnmaqKHBGREjSPNsIvnAk2f9dj78y4BkMaSSdvBQYWcDDzsHQjyUC8stICFkD1Odg==", + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { - "binaryen": "101.0.0-nightly.20210723", - "long": "^4.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, - "bin": { - "asc": "bin/asc", - "asinit": "bin/asinit" + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/assemblyscript" - } - }, - "node_modules/@graphprotocol/graph-ts/node_modules/binaryen": { - "version": "101.0.0-nightly.20210723", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz", - "integrity": "sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==", - "bin": { - "wasm-opt": "bin/wasm-opt" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@graphprotocol/graph-ts/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/@iexec/dataprotector-environments": { - "resolved": "../../environments", - "link": true - }, - "node_modules/@iexec/erlc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@iexec/erlc/-/erlc-1.0.0.tgz", - "integrity": "sha512-DkgdBbTnHuqryWNX+Epi3xcTOwQOuX+gMwVEiLZqHc0rgjIxtzvvmYJ9U8PXaJJNjIr07MHt7BMclEz9qQTIXg==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { - "@openzeppelin/contracts": "^3.3.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@iexec/interface": { - "version": "3.0.35-8", - "resolved": "https://registry.npmjs.org/@iexec/interface/-/interface-3.0.35-8.tgz", - "integrity": "sha512-JkO9bpfpTBCOtJz/TEPzFTLlgamv7fll8RUpwC+8P6UWlGGwCe/IvgAeUZzIJ/syXaAhC0KZ7/03BEiee3f8fg==" + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" }, - "node_modules/@iexec/poco": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@iexec/poco/-/poco-5.3.0.tgz", - "integrity": "sha512-CO2b6Gv0w9dSgUeIHMzkViCG6UYn8MclZzdNI3hiOqgWFvr+YTTwLW/JSPEWu6Xr1wHUTXG9wFcmNgh2oO2sMA==", + "node_modules/@libp2p/crypto": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.1.tgz", + "integrity": "sha512-feByJ5ypBfl7Dp+jLBmieHDY/249hqCiDn8u6DNSZrpDhefn2l/NE03fS2mW6pLOnY3QIqB372TfLtx3/EPU+w==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.9.0", + "@noble/curves": "^1.7.0", + "@noble/hashes": "^1.6.1", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/interface": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.9.0.tgz", + "integrity": "sha512-L/0Z5H0mjaECA0jkZG+OJmEhB/OIJ07gzZYljU7C19XjL3dSkBvhA9il+G3FpHyHgqAOVGuQU5qkbv2Edj8FIA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^12.3.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/logger": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.1.15.tgz", + "integrity": "sha512-0+rOHEXXDNZvsb9p04jVAFQB0WcvMxFfqzSe271/tg4yVlPF5H99l5BwOqeb+EYhHV1lTk+zrJdPK9easHr1fQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.9.0", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.1", + "weald": "^1.0.4" + } + }, + "node_modules/@libp2p/peer-id": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.1.2.tgz", + "integrity": "sha512-K4tjLi+OIHJSeMMqw28xnBxDfklfWCsR423Jm6GxZ5avIj2xm7WIq5oUhCntGGDIQWW/8qdf8v3tYK36JxwLOA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@iexec/erlc": "1.0.0", - "@iexec/interface": "3.0.35-8", - "@iexec/solidity": "0.1.0-legacy", - "@openzeppelin/contracts": "3.3.0", - "@uniswap/v2-periphery": "1.1.0-beta.0", - "rlc-faucet-contract": "1.0.9" + "@libp2p/crypto": "^5.1.1", + "@libp2p/interface": "^2.9.0", + "multiformats": "^13.3.1", + "uint8arrays": "^5.1.0" } }, - "node_modules/@iexec/solidity": { - "version": "0.1.0-legacy", - "resolved": "https://registry.npmjs.org/@iexec/solidity/-/solidity-0.1.0-legacy.tgz", - "integrity": "sha512-q5jsNoyouZ1hFWRFQIfDexDPdcf5fH4Hbfb83aKWYb/WNisyFWZJF1F6gDMLVCXFbzjZRkHhPf2Wkzomwjc6Sw==", + "node_modules/@multiformats/dns": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.6.tgz", + "integrity": "sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@openzeppelin/contracts": "3.0.0-rc.0", - "solstruct": "0.0.13" + "@types/dns-packet": "^5.6.5", + "buffer": "^6.0.3", + "dns-packet": "^5.6.1", + "hashlru": "^2.3.0", + "p-queue": "^8.0.1", + "progress-events": "^1.0.0", + "uint8arrays": "^5.0.2" } }, - "node_modules/@iexec/solidity/node_modules/@openzeppelin/contracts": { - "version": "3.0.0-rc.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.0.0-rc.0.tgz", - "integrity": "sha512-Ts7h4/5tNiRN2iiH10Mp+6CgmK/PETDHYIJ/tpUrXgGjWR51T/Dr8kxa41GeHHhmAsuo+CkcuG9L4di6qth/Mw==" - }, - "node_modules/@ipld/dag-cbor": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz", - "integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==", + "node_modules/@multiformats/multiaddr": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.4.0.tgz", + "integrity": "sha512-FL7yBTLijJ5JkO044BGb2msf+uJLrwpD6jD6TkXlbjA9N12+18HT40jvd4o5vL4LOJMc86dPX6tGtk/uI9kYKg==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "cborg": "^1.6.0", - "multiformats": "^9.5.4" + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@multiformats/dns": "^1.0.3", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@ipld/dag-json": { - "version": "8.0.11", - "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-8.0.11.tgz", - "integrity": "sha512-Pea7JXeYHTWXRTIhBqBlhw7G53PJ7yta3G/sizGEZyzdeEwhZRr0od5IQ0r2ZxOt1Do+2czddjeEPp+YTxDwCA==", + "node_modules/@multiformats/multiaddr-to-uri": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-11.0.0.tgz", + "integrity": "sha512-9RNmlIGwZbBLsHekT50dbt4o4u8Iciw9kGjv+WHiGxQdsJ6xKKjU1+C0Vbas6RilMbaVOAOnEyfNcXbUmTkLxQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "cborg": "^1.5.4", - "multiformats": "^9.5.4" + "@multiformats/multiaddr": "^12.3.0" } }, - "node_modules/@ipld/dag-pb": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-2.1.18.tgz", - "integrity": "sha512-ZBnf2fuX9y3KccADURG5vb9FaOeMjFkCrNysB0PtftME/4iCTjxfaLoNq/IAh5fTqUOMXvryN6Jyka4ZGuMLIg==", + "node_modules/@noble/curves": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", + "license": "MIT", "dependencies": { - "multiformats": "^9.5.4" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "@noble/hashes": "1.8.0" + }, "engines": { - "node": ">=6.0.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -733,6 +1230,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -741,6 +1239,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -750,222 +1249,79 @@ } }, "node_modules/@oclif/core": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.8.6.tgz", - "integrity": "sha512-1QlPaHMhOORySCXkQyzjsIsy2GYTilOw3LkjeHkCgsPJQjAT4IclVytJusWktPbYNys9O+O4V23J44yomQvnBQ==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-4.2.6.tgz", + "integrity": "sha512-agk1Tlm7qMemWx+qq5aNgkYwX2JCkoVP4M0ruFveJrarmdUPbKZTMW1j/eg8lNKZh1sp68ytZyKhYXYEfRPcww==", + "license": "MIT", "dependencies": { - "@types/cli-progress": "^3.11.0", "ansi-escapes": "^4.3.2", - "ansi-styles": "^4.3.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.2", + "ansis": "^3.10.0", "clean-stack": "^3.0.1", - "cli-progress": "^3.12.0", - "debug": "^4.3.4", - "ejs": "^3.1.8", - "fs-extra": "^9.1.0", + "cli-spinners": "^2.9.2", + "debug": "^4.4.0", + "ejs": "^3.1.10", "get-package-type": "^0.1.0", "globby": "^11.1.0", - "hyperlinker": "^1.0.0", "indent-string": "^4.0.0", "is-wsl": "^2.2.0", - "js-yaml": "^3.14.1", - "natural-orderby": "^2.0.3", - "object-treeify": "^1.1.33", - "password-prompt": "^1.1.2", - "semver": "^7.3.7", + "lilconfig": "^3.1.3", + "minimatch": "^9.0.5", + "semver": "^7.6.3", "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "supports-hyperlinks": "^2.2.0", - "ts-node": "^10.9.1", - "tslib": "^2.5.0", + "supports-color": "^8", "widest-line": "^3.1.0", "wordwrap": "^1.0.0", "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@oclif/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@oclif/core/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, "node_modules/@oclif/plugin-autocomplete": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-2.3.10.tgz", - "integrity": "sha512-Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg==", - "dependencies": { - "@oclif/core": "^2.15.0", - "chalk": "^4.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/@oclif/core": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.16.0.tgz", - "integrity": "sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==", - "dependencies": { - "@types/cli-progress": "^3.11.0", - "ansi-escapes": "^4.3.2", - "ansi-styles": "^4.3.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.2", - "clean-stack": "^3.0.1", - "cli-progress": "^3.12.0", - "debug": "^4.3.4", - "ejs": "^3.1.8", - "get-package-type": "^0.1.0", - "globby": "^11.1.0", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.14.1", - "natural-orderby": "^2.0.3", - "object-treeify": "^1.1.33", - "password-prompt": "^1.1.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "supports-hyperlinks": "^2.2.0", - "ts-node": "^10.9.1", - "tslib": "^2.5.0", - "widest-line": "^3.1.0", - "wordwrap": "^1.0.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-3.2.27.tgz", + "integrity": "sha512-Aywx0Vw36k0fQVBa2uLb8FKblGAP7ly1cQ5bdKqL4BmhJnUasy37tpyIDMUor93asOS+kKFQg+52pOxQgXHi1A==", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@oclif/core": "^4", + "ansis": "^3.16.0", + "debug": "^4.4.0", + "ejs": "^3.1.10" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, "node_modules/@oclif/plugin-not-found": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.4.3.tgz", - "integrity": "sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==", - "dependencies": { - "@oclif/core": "^2.15.0", - "chalk": "^4", + "version": "3.2.50", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.50.tgz", + "integrity": "sha512-ZjGns73P00bYWkan6BWtTyjWWWHPq0d+ehMlgPJU25DDpK6FIv0OvHloYjfK/Zmo973puKxru7UQLdjCcNUdTA==", + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^7.5.0", + "@oclif/core": "^4", + "ansis": "^3.17.0", "fast-levenshtein": "^3.0.0" }, "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/plugin-not-found/node_modules/@oclif/core": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-2.16.0.tgz", - "integrity": "sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==", - "dependencies": { - "@types/cli-progress": "^3.11.0", - "ansi-escapes": "^4.3.2", - "ansi-styles": "^4.3.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.2", - "clean-stack": "^3.0.1", - "cli-progress": "^3.12.0", - "debug": "^4.3.4", - "ejs": "^3.1.8", - "get-package-type": "^0.1.0", - "globby": "^11.1.0", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.14.1", - "natural-orderby": "^2.0.3", - "object-treeify": "^1.1.33", - "password-prompt": "^1.1.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "supports-hyperlinks": "^2.2.0", - "ts-node": "^10.9.1", - "tslib": "^2.5.0", - "widest-line": "^3.1.0", - "wordwrap": "^1.0.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@oclif/plugin-not-found/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18.0.0" } }, - "node_modules/@oclif/plugin-not-found/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@oclif/plugin-warn-if-update-available": { + "version": "3.1.38", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.38.tgz", + "integrity": "sha512-lwYtVXdQaBJV94DglPu140Bc6NmmysHhX5PZtdxeNcUG2BgSX/Sre7oCzMEgmuhe4Lu2jDviMxTX81a8wv6v1w==", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@oclif/core": "^4", + "ansis": "^3.17.0", + "debug": "^4.4.0", + "http-call": "^5.2.2", + "lodash": "^4.17.21", + "registry-auth-token": "^5.1.0" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, "node_modules/@openzeppelin/contracts": { @@ -973,209 +1329,168 @@ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.3.0.tgz", "integrity": "sha512-AemZEsQYtUp1WRkcmZm1div5ORfTpLquLaziCIrSagjxyKdmObxuaY1yjQ5SHFMctR8rLwp706NXTbiIRJg7pw==" }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", - "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", - "dependencies": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dependencies": { - "tslib": "^2.0.0" - }, + "node_modules/@pinax/graph-networks-registry": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@pinax/graph-networks-registry/-/graph-networks-registry-0.6.7.tgz", + "integrity": "sha512-xogeCEZ50XRMxpBwE3TZjJ8RCO8Guv39gDRrrKtlpDEDEMLm0MzD3A0SQObgj7aF7qTZNRTWzsuvQdxgzw25wQ==", + "license": "MIT" + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=12.22.0" } }, - "node_modules/@peculiar/webcrypto": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", - "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.6", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.2", - "tslib": "^2.5.0", - "webcrypto-core": "^1.7.7" + "graceful-fs": "4.2.10" }, "engines": { - "node": ">=10.12.0" + "node": ">=12.22.0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, "node_modules/@rescript/std": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@rescript/std/-/std-9.0.0.tgz", "integrity": "sha512-zGzFsgtZ44mgL4Xef2gOy1hrRVdrs9mcxCOOKZrIPsmbZW14yTkaF591GXxpQvjXiHtgZ/iA9qLyWH6oSReIxQ==" }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + "node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@types/cli-progress": { - "version": "3.11.5", - "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.5.tgz", - "integrity": "sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==", + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", + "node_modules/@types/dns-packet": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.6.5.tgz", + "integrity": "sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, "node_modules/@types/node": { - "version": "18.19.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.24.tgz", - "integrity": "sha512-eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw==", + "version": "22.15.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", + "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.21.0" } }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dependencies": { - "@types/node": "*" - } + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -1208,69 +1523,86 @@ "node": ">=10" } }, - "node_modules/@whatwg-node/events": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", - "integrity": "sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==" + "node_modules/@whatwg-node/disposablestack": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz", + "integrity": "sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==", + "license": "MIT", + "dependencies": { + "@whatwg-node/promise-helpers": "^1.0.0", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" + } }, "node_modules/@whatwg-node/fetch": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.4.tgz", - "integrity": "sha512-xK0NGWt49P+JmsdfN+8zmHzZoscENrV0KL1SyyncvWkc6vbFmSqGSpvItEBuhj1PAfTGFEUpyiRMCsut2hLy/Q==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.10.6.tgz", + "integrity": "sha512-6uzhO2aQ757p3bSHcemA8C4pqEXuyBqyGAM7cYpO0c6/igRMV9As9XL0W12h5EPYMclgr7FgjmbVQBoWEdJ/yA==", + "license": "MIT", "dependencies": { - "@peculiar/webcrypto": "^1.4.0", - "@whatwg-node/node-fetch": "^0.3.3", - "busboy": "^1.6.0", - "urlpattern-polyfill": "^6.0.2", - "web-streams-polyfill": "^3.2.1" + "@whatwg-node/node-fetch": "^0.7.18", + "urlpattern-polyfill": "^10.0.0" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@whatwg-node/node-fetch": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.4.tgz", - "integrity": "sha512-gP1MN6DiHVbhkLWH1eCELhE2ZtLRxb+HRKu4eYze1Tijxz0uT1T2kk3lseZp94txzxCfbxGFU0jsWkxNdH3EXA==", + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.7.18.tgz", + "integrity": "sha512-IxKdVWfZYasGiyxBcsROxq6FmDQu3MNNiOYJ/yqLKhe+Qq27IIWsK7ItbjS2M9L5aM5JxjWkIS7JDh7wnsn+CQ==", + "license": "MIT", "dependencies": { - "@whatwg-node/events": "^0.0.2", - "busboy": "^1.6.0", - "fast-querystring": "^1.1.1", - "fast-url-parser": "^1.1.3", - "tslib": "^2.3.1" + "@fastify/busboy": "^3.1.1", + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/promise-helpers": "^1.3.1", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "node_modules/@whatwg-node/promise-helpers": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/promise-helpers/-/promise-helpers-1.3.1.tgz", + "integrity": "sha512-D+OwTEunoQhVHVToD80dPhfz9xgPLqJyEA3F5jCRM14A2u8tBBQVdZekqfqx6ZAfZ+POT4Hb0dn601UKMsvADw==", + "license": "MIT", "dependencies": { - "event-target-shim": "^5.0.0" + "tslib": "^2.6.3" }, "engines": { - "node": ">=6.5" + "node": ">=16.0.0" } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "bin": { - "acorn": "bin/acorn" + "node_modules/abitype": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.7.1.tgz", + "integrity": "sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=4.9.4", + "zod": "^3 >=3.19.1" }, - "engines": { - "node": ">=0.4.0" + "peerDependenciesMeta": { + "zod": { + "optional": true + } } }, - "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "engines": { - "node": ">=0.4.0" - } + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "dev": true, + "license": "MIT" }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1279,6 +1611,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1290,17 +1623,22 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1311,36 +1649,30 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==" - }, - "node_modules/any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "license": "ISC", + "engines": { + "node": ">=14" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, + "node_modules/any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==", + "license": "Apache-2.0 OR MIT", "engines": { - "node": ">= 8" + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/apisauce": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/apisauce/-/apisauce-2.1.6.tgz", "integrity": "sha512-MdxR391op/FucS2YQRfB/NMRyCnHEPDd4h17LRIuVYi0BpGmMhpxc0shbOpfs5ahABuBEffNCGal5EcsydbBWg==", + "license": "MIT", "dependencies": { "axios": "^0.21.4" } @@ -1348,47 +1680,24 @@ "node_modules/app-module-path": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "license": "BSD-2-Clause" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/assemblyscript": { "version": "0.19.23", "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.19.23.tgz", @@ -1407,36 +1716,32 @@ "url": "https://opencollective.com/assemblyscript" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { - "node": ">= 4.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "license": "MIT", "dependencies": { "follow-redirects": "^1.14.0" } @@ -1446,14 +1751,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1471,28 +1768,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/binary-install-raw": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/binary-install-raw/-/binary-install-raw-0.0.13.tgz", - "integrity": "sha512-v7ms6N/H7iciuk6QInon3/n2mu7oRX+6knJ9xFPsJ3rQePgAqcR3CRTwUheFd8SLbiq4LL7Z4G/44L9zscdt9A==", - "dependencies": { - "axios": "^0.21.1", - "rimraf": "^3.0.2", - "tar": "^6.1.0" - }, - "engines": { - "node": ">=10" - } + ], + "license": "MIT" }, "node_modules/binaryen": { "version": "102.0.0-nightly.20211028", @@ -1502,92 +1779,41 @@ "wasm-opt": "bin/wasm-opt" } }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, "node_modules/blob-to-it": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", - "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-2.0.8.tgz", + "integrity": "sha512-1MKnG2ul1DtSgrxFHqhdJgIJODJbNj7alOLSJRD7O9S2iCJ72ZWU6j8+CVpjIdLueqwpWhy4ouvpanYlFLqkRw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "browser-readablestream-to-it": "^1.0.3" + "browser-readablestream-to-it": "^2.0.0" } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, "node_modules/browser-readablestream-to-it": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", - "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.8.tgz", + "integrity": "sha512-+aDq+8QoTxIklc9m21oVg96Bm18EpeVke4/8vWPNu+9Ktd+G4PYavitE4gv/pjIndw1q+vxE/Rcnv1zYHrEQbQ==", + "license": "Apache-2.0 OR MIT" }, "node_modules/buffer": { "version": "6.0.3", @@ -1607,154 +1833,151 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", "dependencies": { - "streamsearch": "^1.1.0" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { - "node": ">=10.16.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/cborg": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.1.tgz", - "integrity": "sha512-et6Qm8MOUY2kCWa5GKk2MlBVoPjHv0hQBmlzI/Z7+5V3VJCeIkGehIB3vWknNsm2kOkAIs6wEKJFJo8luWQQ/w==", + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.2.10.tgz", + "integrity": "sha512-ZVA0xrVn8uBfDJYgfKKZzB/93z/Uiz7YtRdBPsZi/gyHNyqFdHMLHURVEk9dejOHepaX0zhcMyNva2/vF972SA==", + "license": "Apache-2.0", "bin": { - "cborg": "cli.js" + "cborg": "lib/bin.js" } }, "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/clean-stack": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", + "license": "MIT", "dependencies": { "escape-string-regexp": "4.0.0" }, @@ -1769,6 +1992,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -1776,21 +2000,11 @@ "node": ">=8" } }, - "node_modules/cli-progress": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", - "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", - "dependencies": { - "string-width": "^4.2.3" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/cli-spinners": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -1802,6 +2016,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", + "license": "MIT", "dependencies": { "object-assign": "^4.1.0", "string-width": "^4.2.0" @@ -1813,10 +2028,20 @@ "colors": "^1.1.2" } }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", "engines": { "node": ">=0.8" } @@ -1825,6 +2050,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1835,60 +2061,53 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "license": "MIT", "engines": { "node": ">=0.1.90" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, "node_modules/cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -1900,40 +2119,20 @@ "node": ">=10" } }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1943,12 +2142,29 @@ "node": ">= 8" } }, + "node_modules/dag-jose": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-5.1.1.tgz", + "integrity": "sha512-9alfZ8Wh1XOOMel8bMpDqWsDT72ojFQCJPtwZSev9qh4f8GoCV9qrJW8jcOUhcstO8Kfm09FHGo//jqiZq3z9w==", + "license": "(Apache-2.0 OR MIT)", + "dependencies": { + "@ipld/dag-cbor": "^9.0.0", + "multiformats": "~13.1.3" + } + }, + "node_modules/dag-jose/node_modules/multiformats": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.3.tgz", + "integrity": "sha512-CZPi9lFZCM/+7oRolWYsvalsyWQGFo+GpdaTmjxXXomC+nP/W1Rnxb9sUgjvmNmRZ5bOPqRAl4nuK+Ydw/4tGw==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1959,10 +2175,39 @@ } } }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", "dependencies": { "clone": "^1.0.2" }, @@ -1970,37 +2215,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { - "node": ">=0.3.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -2008,87 +2268,94 @@ "node": ">=8" } }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, "node_modules/docker-compose": { - "version": "0.23.19", - "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.23.19.tgz", - "integrity": "sha512-v5vNLIdUqwj4my80wxFDkNH+4S85zsRuH29SO7dCWVWPCMt/ohZBsGN6g6KXWifT0pzQ7uOxqEKCYCDPJ8Vz4g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-1.1.0.tgz", + "integrity": "sha512-VrkQJNafPQ5d6bGULW0P6KqcxSkv3ZU5Wn2wQA19oB71o7+55vQ9ogFe2MMeNbK+jc9rrKVy280DnHO5JLMWOQ==", + "license": "MIT", "dependencies": { - "yaml": "^1.10.2" + "yaml": "^2.2.2" }, "engines": { "node": ">= 6.0.0" } }, - "node_modules/docker-modem": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz", - "integrity": "sha512-lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==", - "dependencies": { - "debug": "^3.2.6", - "JSONStream": "1.3.2", - "readable-stream": "~1.0.26-4", - "split-ca": "^1.0.0" - }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, - "node_modules/docker-modem/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/dotenv-cli": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-8.0.0.tgz", + "integrity": "sha512-aLqYbK7xKOiTMIRf1lDPbI+Y+Ip/wo5k3eyp6ePysVaSqbyxjyK3dK35BTxG+rmd7djf5q2UPs4noPNH+cj0Qw==", + "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "cross-spawn": "^7.0.6", + "dotenv": "^16.3.0", + "dotenv-expand": "^10.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "dotenv": "cli.js" } }, - "node_modules/docker-modem/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/docker-modem/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" } }, - "node_modules/docker-modem/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/dockerode": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz", - "integrity": "sha512-+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { - "concat-stream": "~1.6.2", - "docker-modem": "^1.0.8", - "tar-fs": "~1.16.3" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, "node_modules/ejs": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -2103,6 +2370,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", + "license": "MIT", "dependencies": { "encoding": "^0.1.13" }, @@ -2110,50 +2378,38 @@ "node": ">=6" } }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.2" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "once": "^1.4.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1" }, @@ -2164,33 +2420,109 @@ "node_modules/err-code": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", "dependencies": { "es6-promise": "^4.0.3" } }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -2198,102 +2530,154 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" } }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "node_modules/ethereum-cryptography/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", "dependencies": { - "js-sha3": "^0.8.0" + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "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.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, + "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==", + "node_modules/ethers": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.14.1.tgz", + "integrity": "sha512-JnFiPFi3sK2Z6y7jZ3qrafDMwiXmU+6cNZ0M+kPq+mTy9skqEzwqAdFW3nb/em2xjlIVXX6Lz8ID6i3LmS4+fQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" + "@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" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=14.0.0" } }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" + "node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/ethers/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dev": true, + "license": "MIT", "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "undici-types": "~6.19.2" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/ethers/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "license": "MIT", + "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 + } } }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -2312,6 +2696,38 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", @@ -2320,26 +2736,23 @@ "node": "> 0.1.90" } }, - "node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" - }, "node_modules/fast-fifo": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.2.0.tgz", - "integrity": "sha512-NcvQXt7Cky1cNau15FWy64IjuO8X0JijhTBBrJj1YlxlDfRkJXNaK9RFUjwpfDPzMdv7wB38jr53l9tkNLxnWg==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -2349,38 +2762,25 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "license": "MIT", "dependencies": { "fastest-levenshtein": "^1.0.7" } }, - "node_modules/fast-querystring": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.1.tgz", - "integrity": "sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==", - "dependencies": { - "fast-decode-uri-component": "^1.0.1" - } - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dependencies": { - "punycode": "^1.3.2" - } - }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -2389,6 +2789,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } @@ -2397,6 +2798,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2405,9 +2807,10 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2416,15 +2819,16 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -2434,42 +2838,56 @@ } } }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.12" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.14" } }, "node_modules/fs-jetpack": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/fs-jetpack/-/fs-jetpack-4.3.1.tgz", "integrity": "sha512-dbeOK84F6BiQzk2yqqCVwCPWTxAvVGJ3fMQc6E2wuEohS28mR6yHngbrKuVCK1KHRx/ccByDylqu4H5PCP2urQ==", + "license": "MIT", "dependencies": { "minimatch": "^3.0.2", "rimraf": "^2.6.3" @@ -2479,6 +2897,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2488,6 +2907,8 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2507,6 +2928,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2518,6 +2940,8 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -2525,28 +2949,6 @@ "rimraf": "bin.js" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2556,7 +2958,9 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2565,31 +2969,72 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-iterator": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==", + "license": "MIT" }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", "engines": { "node": ">=8.0.0" } }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 0.4" } }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -2597,18 +3042,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "node_modules/get-tsconfig": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2618,6 +3082,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2625,10 +3090,26 @@ "node": ">= 6" } }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2645,9 +3126,10 @@ } }, "node_modules/gluegun": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/gluegun/-/gluegun-5.1.6.tgz", - "integrity": "sha512-9zbi4EQWIVvSOftJWquWzr9gLX2kaDgPkNR5dYWbM53eVvCI3iKuxLlnKoHC0v4uPoq+Kr/+F569tjoFbA4DSA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/gluegun/-/gluegun-5.2.0.tgz", + "integrity": "sha512-jSUM5xUy2ztYFQANne17OUm/oAd7qSX7EBksS9bQDt9UvLPqcEkeWUebmaposb8Tx7eTTD8uJVWGRe6PYSsYkg==", + "license": "MIT", "dependencies": { "apisauce": "^2.1.5", "app-module-path": "^2.2.0", @@ -2684,10 +3166,25 @@ "gluegun": "bin/gluegun" } }, + "node_modules/gluegun/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/gluegun/node_modules/ejs": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -2702,6 +3199,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -2713,6 +3211,7 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2723,17 +3222,31 @@ "node": ">=10" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphql": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", - "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz", + "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", + "license": "MIT", "engines": { - "node": ">= 10.x" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-import-node": { @@ -2748,123 +3261,114 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "es-define-property": "^1.0.0" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "has-symbols": "^1.0.3" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } + "node_modules/hashlru": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==", + "license": "MIT" }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "node_modules/http-call": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", + "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", + "license": "ISC", "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" + "content-type": "^1.0.4", + "debug": "^4.1.1", + "is-retry-allowed": "^1.1.0", + "is-stream": "^2.0.0", + "parse-json": "^4.0.0", + "tunnel-agent": "^0.6.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=8.0.0" } }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "node_modules/http-call/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", "dependencies": { - "@types/node": "^10.0.3" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, - "node_modules/hyperlinker": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", - "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" @@ -2887,25 +3391,29 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/immutable": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.1.tgz", - "integrity": "sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ==" + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2921,6 +3429,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -2939,161 +3448,77 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, "node_modules/interface-datastore": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-6.1.1.tgz", - "integrity": "sha512-AmCS+9CT34pp2u0QQVXjKztkuq3y5T+BIciuiHDDtDZucZD8VudosnSdUyXJV6IsRkN5jc4RFDhCk1O6Q3Gxjg==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.3.1.tgz", + "integrity": "sha512-3r0ETmHIi6HmvM5sc09QQiCD3gUfwtEM/AAChOyAd/UAKT69uk8LXfTSUBufbUIO/dU65Vj8nb9O6QjwW8vDSQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "interface-store": "^2.0.2", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" + "interface-store": "^6.0.0", + "uint8arrays": "^5.1.0" } }, "node_modules/interface-store": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", - "integrity": "sha512-rScRlhDcz6k199EkHqT8NpM87ebN89ICOzILoBHgaG36/WX50N32BnU/kpZgCGPLhARRAWUUX5/cyaIjt7Kipg==" - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ipfs-core-types": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.9.0.tgz", - "integrity": "sha512-VJ8vJSHvI1Zm7/SxsZo03T+zzpsg8pkgiIi5hfwSJlsrJ1E2v68QPlnLshGHUSYw89Oxq0IbETYl2pGTFHTWfg==", - "dependencies": { - "interface-datastore": "^6.0.2", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13" - } - }, - "node_modules/ipfs-core-utils": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.13.0.tgz", - "integrity": "sha512-HP5EafxU4/dLW3U13CFsgqVO5Ika8N4sRSIb/dTg16NjLOozMH31TXV0Grtu2ZWo1T10ahTzMvrfT5f4mhioXw==", - "dependencies": { - "any-signal": "^2.1.2", - "blob-to-it": "^1.0.1", - "browser-readablestream-to-it": "^1.0.1", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.9.0", - "ipfs-unixfs": "^6.0.3", - "ipfs-utils": "^9.0.2", - "it-all": "^1.0.4", - "it-map": "^1.0.4", - "it-peekable": "^1.0.2", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "multiformats": "^9.4.13", - "nanoid": "^3.1.23", - "parse-duration": "^1.0.0", - "timeout-abort-controller": "^2.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/ipfs-http-client": { - "version": "55.0.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-55.0.0.tgz", - "integrity": "sha512-GpvEs7C7WL9M6fN/kZbjeh4Y8YN7rY8b18tVWZnKxRsVwM25cIFrRI8CwNt3Ugin9yShieI3i9sPyzYGMrLNnQ==", - "dependencies": { - "@ipld/dag-cbor": "^7.0.0", - "@ipld/dag-json": "^8.0.1", - "@ipld/dag-pb": "^2.1.3", - "abort-controller": "^3.0.0", - "any-signal": "^2.1.2", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "ipfs-core-types": "^0.9.0", - "ipfs-core-utils": "^0.13.0", - "ipfs-utils": "^9.0.2", - "it-first": "^1.0.6", - "it-last": "^1.0.4", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.4.13", - "native-abort-controller": "^1.0.3", - "parse-duration": "^1.0.0", - "stream-to-it": "^0.2.2", - "uint8arrays": "^3.0.0" - }, - "engines": { - "node": ">=14.0.0", - "npm": ">=3.0.0" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-6.0.2.tgz", + "integrity": "sha512-KSFCXtBlNoG0hzwNa0RmhHtrdhzexp+S+UY2s0rWTBJyfdEIgn6i6Zl9otVqrcFYbYrneBT7hbmHQ8gE0C3umA==", + "license": "Apache-2.0 OR MIT" }, "node_modules/ipfs-unixfs": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-6.0.9.tgz", - "integrity": "sha512-0DQ7p0/9dRB6XCb0mVCTli33GzIzSVx5udpJuVM47tGcD+W+Bl4LsnoLswd3ggNnNEakMv1FdoFITiEnchXDqQ==", + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-11.2.1.tgz", + "integrity": "sha512-gUeeX63EFgiaMgcs0cUs2ZUPvlOeEZ38okjK8twdWGZX2jYd2rCk8k/TJ3DSRIDZ2t/aZMv6I23guxHaofZE3w==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "err-code": "^3.0.1", - "protobufjs": "^6.10.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "protons-runtime": "^5.5.0", + "uint8arraylist": "^2.4.8" } }, - "node_modules/ipfs-utils": { - "version": "9.0.14", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.14.tgz", - "integrity": "sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg==", + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", "dependencies": { - "any-signal": "^3.0.0", - "browser-readablestream-to-it": "^1.0.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-all": "^1.0.4", - "it-glob": "^1.0.1", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-fetch": "^3.0.0", - "node-fetch": "^2.6.8", - "react-native-fetch-api": "^3.0.0", - "stream-to-it": "^0.2.2" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ipfs-utils/node_modules/any-signal": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", - "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -3107,12 +3532,14 @@ "node_modules/is-electron": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", - "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==", + "license": "MIT" }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3121,14 +3548,34 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -3136,30 +3583,44 @@ "node": ">=0.10.0" } }, - "node_modules/is-hex-prefixed": { + "node_modules/is-inside-container": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, + "license": "MIT", "engines": { "node": ">=8" } @@ -3168,6 +3629,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -3176,25 +3638,70 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -3202,20 +3709,17 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/iso-url": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", + "license": "MIT", "engines": { "node": ">=12" } @@ -3224,68 +3728,73 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", "peerDependencies": { "ws": "*" } }, "node_modules/it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.7.tgz", + "integrity": "sha512-PkuYtu6XhJzuPTKXImd6y0qE6H91MUPV/b9xotXMAI6GjmD2v3NoHj2g5L0lS2qZ0EzyGWZU1kp0UxW8POvNBQ==", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-first": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.7.tgz", + "integrity": "sha512-e2dVSlOP+pAxPYPVJBF4fX7au8cvGfvLhIrGCMc5aWDnCvwgOo94xHbi3Da6eXQ2jPL5FGEM8sJMn5uE8Seu+g==", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-glob": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", - "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-3.0.2.tgz", + "integrity": "sha512-yw6am0buc9W6HThDhlf/0k9LpwK31p9Y3c0hpaoth9Iaha4Kog2oRlVanLGSrPPoh9yGwHJbs+KfBJt020N6/g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" + "fast-glob": "^3.3.3" } }, - "node_modules/it-glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "node_modules/it-last": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-3.0.7.tgz", + "integrity": "sha512-qG4BTveE6Wzsz5voqaOtZAfZgXTJT+yiaj45vp5S0Vi8oOdgKlRqUeolfvWoMCJ9vwSc/z9pAaNYIza7gA851w==", + "license": "Apache-2.0 OR MIT" }, - "node_modules/it-glob/node_modules/minimatch": { + "node_modules/it-map": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.1.2.tgz", + "integrity": "sha512-G3dzFUjTYHKumJJ8wa9dSDS3yKm8L7qDUnAgzemOD0UMztwm54Qc2v97SuUCiAgbOz/aibkSLImfoFK09RlSFQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "it-peekable": "^3.0.0" } }, - "node_modules/it-last": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", - "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" + "node_modules/it-peekable": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.6.tgz", + "integrity": "sha512-odk9wn8AwFQipy8+tFaZNRCM62riraKZJRysfbmOett9wgJumCwgZFzWUBUwMoiQapEcEVGwjDpMChZIi+zLuQ==", + "license": "Apache-2.0 OR MIT" }, - "node_modules/it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + "node_modules/it-pushable": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.3.tgz", + "integrity": "sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "p-defer": "^4.0.0" + } }, - "node_modules/it-peekable": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", - "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" + "node_modules/it-stream-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.2.tgz", + "integrity": "sha512-Rz/DEZ6Byn/r9+/SBCuJhpPATDF9D+dz5pbgSUyBsCDtza6wtNATrz/jz1gDyNanC3XdLboriHnOC925bZRBww==", + "license": "Apache-2.0 OR MIT" }, "node_modules/it-to-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "fast-fifo": "^1.0.0", @@ -3295,23 +3804,35 @@ "readable-stream": "^3.6.0" } }, - "node_modules/it-to-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/it-to-stream/node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "license": "BlueOak-1.0.0", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">= 6" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -3329,30 +3850,17 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jake/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3360,21 +3868,11 @@ "node": "*" } }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jayson": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.0.0.tgz", - "integrity": "sha512-v2RNpDCMu45fnLzSk47vx7I+QUaOsox6f5X0CUlabAFwxoP+8MfAY0NQRFwOEYXIxm8Ih5y6OaEa5KYiQMkyAA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.3.tgz", + "integrity": "sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==", + "license": "MIT", "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -3387,7 +3885,7 @@ "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", "uuid": "^8.3.2", - "ws": "^7.4.5" + "ws": "^7.5.10" }, "bin": { "jayson": "bin/jayson.js" @@ -3399,67 +3897,50 @@ "node_modules/jayson/node_modules/@types/node": { "version": "12.20.55", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/jayson/node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jayson/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "license": "MIT" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -3473,12 +3954,14 @@ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha512-mn0KSip7N4e0UDPZHnqDsHECo5uGQrixQKnAskOM1BIB8hd7QKbd6il8IPRPudPHOeHiECoCFqhyMaRO9+nWyA==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -3490,117 +3973,166 @@ "node": "*" } }, - "node_modules/keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" + "node_modules/kubo-rpc-client": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kubo-rpc-client/-/kubo-rpc-client-5.1.0.tgz", + "integrity": "sha512-yTBoyEN1Ymwi0Tzi8+Mfxylg3BRAatzykih8jzwaJjfYCqKUEqCX+43m4X78CdTPRXyIHUbdI9N0DcKRwNwk+A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-cbor": "^9.0.0", + "@ipld/dag-json": "^10.0.0", + "@ipld/dag-pb": "^4.0.0", + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^2.0.0", + "@libp2p/logger": "^5.0.0", + "@libp2p/peer-id": "^5.0.0", + "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr-to-uri": "^11.0.0", + "any-signal": "^4.1.1", + "blob-to-it": "^2.0.5", + "browser-readablestream-to-it": "^2.0.5", + "dag-jose": "^5.0.0", + "electron-fetch": "^1.9.1", + "err-code": "^3.0.1", + "ipfs-unixfs": "^11.1.4", + "iso-url": "^1.2.1", + "it-all": "^3.0.4", + "it-first": "^3.0.4", + "it-glob": "^3.0.1", + "it-last": "^3.0.4", + "it-map": "^3.0.5", + "it-peekable": "^3.0.3", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiformats": "^13.1.0", + "nanoid": "^5.0.7", + "native-fetch": "^4.0.2", + "parse-duration": "^2.1.2", + "react-native-fetch-api": "^3.0.0", + "stream-to-it": "^1.0.1", + "uint8arrays": "^5.0.3", + "wherearewe": "^2.0.1" } }, - "node_modules/keccak/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, "node_modules/lodash.kebabcase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "license": "MIT" }, "node_modules/lodash.lowercase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.lowercase/-/lodash.lowercase-4.3.0.tgz", - "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==" + "integrity": "sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==", + "license": "MIT" }, "node_modules/lodash.lowerfirst": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/lodash.lowerfirst/-/lodash.lowerfirst-4.3.1.tgz", - "integrity": "sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==" + "integrity": "sha512-UUKX7VhP1/JL54NXg2aq/E1Sfnjjes8fNYTNkPU8ZmsaVeBvPHKdbNaN79Re5XRL01u6wbq3j0cbYZj71Fcu5w==", + "license": "MIT" }, "node_modules/lodash.pad": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", - "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==" + "integrity": "sha512-mvUHifnLqM+03YNzeTBS1/Gr6JRFjd3rRx88FHWUvamVaT9k2O/kXha3yBSOwB9/DTQrSTLJNHvLBBt2FdX7Mg==", + "license": "MIT" }, "node_modules/lodash.padend": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==" + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "license": "MIT" }, "node_modules/lodash.padstart": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==" + "integrity": "sha512-sW73O6S8+Tg66eY56DBk85aQzzUJDtpoXFBgELMd5P/SotAguo+1kYO6RuYgXxA4HJH3LFTFPASX6ET6bjfriw==", + "license": "MIT" }, "node_modules/lodash.repeat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", - "integrity": "sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw==" + "integrity": "sha512-eWsgQW89IewS95ZOcr15HHCX6FVDxq3f2PNUIng3fyzsPev9imFQxIYdFZ6crl8L56UR6ZlGDLcEb3RZsCSSqw==", + "license": "MIT" }, "node_modules/lodash.snakecase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==" + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "license": "MIT" }, "node_modules/lodash.startcase": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==" + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "license": "MIT" }, "node_modules/lodash.trim": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.trim/-/lodash.trim-4.5.1.tgz", - "integrity": "sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg==" + "integrity": "sha512-nJAlRl/K+eiOehWKDzoBVrSMhK0K3A3YQsUNXHQa5yIrKBAhsZgSu3KoAFoFT+mEgiyBHddZ0pRk1ITpIp90Wg==", + "license": "MIT" }, "node_modules/lodash.trimend": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.trimend/-/lodash.trimend-4.5.1.tgz", - "integrity": "sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==" + "integrity": "sha512-lsD+k73XztDsMBKPKvzHXRKFNMohTjoTKIIo4ADLn5dA65LZ1BqlAvSXhR2rPEC3BgAUQnzMnorqDtqn2z4IHA==", + "license": "MIT" }, "node_modules/lodash.trimstart": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.trimstart/-/lodash.trimstart-4.5.1.tgz", - "integrity": "sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==" + "integrity": "sha512-b/+D6La8tU76L/61/aN0jULWHkT0EeJCmVstPBn/K9MtD2qBW83AsBNrr63dKuWYwVMO7ucv13QNO/Ek/2RKaQ==", + "license": "MIT" }, "node_modules/lodash.uppercase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.uppercase/-/lodash.uppercase-4.3.0.tgz", - "integrity": "sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA==" + "integrity": "sha512-+Nbnxkj7s8K5U8z6KnEYPGUOGp3woZbB7Ecs7v3LkkjLQSm2kP9SKIILitN1ktn2mB/tmM9oSlku06I+/lH7QA==", + "license": "MIT" }, "node_modules/lodash.upperfirst": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==" + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "license": "MIT" }, "node_modules/log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "license": "MIT", "dependencies": { "chalk": "^2.4.2" }, @@ -3612,6 +4144,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -3623,6 +4156,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3636,6 +4170,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -3643,12 +4178,14 @@ "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/log-symbols/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -3657,6 +4194,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -3665,6 +4203,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -3678,18 +4217,14 @@ "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, "node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, "node_modules/matchstick-as": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/matchstick-as/-/matchstick-as-0.6.0.tgz", @@ -3698,20 +4233,20 @@ "wabt": "1.0.24" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, "node_modules/merge-options": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -3722,69 +4257,45 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, "node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3799,172 +4310,74 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, - "node_modules/multiaddr": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.1.tgz", - "integrity": "sha512-G5upNcGzEGuTHkzxezPrrD6CaIHR9uo+7MwqhNVcXTs33IInon4y7nMiGxl2CY5hG7chvYQUQhz5V52/Qe3cbg==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr", - "dependencies": { - "dns-over-http-resolver": "^1.2.3", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.4.5", - "uint8arrays": "^3.0.0", - "varint": "^6.0.0" - } + "node_modules/multiformats": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.3.2.tgz", + "integrity": "sha512-qbB0CQDt3QKfiAzZ5ZYjLFOs+zW43vA4uyM8g27PeEuXZybUOFyjrVdP93HPBHMoglibwfkdVwbzfUq8qGcH6g==", + "license": "Apache-2.0 OR MIT" }, - "node_modules/multiaddr-to-uri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", - "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", - "deprecated": "This module is deprecated, please upgrade to @multiformats/multiaddr-to-uri", - "dependencies": { - "multiaddr": "^10.0.0" + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", + "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { - "nanoid": "bin/nanoid.cjs" + "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/native-abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", - "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", - "peerDependencies": { - "abort-controller": "*" + "node": "^18 || >=20" } }, "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/natural-orderby": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", - "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==", - "engines": { - "node": "*" - } - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", + "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", + "license": "MIT", "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" + "undici": "*" } }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -3972,57 +4385,66 @@ "node": ">=8" } }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/object-treeify": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", - "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", - "engines": { - "node": ">= 10" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { - "wrappy": "1" + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/open/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4032,6 +4454,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.2.tgz", "integrity": "sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig==", + "license": "MIT", "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^3.1.0", @@ -4049,6 +4472,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4057,6 +4481,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -4068,6 +4493,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4081,6 +4507,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -4088,12 +4515,14 @@ "node_modules/ora/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/ora/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -4102,6 +4531,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -4110,6 +4540,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -4121,6 +4552,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -4128,27 +4560,85 @@ "node": ">=4" } }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz", + "integrity": "sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-fifo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "license": "MIT", "dependencies": { "fast-fifo": "^1.0.0", "p-defer": "^3.0.0" } }, + "node_modules/p-fifo/node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-queue": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz", + "integrity": "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4156,20 +4646,17 @@ "node": ">=6" } }, - "node_modules/parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" - }, "node_modules/parse-duration": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.3.tgz", - "integrity": "sha512-o6NAh12na5VvR6nFejkU0gpQ8jmOY9Y9sTU2ke3L3G/d/3z8jqmbBbeyBGHU73P4JLXfc7tJARygIK3WGIkloA==" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-2.1.4.tgz", + "integrity": "sha512-b98m6MsCh+akxfyoz9w9dt0AlH2dfYLOBss5SdDsr9pkhKNvkWBXU/r8A4ahmIGByBOLV2+4YwfCuFxbDDaGyg==", + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -4183,15 +4670,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/password-prompt": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", - "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", - "dependencies": { - "ansi-escapes": "^4.3.2", - "cross-spawn": "^7.0.3" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -4204,65 +4682,47 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4274,15 +4734,25 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", - "dev": true, + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -4293,76 +4763,27 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "node_modules/progress-events": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.1.tgz", + "integrity": "sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==", + "license": "Apache-2.0 OR MIT" }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" }, - "node_modules/pvtsutils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", - "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "node_modules/protons-runtime": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.5.0.tgz", + "integrity": "sha512-EsALjF9QsrEk6gbCx3lmfHxVN0ah7nG3cY7GySD4xf4g8cr7g543zB88Foh897Sr1RQJ9yDCUsoT1i1H/cVUFA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" + "uint8-varint": "^2.0.2", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^5.0.1" } }, "node_modules/queue-microtask": { @@ -4382,77 +4803,90 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } + ], + "license": "MIT" }, "node_modules/react-native-fetch-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-3.0.0.tgz", "integrity": "sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==", + "license": "MIT", "dependencies": { "p-defer": "^3.0.0" } }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "node_modules/react-native-fetch-api/node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=8.10.0" + "node": ">= 6" } }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", + "node_modules/registry-auth-token": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "license": "MIT", "dependencies": { - "esprima": "~4.0.0" + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" } }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -4461,15 +4895,17 @@ "node": ">=8" } }, - "node_modules/retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -4528,29 +4964,21 @@ "node": "*" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "node_modules/rlc-faucet-contract": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/rlc-faucet-contract/-/rlc-faucet-contract-1.0.9.tgz", "integrity": "sha512-eLsDeiXLCqHqYSaIqSJzHxsRjh0qZt7QxG4/n7VGqReQJr+v7ycC3omAmjnwgtSTQvCcRdY03pWmjb0co3Qtgg==" }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "dependencies": { - "bn.js": "^5.2.0" + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "license": "MIT", + "engines": { + "node": ">=18" }, - "bin": { - "rlp": "bin/rlp" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/run-parallel": { @@ -4571,46 +4999,59 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { - "node": ">=10.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, "node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -4618,38 +5059,28 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=10" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "node": ">= 0.4" } }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4661,39 +5092,32 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/solstruct": { "version": "0.0.13", "resolved": "https://registry.npmjs.org/solstruct/-/solstruct-0.0.13.tgz", @@ -4716,44 +5140,44 @@ "source-map": "^0.6.0" } }, - "node_modules/split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, "node_modules/stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-1.0.1.tgz", + "integrity": "sha512-AqHYAYPHcmvMrcLNgncE/q0Aj/ajP6A4qGhxP6EVn7K3YTNs0bJpJyk57wc2Heb7MUL64jurvmnmui8D9kjZgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" + "it-stream-types": "^2.0.1" } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4763,10 +5187,20 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4774,193 +5208,93 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "is-hex-prefixed": "1.0.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6.5.0", - "npm": ">=3" + "node": ">=8" } }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dependencies": { - "get-port": "^3.1.0" + "node": ">=6" } }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=10" - } - }, - "node_modules/tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "dependencies": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-fs/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/tar-fs/node_modules/pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dependencies": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/timeout-abort-controller": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-2.0.0.tgz", - "integrity": "sha512-2FAPXfzTPYEgw27bQGTHc0SzrbmnU2eso4qo172zMLZzaGqeu09PFa5B2FCUHM1tflgRqPgn5KQgp6+Vex4uNA==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.4", - "retimer": "^3.0.0" - } + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, "node_modules/tmp": { "version": "0.2.1", @@ -4981,15 +5315,11 @@ "tmp": "^0.2.0" } }, - "node_modules/to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -4997,62 +5327,49 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.4", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.4.tgz", + "integrity": "sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.25.0", + "get-tsconfig": "^4.7.5" }, "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" + "tsx": "dist/cli.mjs" }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "engines": { + "node": ">=18.0.0" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "optionalDependencies": { + "fsevents": "~2.3.3" } }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5060,15 +5377,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "license": "Apache-2.0", "peer": true, "bin": { "tsc": "bin/tsc", @@ -5078,54 +5391,91 @@ "node": ">=14.17" } }, + "node_modules/uint8-varint": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", + "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/uint8arraylist": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.8.tgz", + "integrity": "sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^5.0.1" + } + }, "node_modules/uint8arrays": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "multiformats": "^9.4.2" + "multiformats": "^13.0.0" + } + }, + "node_modules/undici": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.3.0.tgz", + "integrity": "sha512-Qy96NND4Dou5jKoSJ2gm8ax8AJM/Ey9o9mz7KN1bb9GP+G0l20Zw8afxTnY2f4b7hmhn/z8aC2kfArVQlAhFBw==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/urlpattern-polyfill": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-6.0.2.tgz", - "integrity": "sha512-5vZjFlH9ofROmuWmXM9yj2wljYKgWstGwe8YTyiqM7hVum/g9LyCizPZtb3UqsuppVwety9QJmfc42VggLpTgg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "license": "MIT" + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2" + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, "node_modules/wabt": { "version": "1.0.24", @@ -5147,82 +5497,134 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", "dependencies": { "defaults": "^1.0.3" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "node_modules/weald": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/weald/-/weald-1.0.4.tgz", + "integrity": "sha512-+kYTuHonJBwmFhP1Z4YQK/dGi3jAnJGCYhyODFpHK73rbxnp9lnZQj7a2m+WVgn8fXr5bJaxUpF6l8qZpPeNWQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "ms": "^3.0.0-canary.1", + "supports-color": "^9.4.0" + } + }, + "node_modules/weald/node_modules/ms": { + "version": "3.0.0-canary.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", + "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=12.13" } }, - "node_modules/web3-eth-abi": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz", - "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==", + "node_modules/weald/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/web3-errors": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/web3-errors/-/web3-errors-1.3.1.tgz", + "integrity": "sha512-w3NMJujH+ZSW4ltIZZKtdbkbyQEvBzyp3JRn59Ckli0Nz4VMsVq8aF1bLWM7A2kuQ+yVEm3ySeNU+7mSRwx7RQ==", + "license": "LGPL-3.0", "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.0" + "web3-types": "^1.10.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=14", + "npm": ">=6.12.0" } }, - "node_modules/web3-utils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.0.tgz", - "integrity": "sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w==", + "node_modules/web3-eth-abi": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.4.1.tgz", + "integrity": "sha512-60ecEkF6kQ9zAfbTY04Nc9q4eEYM0++BySpGi8wZ2PD1tw/c0SDvsKhV6IKURxLJhsDlb08dATc3iD6IbtWJmg==", + "license": "LGPL-3.0", "dependencies": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" + "abitype": "0.7.1", + "web3-errors": "^1.3.1", + "web3-types": "^1.10.0", + "web3-utils": "^4.3.3", + "web3-validator": "^2.0.6" }, "engines": { - "node": ">=8.0.0" + "node": ">=14", + "npm": ">=6.12.0" } }, - "node_modules/web3-utils/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + "node_modules/web3-types": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/web3-types/-/web3-types-1.10.0.tgz", + "integrity": "sha512-0IXoaAFtFc8Yin7cCdQfB9ZmjafrbP6BO0f0KT/khMhXKUpoJ6yShrVhiNpyRBo8QQjuOagsWzwSK2H49I7sbw==", + "license": "LGPL-3.0", + "engines": { + "node": ">=14", + "npm": ">=6.12.0" + } }, - "node_modules/webcrypto-core": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", - "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", + "node_modules/web3-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.3.tgz", + "integrity": "sha512-kZUeCwaQm+RNc2Bf1V3BYbF29lQQKz28L0y+FA4G0lS8IxtJVGi5SeDTUkpwqqkdHHC7JcapPDnyyzJ1lfWlOw==", + "license": "LGPL-3.0", "dependencies": { - "@peculiar/asn1-schema": "^2.3.6", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.1", - "pvtsutils": "^1.3.2", - "tslib": "^2.4.0" + "ethereum-cryptography": "^2.0.0", + "eventemitter3": "^5.0.1", + "web3-errors": "^1.3.1", + "web3-types": "^1.10.0", + "web3-validator": "^2.0.6" + }, + "engines": { + "node": ">=14", + "npm": ">=6.12.0" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "node_modules/web3-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/web3-validator/-/web3-validator-2.0.6.tgz", + "integrity": "sha512-qn9id0/l1bWmvH4XfnG/JtGKKwut2Vokl6YXP5Kfg424npysmtRLe9DgiNBM9Op7QL/aSiaA0TVXibuIuWcizg==", + "license": "LGPL-3.0", + "dependencies": { + "ethereum-cryptography": "^2.0.0", + "util": "^0.12.5", + "web3-errors": "^1.2.0", + "web3-types": "^1.6.0", + "zod": "^3.21.4" + }, + "engines": { + "node": ">=14", + "npm": ">=6.12.0" + } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/wherearewe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", + "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "is-electron": "^2.2.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -5233,10 +5635,32 @@ "node": ">= 8" } }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "license": "MIT", "dependencies": { "string-width": "^4.0.0" }, @@ -5247,12 +5671,32 @@ "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5265,15 +5709,58 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -5290,41 +5777,52 @@ } } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" } } } diff --git a/packages/subgraph/package.json b/packages/subgraph/package.json index 53bcdc943..cd3b2468a 100644 --- a/packages/subgraph/package.json +++ b/packages/subgraph/package.json @@ -5,26 +5,31 @@ "scripts": { "format": "prettier --write \"(src|tests)/**/*.{ts,json}\"", "check-format": "prettier --check \"(src|tests)/**/*.ts|tests/**/*.ts\"", - "codegen": "node tools/generateManifest.mjs && graph codegen", - "build": "graph build", + "codegen": "graph codegen subgraph.template.yaml", + "build": "dotenv -e .env -- sh -c 'graph codegen subgraph.template.yaml && graph build subgraph.template.yaml --network ${NETWORK_NAME:-bellecour}'", "deploy": "graph deploy --node https://api.thegraph.com/deploy/ DataProtector", - "create-local": "graph create --node ${GRAPHNODE_URL:-http://localhost:8020} DataProtector-v2", - "remove-local": "graph remove --node ${GRAPHNODE_URL:-http://localhost:8020} DataProtector-v2", - "deploy-local": "graph deploy --node ${GRAPHNODE_URL:-http://localhost:8020} --ipfs ${IPFS_URL:-http://localhost:5001} DataProtector-v2 --version-label ${VERSION_LABEL:-dev}", + "create-local": "dotenv -e .env -- sh -c 'graph create ${NETWORK_NAME:-bellecour}/DataProtector-v2 --node ${GRAPHNODE_URL:-http://localhost:8020}'", + "remove-local": "dotenv -e .env -- sh -c 'graph remove ${NETWORK_NAME:-bellecour}/DataProtector-v2 --node ${GRAPHNODE_URL:-http://localhost:8020}'", + "deploy-local": "dotenv -e .env -- sh -c 'graph deploy ${NETWORK_NAME:-bellecour}/DataProtector-v2 subgraph.template.yaml --network ${NETWORK_NAME:-bellecour} --node ${GRAPHNODE_URL:-http://localhost:8020} --ipfs ${IPFS_URL:-http://localhost:5001} --version-label ${VERSION_LABEL:-dev}'", "clean": "rm -rf generated && rm -rf build", - "all": "npm run clean && npm run codegen && npm run build && npm run create-local && npm run deploy-local", + "all": " dotenv -e .env -- sh -c 'tsx ./test-stack/prepare-test-env.ts && npm run clean && npm run codegen && npm run create-local && npm run deploy-local'", "refresh-abis": "node tools/refreshAbis.mjs", "test": "graph test", "coverage": "graph test -- -c" }, "dependencies": { - "@graphprotocol/graph-cli": "^0.70.0", - "@graphprotocol/graph-ts": "^0.35.0", + "@graphprotocol/graph-cli": "^0.96.0", + "@graphprotocol/graph-ts": "0.35.1", "@iexec/dataprotector-environments": "file:../../environments", "@iexec/poco": "^5.3.0", "matchstick-as": "^0.6.0" }, "devDependencies": { - "prettier": "^3.2.5" + "dotenv": "^16.5.0", + "dotenv-cli": "^8.0.0", + "ethers": "^6.14.1", + "prettier": "^3.2.5", + "tsx": "^4.19.4", + "zod": "^3.24.3" } } diff --git a/packages/subgraph/subgraph.template.yaml b/packages/subgraph/subgraph.template.yaml index 0ad5f5880..3a27a25c4 100644 --- a/packages/subgraph/subgraph.template.yaml +++ b/packages/subgraph/subgraph.template.yaml @@ -3,14 +3,12 @@ description: Subgraph for dataProtector smart contract schema: file: ./schema.graphql dataSources: - # ============================= DataProtector ============================== - name: DataProtector kind: ethereum/contract - network: bellecour source: - #DATA_PROTECTOR_ADDRESS# abi: DataProtector - #DATA_PROTECTOR_START_BLOCK# + address: "0x3a4Ab33F3D605e75b6D00A32A0Fa55C3628F6A59" + startBlock: 25455501 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -28,15 +26,13 @@ dataSources: - event: DatasetSchema(indexed address,string) handler: handleDatasetSchema file: ./src/dataProtector.ts - - # ============================= DatasetRegistry ============================== + network: bellecour - name: DatasetRegistry kind: ethereum/contract - network: bellecour source: - #DATASET_REGISTRY_ADDRESS# abi: DatasetRegistry - #DATA_PROTECTOR_START_BLOCK# + address: "0x0000000000000000000000000000000000000000" + startBlock: 25455501 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -52,15 +48,13 @@ dataSources: - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleTransferDataset file: ./src/datasetRegistry.ts - - # ============================= AppRegistry ============================== + network: bellecour - name: AppRegistry kind: ethereum/contract - network: bellecour source: - #APP_REGISTRY_ADDRESS# abi: AppRegistry - #DATA_PROTECTOR_SHARING_START_BLOCK# + address: "0x0000000000000000000000000000000000000000" + startBlock: 28566236 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -76,15 +70,13 @@ dataSources: - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleTransferApp file: ./src/appRegistry.ts - - # ============================= DataProtectorSharing ============================== + network: bellecour - name: DataProtectorSharing kind: ethereum/contract - network: bellecour source: - #DATA_PROTECTOR_SHARING_ADDRESS# abi: DataProtectorSharing - #DATA_PROTECTOR_SHARING_START_BLOCK# + address: "0x1390c3c6a545198809F1C7c5Dd2600ef74D60925" + startBlock: 28566236 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -103,14 +95,12 @@ dataSources: - name: DataProtectorSharing file: ./abis/DataProtectorSharingABI.json eventHandlers: - # ============================= Collection ============================== - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleTransfer - event: ProtectedDataTransfer(address,uint256,uint256,address) handler: handleProtectedDataTransfer - event: ProtectedDataConsumed(bytes32,address,uint8) handler: handleProtectedDataConsumed - # ============================= Subscription ============================== - event: NewSubscription(uint256,indexed address,uint48) handler: handleNewSubscription - event: NewSubscriptionParams(uint256,(uint72,uint40)) @@ -119,14 +109,12 @@ dataSources: handler: handleProtectedDataAddedForSubscription - event: ProtectedDataRemovedFromSubscription(uint256,address) handler: handleProtectedDataRemovedFromSubscription - # ============================= Renting ============================== - event: NewRental(uint256,address,address,uint48) handler: handleNewRental - event: ProtectedDataAddedForRenting(uint256,address,(uint72,uint40)) handler: handleProtectedDataAddedForRenting - event: ProtectedDataRemovedFromRenting(uint256,address) handler: handleProtectedDataRemovedFromRenting - # ============================= Sale ================================== - event: ProtectedDataSold(uint256,address,address) handler: handleProtectedDataSold - event: ProtectedDataAddedForSale(uint256,address,uint72) @@ -134,15 +122,13 @@ dataSources: - event: ProtectedDataRemovedFromSale(uint256,address) handler: handleProtectedDataRemovedFromSale file: ./src/dataProtectorSharing.ts - - # ============================= AddOnlyAppWhitelistRegistry ============================== + network: bellecour - name: AddOnlyAppWhitelistRegistry kind: ethereum/contract - network: bellecour source: - #ADD_ONLY_APP_WHITELIST_REGISTRY_ADDRESS# abi: AddOnlyAppWhitelistRegistry - #ADD_ONLY_APP_WHITELIST_REGISTRY_START_BLOCK# + address: "0x498D324F711b8998Be81818742e268dEE30347c6" + startBlock: 28566234 mapping: kind: ethereum/events apiVersion: 0.0.7 @@ -156,11 +142,10 @@ dataSources: - event: Transfer(indexed address,indexed address,indexed uint256) handler: handleNewAddOnlyAppWhitelist file: ./src/addOnlyAppWhitelistRegistry.ts -# ============================= AppWhitelist Template ============================== + network: bellecour templates: - kind: ethereum/contract name: AddOnlyAppWhitelistTemplate - network: bellecour source: abi: AddOnlyAppWhitelist mapping: @@ -178,3 +163,4 @@ templates: - event: NewAppAddedToAddOnlyAppWhitelist(address) handler: handleNewAppAdded file: ./src/addOnlyAppWhitelist.ts + network: bellecour diff --git a/packages/subgraph/test-stack/prepare-test-env.ts b/packages/subgraph/test-stack/prepare-test-env.ts new file mode 100644 index 000000000..94a79a137 --- /dev/null +++ b/packages/subgraph/test-stack/prepare-test-env.ts @@ -0,0 +1,79 @@ +import { existsSync, readFileSync, writeFileSync } from 'fs'; +import { dirname, join } from 'path'; +import { fileURLToPath } from 'url'; +import { env } from '../config/env'; + +// Get current file directory in ESM +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +// Path to the networks.json file (one directory up) +const networksFilePath = join(__dirname, '..', 'networks.json'); + +/** + * Update networks.json file with the current block number + * @param {string} networkName - The network to update + * @param {number} startBlock - The block number to fork from + */ +async function updateNetworksFile({ + networkName, + startBlock, +}: { + networkName: string; + startBlock: number; +}) { + if (!existsSync(networksFilePath)) { + console.warn(`networks.json file not found at ${networksFilePath}`); + return; + } + + console.log(`Updating ${networksFilePath} for network '${networkName}'`); + + try { + // Read the current networks.json file + const networksData = JSON.parse(readFileSync(networksFilePath, 'utf8')); + + // Check if the specified network exists in the file + if (networksData[networkName]) { + console.log( + `Updating startBlock for network '${networkName}' to ${startBlock}` + ); + + // Update all startBlock values for the specified network + Object.keys(networksData[networkName]).forEach((contract) => { + networksData[networkName][contract].startBlock = startBlock; + }); + + // Write the updated networks.json file + writeFileSync(networksFilePath, JSON.stringify(networksData, null, 4)); + console.log(`Successfully updated ${networksFilePath}`); + } else { + console.warn( + `Network '${networkName}' not found in networks.json. File unchanged.` + ); + } + } catch (error) { + console.error(`Error updating networks.json file: ${error}`); + } +} + +/** + * Main function to orchestrate the process + */ +async function main() { + try { + if (env.NETWORK_NAME && env.START_BLOCK) { + await updateNetworksFile({ + networkName: env.NETWORK_NAME, + startBlock: env.START_BLOCK, + }); + } else { + console.log('nothing to update in networks'); + } + } catch (error) { + console.error(`Error in main process: ${error}`); + process.exit(1); + } +} + +main(); diff --git a/packages/subgraph/tools/generateManifest.mjs b/packages/subgraph/tools/generateManifest.mjs deleted file mode 100644 index 55db56966..000000000 --- a/packages/subgraph/tools/generateManifest.mjs +++ /dev/null @@ -1,114 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs'; -import { getEnvironment } from '@iexec/dataprotector-environments'; - -const { - ENV, - START_BLOCK, - APP_REGISTRY_ADDRESS, - DATASET_REGISTRY_ADDRESS, - DATAPROTECTOR_ADDRESS, - DATAPROTECTOR_SHARING_ADDRESS, - ADD_ONLY_APP_WHITELIST_REGISTRY_ADDRESS, -} = process.env; - -const formatObjForLog = (obj) => - Object.entries(obj) - .map(([k, v]) => `- ${k}: ${v}`) - .join('\n'); - -console.log( - `env values:\n${formatObjForLog({ - ENV, - START_BLOCK, - APP_REGISTRY_ADDRESS, - DATASET_REGISTRY_ADDRESS, - DATAPROTECTOR_ADDRESS, - DATAPROTECTOR_SHARING_ADDRESS, - ADD_ONLY_APP_WHITELIST_REGISTRY_ADDRESS, - })}\n` -); - -const loadFromEnv = (key) => { - console.log(`loading ${key} from env ${ENV}`); - return getEnvironment(ENV)[key]; -}; - -const parsedStartBlock = parseInt(START_BLOCK, 10); -const startBlock = - Number.isNaN(parsedStartBlock) || parsedStartBlock < 0 - ? undefined - : parsedStartBlock; - -const dataprotectorContractAddress = - DATAPROTECTOR_ADDRESS ?? loadFromEnv('dataprotectorContractAddress'); -const dataprotectorStartBlock = - startBlock ?? loadFromEnv('dataprotectorStartBlock'); -const dataprotectorSharingContractAddress = - DATAPROTECTOR_SHARING_ADDRESS ?? - loadFromEnv('dataprotectorSharingContractAddress'); -const dataprotectorSharingStartBlock = - startBlock ?? loadFromEnv('dataprotectorSharingStartBlock'); -const addOnlyAppWhitelistRegistryContractAddress = - ADD_ONLY_APP_WHITELIST_REGISTRY_ADDRESS ?? - loadFromEnv('addOnlyAppWhitelistRegistryContractAddress'); -const addOnlyAppWhitelistRegistryStartBlock = - startBlock ?? loadFromEnv('addOnlyAppWhitelistRegistryStartBlock'); - -// use bellecour default values -const appRegistryContractAddress = - APP_REGISTRY_ADDRESS || '0xB1C52075b276f87b1834919167312221d50c9D16'; -const datasetRegistryContractAddress = - DATASET_REGISTRY_ADDRESS || '0x799DAa22654128d0C64d5b79eac9283008158730'; - -console.log( - `\nfinale values:\n${formatObjForLog({ - dataprotectorContractAddress, - dataprotectorStartBlock, - dataprotectorSharingContractAddress, - dataprotectorSharingStartBlock, - addOnlyAppWhitelistRegistryContractAddress, - addOnlyAppWhitelistRegistryStartBlock, - appRegistryContractAddress, - datasetRegistryContractAddress, - })}\n` -); - -const template = readFileSync('subgraph.template.yaml').toString(); - -const generated = template - .replaceAll( - '#DATA_PROTECTOR_ADDRESS#', - `address: '${dataprotectorContractAddress}'` - ) - .replaceAll( - '#DATA_PROTECTOR_START_BLOCK#', - `startBlock: ${dataprotectorStartBlock}` - ) - .replaceAll( - '#DATA_PROTECTOR_SHARING_ADDRESS#', - `address: '${dataprotectorSharingContractAddress}'` - ) - .replaceAll( - '#DATA_PROTECTOR_SHARING_START_BLOCK#', - `startBlock: ${dataprotectorSharingStartBlock}` - ) - .replaceAll( - '#ADD_ONLY_APP_WHITELIST_REGISTRY_ADDRESS#', - `address: '${addOnlyAppWhitelistRegistryContractAddress}'` - ) - .replaceAll( - '#ADD_ONLY_APP_WHITELIST_REGISTRY_START_BLOCK#', - `startBlock: ${addOnlyAppWhitelistRegistryStartBlock}` - ) - .replaceAll( - '#APP_REGISTRY_ADDRESS#', - `address: '${appRegistryContractAddress}'` - ) - .replaceAll( - '#DATASET_REGISTRY_ADDRESS#', - `address: '${datasetRegistryContractAddress}'` - ); - -writeFileSync('subgraph.yaml', generated); - -console.log('generated subgraph.yaml'); diff --git a/packages/subgraph/tsconfig.json b/packages/subgraph/tsconfig.json new file mode 100644 index 000000000..623c015a3 --- /dev/null +++ b/packages/subgraph/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "node", + "esModuleInterop": true, + "resolveJsonModule": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/renovate.json b/renovate.json new file mode 100644 index 000000000..54cfbe5ee --- /dev/null +++ b/renovate.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "local>iExecBlockchainComputing/renovate" + ], + "packageRules": [ + { + "matchFileNames": ["**/*Dockerfile"], + "groupName": "dockerfiles" + }, + { + "matchFileNames": ["**/.drone.yml"], + "groupName": "drone-ci-configs" + }, + { + "matchFileNames": ["packages/dataprotector-deserializer/**"], + "groupName": "dataprotector-deserializer" + }, + { + "matchFileNames": ["packages/demo/**"], + "groupName": "demos" + }, + { + "matchFileNames": ["packages/protected-data-delivery-dapp/**"], + "groupName": "protected-data-delivery" + }, + { + "matchFileNames": ["packages/sdk/**"], + "groupName": "sdk" + }, + { + "matchFileNames": ["packages/sharing-smart-contract/**"], + "groupName": "sharing-smart-contract" + }, + { + "matchFileNames": ["packages/smart-contract/**"], + "groupName": "smart-contract" + }, + { + "matchFileNames": ["packages/subgraph/**"], + "groupName": "subgraph" + }, + { + "matchFileNames": ["**/.nvmrc"], + "groupName": "node-versions" + } + ], + "prConcurrentLimit": 5 +}